public ActionResult CreateForumPermission(ForumPermissionViewModel model) { if (IsModelValidAndPersistErrors()) { ForumPermission permission = _forumPermissionRepository.First(item => item.ForumID == model.ForumID && item.RoleID == model.RoleID); if (permission != null) { SetError("Permission for the role/forum combination already exists"); } else { ForumPermission forumPermission = new ForumPermission() { ForumID = model.ForumID, RoleID = model.RoleID, Attachments = model.Attachments, Polling = model.Polling, Posting = model.Posting, Visibility = model.Visibility }; _forumPermissionRepository.Add(forumPermission); SetSuccess("Permission added"); return(RedirectToAction("ForumPermissions", new { ForumID = model.ForumID })); } } return(RedirectToSelf()); }
public void CreateAppAndMenu(Group group, MvcContext ctx) { // 添加程序 IMemberApp forumApp = appService.Add((User)ctx.viewer.obj, group, lang.get("groupBoard"), 1, AccessStatus.Public); // 论坛 ForumApp app = forumService.GetById(forumApp.AppOid); ForumPermission.AddOwnerAdminPermission(app); // 添加一个论坛板块 ForumBoard board = new ForumBoard(); board.Name = lang.get("groupBoard"); board.ParentId = 0; board.AppId = forumApp.AppOid; board.Creator = (User)ctx.viewer.obj; board.CreatorUrl = ctx.viewer.obj.Url; board.OwnerId = group.Id; board.OwnerUrl = group.Url; board.OwnerType = typeof(Group).FullName; board.Ip = ctx.Ip; board.Security = app.Security; db.insert(board); // 添加menuUrl String forumUrl = UrlConverter.clearUrl(board, ctx); menuService.AddMenuByApp(forumApp, forumApp.Name, "default", forumUrl); }
public ActionResult DeleteForumPermission(int ForumPermissionID) { ForumPermission forumPermission = _forumPermissionRepository.Get(ForumPermissionID); _forumPermissionRepository.Delete(forumPermission); SetSuccess("Forum permission deleted"); return(RedirectToAction("ForumPermissions", new { ForumID = forumPermission.ForumID })); }
public static string GetForumPermission(RestCommand command, int categoryID) { ForumPermission forumPermission = ForumPermissions.GetForumPermission(command.LoginUser, categoryID); if (forumPermission.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(forumPermission.GetXml("ForumPermission", true)); }
public ActionResult EditForumPermission(ForumPermissionViewModel model) { if (IsModelValidAndPersistErrors()) { ForumPermission forumPermission = _forumPermissionRepository.Get(model.ForumPermissionID); forumPermission.ForumID = model.ForumID; forumPermission.RoleID = model.RoleID; forumPermission.Attachments = model.Attachments; forumPermission.Polling = model.Polling; forumPermission.Posting = model.Posting; forumPermission.Visibility = model.Visibility; _forumPermissionRepository.Update(forumPermission); SetSuccess("Forum permissions updated"); return(RedirectToAction("ForumPermissions", new { ForumID = model.ForumID })); } return(RedirectToSelf(new { ForumPermissionID = model.ForumPermissionID })); }
public ActionResult EditForumPermission(int ForumPermissionID) { ForumPermission forumPermission = _forumPermissionRepository.Get(ForumPermissionID); ForumPermissionViewModel model = new ForumPermissionViewModel() { Forums = _forumRepository.Get(), Roles = _roleRepository.Get(), ForumID = forumPermission.ForumID, ForumPermissionID = forumPermission.ForumPermissionID, RoleID = forumPermission.RoleID, Attachments = forumPermission.Attachments, Polling = forumPermission.Polling, Posting = forumPermission.Posting, Visibility = forumPermission.Visibility, }; return(View(model)); }
protected bool CanSeeContent(PostV5 post, bool isThreadContent) { if (isThreadContent) { if (Thread.IsValued) { if (ForumPermission.Can(My, ForumPermissionSetNode.Action.ViewValuedThread)) { return(true); } else { return(false); } } else if (ForumPermission.Can(My, ForumPermissionSetNode.Action.ViewThread)) { return(true); } else { return(false); } } else { if (ForumPermission.Can(My, ForumPermissionSetNode.Action.ViewReply)) { return(true); } else { return(false); } } }
public ForumApp() { this.Security = ForumPermission.GetDefaultPermission(); }
protected override bool CheckPermission() { if (Forum == null) { if (Thread == null) { return(false); } Response.Redirect(BbsUrlHelper.GetArchiverThreadUrl(Thread.Forum.CodeName, Thread.ThreadID)); //ErrorMessage = "版块不存在"; //return false; } if (false == Forum.CanVisit(My)) { if (!Forum.CanDisplayInList(My)) { ErrorMessage = "版块不存在!"; } else { ErrorMessage = "您没有权限进入该版块!"; } return(false); } //版块类型正常,但需要密码 if (Forum.ForumType == ForumType.Normal && !string.IsNullOrEmpty(Forum.Password)) { //如果当前用户不拥有“进入版块不需要密码”的权限,继续检查 if (!Forum.SigninWithoutPassword(My)) { //检查这个用户之前是否已经通过这个版块的验证,避免重复输入密码 if (!My.IsValidatedForum(Forum)) { ErrorMessage = "进入该版块需要密码"; return(false); } } } if (Thread == null || ReplyList == null) { ErrorMessage = "主题不存在"; return(false); } if (Thread.ForumID != Forum.ForumID) { Response.Redirect(UrlHelper.GetArchiverThreadUrl(Thread.Forum.CodeName, Thread.ThreadID)); } if (Can(ForumPermissionSetNode.Action.VisitThread) == false) { ErrorMessage = "您所在的用户组没有进入主题页的权限"; return(false); } if (Thread.ThreadType == ThreadType.Move) { BasicThread tempThread = PostBOV5.Instance.GetThread(Thread.RedirectThreadID); string tempCodeName = ""; if (tempThread != null) { Forum tempForum = ForumBO.Instance.GetForum(tempCodeName); if (tempForum != null) { tempCodeName = tempForum.CodeName; } else { ErrorMessage = "主题不存在!"; return(false); } } else { ErrorMessage = "主题不存在!"; return(false); } string url = BbsUrlHelper.GetArchiverThreadUrl(tempCodeName, tempThread.ThreadID); Response.Redirect(url); return(false); } else if (Thread.ThreadType == ThreadType.Question) { //PostV5 bestPost; //QuestionV5 question = PostBOV5.Instance.GetQuestion(Thread.ThreadID, out bestPost); //Question question = PostManager.GetQuestion(thread.ThreadID, false, out bestPost); QuestionThread question = null; if (Thread is QuestionThread) { question = (QuestionThread)Thread; if (PageNumber == 1 && question.BestPost != null) { //把最佳答案插入第2楼 m_ReplyList.Insert(1, question.BestPost); } } if (question == null) { ErrorMessage = "主题不存在!"; } if (Thread.IsClosed) { IsShowReplies = true; } else if (question.AlwaysEyeable || ForumPermission.Can(My, ForumPermissionSetNode.Action.AlwaysViewContents) || Thread.IsReplied(My)) { IsShowReplies = true; } else { IsShowReplies = false; } } return(true); }
public ForumBoard(int id) { Id = id; this.Security = ForumPermission.GetDefaultPermission(); }
protected bool Can(ForumPermissionSetNode.Action action) { return(ForumPermission.Can(My, action)); }