/// <summary> /// 创建回答 /// </summary> /// <remarks> /// 1.登录用户可以回答问题 /// 2.问题提问者不得回答自己的问题 /// 3.每个回答者针对每个问题只能回答一次 /// </remarks> public static bool Answer_Create(this Authorizer authorizer, AskQuestion question, out string errorMessage) { errorMessage = string.Empty; IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { errorMessage = "您需要先登录,才能回答"; return(false); } if (question.UserId == currentUser.UserId) { errorMessage = "提问者不可以回答自己的问题"; return(false); } if (question.Status != QuestionStatus.Unresolved) { errorMessage = "只有未解决状态的问题,才能回答"; return(false); } AskAnswer answer = new AskService().GetUserAnswerByQuestionId(currentUser.UserId, question.QuestionId); if (answer != null) { errorMessage = "您已经回答过一次,不可重复回答"; return(false); } bool result = authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Ask_CreateAnswer()); if (!result && currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateAnswerDenied; } return(result); }
/// <summary> /// 是否具有创建Microblog的权限 /// </summary> /// <param name="authorizer">被扩展对象</param> /// <param name="tenantTypeId">微博实体</param> /// <param name="ownerId">拥有者Id</param> /// <returns></returns> public static bool Microblog_Create(this Authorizer authorizer, out string errorMessage, string tenantTypeId = null, long ownerId = 0) { IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限发微博"; if (currentUser == null) { errorMessage = "您必须先登录,才能发微博"; return(false); } if (authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Microblog_Create())) { if (tenantTypeId == TenantTypeIds.Instance().User()) { return(true); } if (authorizer.AuthorizationService.IsTenantMember(currentUser, tenantTypeId, ownerId)) { return(true); } else { errorMessage = "您必须先加入,才能发微博"; } } if (currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateMicroblogDenied; } return(false); }
/// <summary> /// 创建问题 /// </summary> /// <remarks> /// 登录用户可以创建问题 /// </remarks> public static bool Question_Create(this Authorizer authorizer, out string errorMessage) { errorMessage = "没有权限提问"; IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { errorMessage = "您需要先登录,才能创建问题"; return(false); } bool result = authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Ask_Create()); if (!result && currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateQuestionDenied; } return(result); }
/// <summary> /// 撰写日志/转载日志(暂时用于移动端) /// 空间主人撰写空间用户的日志 /// </summary> public static bool BlogThread_Create(this Authorizer authorizer, IUser currentUser, out string errorMessage) { //IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限写日志"; if (currentUser == null) { errorMessage = "您必须先登录,才能写日志"; return(false); } bool result = authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Blog_Create()); if (!result && currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateBlogThreadDenied; } return(result); }
/// <summary> /// 创建Photo的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string Photo_Create(this PermissionItemKeys pik) { return("Photo_Create"); }
/// <summary> /// 资讯投稿的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string CMS_ContentItem(this PermissionItemKeys pik) { return("CMS_ContentItem"); }
/// <summary> /// 回答问题的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string Bar_CreatePost(this PermissionItemKeys pik) { return("Bar_CreatePost"); }
/// <summary> /// 创建问题的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string Bar_CreateThread(this PermissionItemKeys pik) { return("Bar_CreateThread"); }
/// <summary> /// /// </summary> /// <param name="pik"></param> /// <returns></returns> public static string WikiManageApply(this PermissionItemKeys pik) { return("WikiManageApply"); }
/// <summary> /// 编辑词条 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string WikiPageVersion_Create(this PermissionItemKeys pik) { return("WikiPageVersion_Create"); }
/// <summary> /// 是否具有创建BarPost的权限 /// </summary> /// <param name="sectionId">所属帖吧Id</param> /// <returns></returns> public static bool BarPost_Create(this Authorizer authorizer, long sectionId, out string errorMessage) { IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限回帖"; BarSectionService barSectionService = new BarSectionService(); var barSection = barSectionService.Get(sectionId); if (barSection == null) { return(false); } if (barSection.AuditStatus != AuditStatus.Success) { errorMessage = "由于贴吧未经过审核,所以不允许发帖"; return(false); } if (!authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Bar_CreatePost())) { if (currentUser != null && currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateBarPostDenied; } return(false); } if (barSection.TenantTypeId == TenantTypeIds.Instance().Bar()) { //检查是否需要是关注用户才能发帖 IBarSettingsManager barSettingsManager = DIContainer.Resolve <IBarSettingsManager>(); BarSettings barSetting = barSettingsManager.Get(); if (barSetting.OnlyFollowerCreatePost) { if (currentUser == null) { errorMessage = "您需要先登录并关注此帖吧,才能回帖"; return(false); } SubscribeService subscribeService = new SubscribeService(TenantTypeIds.Instance().BarSection()); bool isSubscribed = subscribeService.IsSubscribed(sectionId, currentUser.UserId); if (!isSubscribed) { errorMessage = "您需要先关注此帖吧,才能回帖"; } return(isSubscribed); } } else { if (authorizer.BarSection_Manage(barSection)) { return(true); } bool isTenantMember = authorizer.AuthorizationService.IsTenantMember(currentUser, barSection.TenantTypeId, barSection.SectionId); if (!isTenantMember) { errorMessage = "您需要先加入,才能回帖"; } return(isTenantMember); } //站点设置是否启用了匿名发帖 ISiteSettingsManager siteSettingsManager = DIContainer.Resolve <ISiteSettingsManager>(); SiteSettings siteSettings = siteSettingsManager.Get(); if (siteSettings.EnableAnonymousPosting) { return(true); } if (currentUser == null) { errorMessage = "您必须先登录,才能回帖"; return(false); } return(true); }
/// <summary> /// 是否具有创建BarThread的权限 /// </summary> /// <param name="authorizer"></param> /// <param name="sectionId">所属帖吧Id</param> /// <param name="errorMessage">无权信息提示</param> /// <returns></returns> public static bool BarThread_Create(this Authorizer authorizer, long sectionId, out string errorMessage) { errorMessage = string.Empty; IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { errorMessage = "您需要先登录,才能发帖"; return(false); } BarSectionService barSectionService = new BarSectionService(); var barSection = barSectionService.Get(sectionId); if (barSection == null) { errorMessage = "贴吧不存在"; return(false); } if (authorizer.BarSection_Manage(barSection)) { return(true); } if (!authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Bar_CreateThread())) { if (currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreateBarThreadDenied; } return(false); } if (barSection.TenantTypeId == TenantTypeIds.Instance().Bar()) { IBarSettingsManager barSettingsManager = DIContainer.Resolve <IBarSettingsManager>(); BarSettings barSetting = barSettingsManager.Get(); if (barSetting.OnlyFollowerCreateThread) { SubscribeService subscribeService = new SubscribeService(TenantTypeIds.Instance().BarSection()); if (subscribeService.IsSubscribed(sectionId, currentUser.UserId)) { return(true); } else { errorMessage = "您需要先关注此帖吧,才能发帖"; return(false); } } else { return(true); } } else { if (authorizer.AuthorizationService.IsTenantMember(currentUser, barSection.TenantTypeId, barSection.SectionId)) { return(true); } else { TenantType tenantType = new TenantTypeService().Get(barSection.TenantTypeId); errorMessage = string.Format("只有加入{0}才能发帖", tenantType.Name); return(false); } } }
/// <summary> /// 创建Blog的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string Blog_Create(this PermissionItemKeys pik) { return("Blog_Create"); }
/// <summary> /// 上传照片/照片采集 /// </summary> /// <remarks> /// 相册主人或管理员可以上传指定相册的图片 /// </remarks> public static bool Photo_Create(this Authorizer authorizer, Album album, out string errorMessage) { IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限上传照片"; if (currentUser == null) { errorMessage = "您必须先登录,才能上传照片"; return(false); } if (authorizer.IsAdministrator(PhotoConfig.Instance().ApplicationId)) { return(true); } if (album.UserId == currentUser.UserId && authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Photo_Create())) { return(true); } if (currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreatePhotoDenied; } return(false); }
/// <summary> /// 上传照片 /// </summary> /// <param name="authorizer"></param> /// <param name="spaceKey"></param> /// <returns></returns> public static bool Photo_Upload(this Authorizer authorizer, string spaceKey, out string errorMessage) { IUser currentUser = UserContext.CurrentUser; errorMessage = "没有权限上传照片"; if (currentUser == null) { errorMessage = "您必须先登录,才能上传照片"; return(false); } if (authorizer.IsAdministrator(PhotoConfig.Instance().ApplicationId)) { return(true); } if (currentUser.UserName.Equals(spaceKey, StringComparison.CurrentCultureIgnoreCase) && authorizer.AuthorizationService.Check(currentUser, PermissionItemKeys.Instance().Photo_Create())) { return(true); } if (currentUser.IsModerated) { errorMessage = Resources.Resource.Description_ModeratedUser_CreatePhotoDenied; } return(false); }
/// <summary> /// 回答问题的权限项标识 /// </summary> /// <param name="pik"><see cref="PermissionItemKeys"/></param> /// <returns></returns> public static string Ask_CreateAnswer(this PermissionItemKeys pik) { return("Ask_CreateAnswer"); }