public override OperationStatus HasPermission(EntityPermission permission, ContentComment item = null, Guid?threadId = null) { if (!Security.IsCurrentUserValid()) { return(OperationStatus.NoPermission); } if (IsCurrentAdminUser()) { return(OperationStatus.Granted); } if (item != null && permission.IsDataChangePermission()) { var currentThread = _threadWork.GetThread(item.Topic.ThreadId); if (item.IsHidden || item.Topic.IsHidden || currentThread.IsHidden || currentThread.IsAbstract) { return(OperationStatus.CommentHasHidden); } if (item.IsLocked || item.Topic.IsLocked || currentThread.IsLocked) { return(OperationStatus.CommentHasLocked); } if (Security.CurrentUser.UserId != item.UserId) { return(OperationStatus.NoPermission); } } if (PermissionNameDictionary.ContainsKey(permission)) { Guid?tId = null; if (item != null && item.Topic != null) { tId = item.Topic.ThreadId; } else if (threadId.HasValue) { tId = threadId; } if (tId == null) { return(PermissionWork.IsPermissionGranted(Security.CurrentUser.RoleId, PermissionNameDictionary[permission]) ? OperationStatus.Granted : OperationStatus.NoPermission); } else { return(PermissionWork.IsPermissionGranted(Security.CurrentUser.RoleId, PermissionNameDictionary[permission], tId) ? OperationStatus.Granted : OperationStatus.NoPermission); } } return(OperationStatus.NoPermission); }
static TopicWork() { PermissionNameDictionary.Add(EntityPermission.Read, PermissionConstants.Topic_Read); PermissionNameDictionary.Add(EntityPermission.Add, PermissionConstants.Topic_Add); PermissionNameDictionary.Add(EntityPermission.Update, PermissionConstants.Topic_Update); PermissionNameDictionary.Add(EntityPermission.Delete, PermissionConstants.Topic_Delete); PermissionNameDictionary.Add(EntityPermission.Vote, PermissionConstants.Topic_Vote); PermissionNameDictionary.Add(EntityPermission.UploadDocumentRead, PermissionConstants.Topic_Upload_Document_Read); PermissionNameDictionary.Add(EntityPermission.UploadDocument, PermissionConstants.Topic_Upload_Document); PermissionNameDictionary.Add(EntityPermission.UploadImage, PermissionConstants.Topic_Upload_Image); }