コード例 #1
0
ファイル: Authorizer.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 编辑问题/取消问题
        /// </summary>
        /// <remarks>
        /// 1.如果问题未解决(答案被采纳前),提问者及管理员都可以对问题进行编辑,如果修改悬赏分值仅允许追加悬赏分值
        /// 2.如果问题已解决(答案被采纳后),则仅允许管理员对问题进行编辑,不允许修改悬赏分值
        /// </remarks>
        public static bool Question_Edit(this Authorizer authorizer, AskQuestion question)
        {
            IUser currentUser = UserContext.CurrentUser;

            if (currentUser == null)
            {
                return(false);
            }

            //如果问题未解决
            if (question.Status == QuestionStatus.Unresolved)
            {
                if (question.UserId == currentUser.UserId || authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
                {
                    return(true);
                }
            }
            //如果问题已解决
            if (question.Status == QuestionStatus.Resolved)
            {
                if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
ファイル: Authorizer.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 删除问题
 /// </summary>
 /// <remarks>
 /// 管理员可以删除问题
 /// </remarks>
 public static bool Question_Delete(this Authorizer authorizer, AskQuestion question)
 {
     if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
     {
         return(true);
     }
     return(false);
 }
コード例 #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="name">Searcher名称</param>
 /// <param name="indexPath">索引文件所在路径(支持"~/"及unc路径)</param>
 /// <param name="asQuickSearch">是否作为快捷搜索</param>
 /// <param name="displayOrder">显示顺序</param>
 public AskSearcher(string name, string indexPath, bool asQuickSearch, int displayOrder)
 {
     this.Name           = name;
     this.IndexPath      = WebUtility.GetPhysicalFilePath(indexPath);
     this.AsQuickSearch  = asQuickSearch;
     this.DisplayOrder   = displayOrder;
     searchEngine        = SearcherFactory.GetSearchEngine(indexPath);
     publiclyAuditStatus = auditService.GetPubliclyAuditStatus(AskConfig.Instance().ApplicationId);
 }
コード例 #4
0
ファイル: Authorizer.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 编辑回答
 /// </summary>
 /// <remarks>
 /// 1.如果问题已解决(答案被采纳后),不允许回答者编辑,其余情况允许回答者编辑
 /// 2.管理员可以编辑所有的回答
 /// </remarks>
 public static bool Answer_Edit(this Authorizer authorizer, AskQuestion question, AskAnswer answer)
 {
     if (question.Status == QuestionStatus.Unresolved)
     {
         if (UserContext.CurrentUser != null && UserContext.CurrentUser.UserId == answer.UserId)
         {
             return(true);
         }
     }
     if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
     {
         return(true);
     }
     return(false);
 }
コード例 #5
0
ファイル: Authorizer.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 将问题设置为精华或取消精华
        /// </summary>
        /// <remarks>
        /// 管理员可以对问题设为精华或取消精华
        /// </remarks>
        public static bool Question_SetEssential(this Authorizer authorizer)
        {
            IUser currentUser = UserContext.CurrentUser;

            if (currentUser == null)
            {
                return(false);
            }
            if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
            {
                return(true);
            }

            return(false);
        }
コード例 #6
0
ファイル: Authorizer.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 管理员或用户可以修改自己的设置
        /// </summary>
        public static bool Ask_UserSetting(this Authorizer authorizer, long userId)
        {
            if (userId == 0)
            {
                return(false);
            }
            IUser currentUser = UserContext.CurrentUser;

            if (currentUser == null)
            {
                return(false);
            }
            if (currentUser.UserId == userId)
            {
                return(true);
            }
            if (authorizer.IsAdministrator(AskConfig.Instance().ApplicationId))
            {
                return(true);
            }

            return(false);
        }
コード例 #7
0
ファイル: UserDataKeys.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 是否接受定向提问
 /// </summary>
 /// <param name="userDataKeys"></param>
 /// <returns></returns>
 public static string AcceptQuestion(this UserDataKeys userDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-AcceptQuestion");
 }
コード例 #8
0
ファイル: UserDataKeys.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 用户在用户在问答中的简介
 /// </summary>
 /// <param name="userDataKeys"></param>
 /// <returns></returns>
 public static string UserDescription(this UserDataKeys userDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-UserDescription");
 }
コード例 #9
0
ファイル: UserDataKeys.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 回答被赞同数
 /// </summary>
 public static string AnswerSupportCount(this UserDataKeys userDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-AnswerSupportCount");
 }
コード例 #10
0
ファイル: UserDataKeys.cs プロジェクト: x1987624/SNS
 /// <summary>
 /// 提问数
 /// </summary>
 public static string QuestionCount(this UserDataKeys userDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-QuestionCount");
 }
コード例 #11
0
 /// <summary>
 /// 用户问答威望
 /// </summary>
 /// <param name="ownerDataKeys"></param>
 /// <returns></returns>
 public static string UserAskReputation(this OwnerDataKeys ownerDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-UserAskReputation");
 }
コード例 #12
0
 /// <summary>
 /// 回答被反对数
 /// </summary>
 public static string AnswerOpposeCount(this OwnerDataKeys ownerDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-AnswerOpposeCount");
 }
コード例 #13
0
 /// <summary>
 /// 提问数
 /// </summary>
 public static string QuestionCount(this OwnerDataKeys ownerDataKeys)
 {
     return(AskConfig.Instance().ApplicationKey + "-ThreadCount");
 }