Esempio n. 1
0
        public override bool AddModerators(ModeratorCollection moderators)
        {
            using (SqlQuery query = new SqlQuery())
            {
                StringBuilder builder = new StringBuilder();

                int i = 0;
                foreach (Moderator m in moderators)
                {
                    builder.AppendFormat("DELETE FROM bx_Moderators WHERE UserID=@UserID{0} AND ForumID=@ForumID{0};", i);
                    builder.AppendFormat(@"INSERT INTO bx_Moderators( UserID, ForumID, BeginDate, EndDate, ModeratorType, SortOrder, AppointorID)
                                            VALUES(@UserID{0}, @ForumID{0}, @BeginDate{0}, @EndDate{0},@ModeratorType{0}, @SortOrder{0}, @AppointorID{0})", i);

                    query.CreateParameter <int>(string.Format("@UserID{0}", i), m.UserID, SqlDbType.Int);
                    query.CreateParameter <int>(string.Format("@ForumID{0}", i), m.ForumID, SqlDbType.Int);
                    query.CreateParameter <DateTime>(string.Format("@BeginDate{0}", i), m.BeginDate, SqlDbType.DateTime);
                    query.CreateParameter <DateTime>(string.Format("@EndDate{0}", i), m.EndDate, SqlDbType.DateTime);
                    query.CreateParameter <byte>(string.Format("@ModeratorType{0}", i), (byte)m.ModeratorType, SqlDbType.TinyInt);
                    query.CreateParameter <int>(string.Format("@SortOrder{0}", i), m.SortOrder, SqlDbType.Int);
                    query.CreateParameter <int>(string.Format("@AppointorID{0}", i), m.AppointorID, SqlDbType.Int);
                    i++;
                }
                query.CommandText = builder.ToString();
                query.ExecuteNonQuery();
                return(true);
            }
        }
Esempio n. 2
0
        protected ModeratorCollection GetModerators(int forumID)
        {
            ModeratorCollection moderators = ForumBO.Instance.GetForum(forumID, false).Moderators;

            FillSimpleUsers <Moderator>(moderators);
            return(moderators);
        }
Esempio n. 3
0
        protected string GetModeratorLinks(ModeratorCollection moderators, string linkStyle, string separator)
        {
            if (string.IsNullOrEmpty(linkStyle))
                linkStyle = "<a href=\"{0}\" target=\"_blank\">{1}</a>{2}";
            if (separator == null)
                separator = ", ";

            StringBuilder simpleUserLinksString = new StringBuilder();

            //FillSimpleUsers<Moderator>(moderators);

            foreach (Moderator moderator in moderators)
            {
                if (moderator.User == null)
                    continue;

                string str = string.Empty;
                if (moderator.ModeratorType == ModeratorType.JackarooModerators)
                    str = "(实习)";

                simpleUserLinksString.Append(string.Format(linkStyle, BbsRouter.GetUrl("space/" + moderator.UserID), moderator.User.Name, str) + separator);
            }
            if (simpleUserLinksString.Length > 0)
                simpleUserLinksString.Remove(simpleUserLinksString.Length - separator.Length, separator.Length);

            return simpleUserLinksString.ToString();
        }
Esempio n. 4
0
        internal void ClearModeratorCache()
        {
            s_AllModerators = null;
            ForumCollection forums = this.GetAllForums();

            foreach (Forum forum in forums)
            {
                forum.ClearModeratorCache();
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 获得所有版块的所有版主,包含尚未生效的和已经过期的
        /// </summary>
        /// <returns></returns>
        public ModeratorCollection GetAllModerators()
        {
            ModeratorCollection result = s_AllModerators;

            if (result == null)
            {
                result          = ForumDaoV5.Instance.GetAllModerators();
                s_AllModerators = result;
            }

            return(result);
        }
Esempio n. 6
0
        /// <summary>
        /// 清理所有缓存
        /// </summary>
        public void ClearAllCache()
        {
            lock (allForumsLocker)
            {
                s_AllForums = null;
                s_AllForumsIndexByCodename = null;

                s_AllForumsForGuestList  = null;
                s_CategoriesForGuestList = null;
                s_Categories             = null;
                s_AllThreadCatalogs      = null;
                s_AllModerators          = null;
                //s_AllBannedUsers = null;
                s_ForumIdsForGuestVisit        = null;
                s_ForumIdsForGuestVisit_Cached = false;
            }
            BannedUserBO.Instance.ClearBannedUserCache();
        }
Esempio n. 7
0
        protected string GetModeratorLinks(ModeratorCollection moderators, string linkStyle, string separator)
        {
            if (string.IsNullOrEmpty(linkStyle))
            {
                linkStyle = "<a href=\"{0}\" target=\"_blank\">{1}</a>{2}";
            }
            if (separator == null)
            {
                separator = ", ";
            }

            StringBuilder simpleUserLinksString = new StringBuilder();

            //FillSimpleUsers<Moderator>(moderators);

            foreach (Moderator moderator in moderators)
            {
                if (moderator.User == null)
                {
                    continue;
                }

                string str = string.Empty;
                if (moderator.ModeratorType == ModeratorType.JackarooModerators)
                {
                    str = "(实习)";
                }

                simpleUserLinksString.Append(string.Format(linkStyle, BbsRouter.GetUrl("space/" + moderator.UserID), moderator.User.Name, str) + separator);
            }
            if (simpleUserLinksString.Length > 0)
            {
                simpleUserLinksString.Remove(simpleUserLinksString.Length - separator.Length, separator.Length);
            }

            return(simpleUserLinksString.ToString());
        }
Esempio n. 8
0
        /// <summary>
        /// 添加版主
        /// </summary>
        /// <param name="operatorUserID"></param>
        /// <param name="userID"></param>
        /// <param name="forumIds"></param>
        /// <param name="modetatorsType"></param>
        public void AddModerators(AuthUser operatorUser, ModeratorCollection moderators)
        {
            //AuthUser user = UserBO.Instance.GetUser(operatorUserID);
            //if (user == null)
            //    return;
            if (!AllSettings.Current.BackendPermissions.Can(operatorUser, BackendPermissions.Action.Manage_Moderator))
            {
                ThrowError <NoPermissionManageModerator>(new NoPermissionManageModerator());
                return;
            }

            foreach (Moderator m in moderators)
            {
                if (m.IsNew)
                {
                    m.AppointorID = operatorUser.UserID;
                    m.IsNew       = false;
                }
            }

            if (moderators.Count == 0)
            {
                return;
            }

            if (ForumDaoV5.Instance.AddModerators(moderators))
            {
                this.ClearModeratorCache();
                //User operatorUser = UserBO.Instance.GetUser(operatorUserID);

                foreach (Moderator m in moderators)
                {
                    Logs.LogManager.LogOperation(new Logs.ModeratorAppoint(operatorUser.UserID, operatorUser.Username, m.UserID, m.User.Username, m.ForumID, m.Name, IPUtil.GetCurrentIP()));
                }
            }
        }
Esempio n. 9
0
        private void AddModerators()
        {

            ModeratorCollection moderators = new ModeratorCollection();

            //------------------ old ------------------------
            
            string[] strForumUser=_Request.Get("forum-user",Method.Post,string.Empty).Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries );

            foreach (string str in strForumUser)
            {
                Moderator m = new Moderator();
                m.SortOrder = _Request.Get<int>("sortorder." + str, Method.Post, 0);
                m.UserID = int.Parse(str.Split('.')[1]);
                m.ForumID = int.Parse(str.Split('.')[0]);
                m.BeginDate = DateTimeUtil.ParseBeginDateTime(_Request.Get("begindate." + str, Method.Post));
                m.EndDate = DateTimeUtil.ParseEndDateTime(_Request.Get("enddate." + str, Method.Post));
                m.IsNew = _Request.Get<bool>("isnew." + str, Method.Post, false);
                m.ModeratorType = _Request.Get<ModeratorType>("ModeratorType." + str, Method.Post, ModeratorType.Moderators);
                if (Forum.ParentID != 0 && m.ModeratorType == ModeratorType.CategoryModerators)
                {
                    ShowError("非顶级分类不可以添加 分类版主!");
                }
                else if(Forum.ParentID==0)
                {
                    m.ModeratorType = ModeratorType.CategoryModerators;
                }
                moderators.Add(m);
            }


            //-----------------  new  ----------------------
            if (!string.IsNullOrEmpty(_Request.Get("newmoderatorsid",Method.Post))
                && _Request.Get("newmoderatorsid", Method.Post).Contains("{0}"))//No javascript
            {
                Moderator m=GetNewModerators("{0}");
                if (m != null)
                    moderators.Add(m);
            }
            else
            {
                int[] newModeratorIds = _Request.GetList<int>("newmoderatorsid", Method.Post, new int[0]);
                foreach (int i in newModeratorIds)
                {
                    Moderator m = GetNewModerators(i.ToString());
                    if (m != null)
                        moderators.Add(m);
                }
            }


            MessageDisplay msgDisplay = CreateMessageDisplay();


            if (moderators.Count == 0)
                Return(true);

            try
            {
               ForumBO.Instance.AddModerators(My, moderators);
            }
            catch( Exception ex )
            {
                msgDisplay.AddError(ex.Message);
            }

            if (HasUnCatchedError)
            {
                CatchError<ErrorInfo>(delegate(ErrorInfo error)
                {
                    msgDisplay.AddError(error);
                });
            }
            else
            {

            }

            if (!msgDisplay.HasAnyError())
                Return(true);
        }
Esempio n. 10
0
        /// <summary>
        /// 判断用户是不是某类版主
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public bool IsModerator(int userid, ModeratorType type)
        {
            ModeratorCollection moderators = GetModerators();

            return((moderators.GetUserModeratorType(userid) & type) == type);
        }
Esempio n. 11
0
        private void AddModerators()
        {
            ModeratorCollection moderators = new ModeratorCollection();

            //------------------ old ------------------------

            string[] strForumUser = _Request.Get("forum-user", Method.Post, string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string str in strForumUser)
            {
                Moderator m = new Moderator();
                m.SortOrder     = _Request.Get <int>("sortorder." + str, Method.Post, 0);
                m.UserID        = int.Parse(str.Split('.')[1]);
                m.ForumID       = int.Parse(str.Split('.')[0]);
                m.BeginDate     = DateTimeUtil.ParseBeginDateTime(_Request.Get("begindate." + str, Method.Post));
                m.EndDate       = DateTimeUtil.ParseEndDateTime(_Request.Get("enddate." + str, Method.Post));
                m.IsNew         = _Request.Get <bool>("isnew." + str, Method.Post, false);
                m.ModeratorType = _Request.Get <ModeratorType>("ModeratorType." + str, Method.Post, ModeratorType.Moderators);
                if (Forum.ParentID != 0 && m.ModeratorType == ModeratorType.CategoryModerators)
                {
                    ShowError("非顶级分类不可以添加 分类版主!");
                }
                else if (Forum.ParentID == 0)
                {
                    m.ModeratorType = ModeratorType.CategoryModerators;
                }
                moderators.Add(m);
            }


            //-----------------  new  ----------------------
            if (!string.IsNullOrEmpty(_Request.Get("newmoderatorsid", Method.Post)) &&
                _Request.Get("newmoderatorsid", Method.Post).Contains("{0}"))   //No javascript
            {
                Moderator m = GetNewModerators("{0}");
                if (m != null)
                {
                    moderators.Add(m);
                }
            }
            else
            {
                int[] newModeratorIds = _Request.GetList <int>("newmoderatorsid", Method.Post, new int[0]);
                foreach (int i in newModeratorIds)
                {
                    Moderator m = GetNewModerators(i.ToString());
                    if (m != null)
                    {
                        moderators.Add(m);
                    }
                }
            }


            MessageDisplay msgDisplay = CreateMessageDisplay();


            if (moderators.Count == 0)
            {
                Return(true);
            }

            try
            {
                ForumBO.Instance.AddModerators(My, moderators);
            }
            catch (Exception ex)
            {
                msgDisplay.AddError(ex.Message);
            }

            if (HasUnCatchedError)
            {
                CatchError <ErrorInfo>(delegate(ErrorInfo error)
                {
                    msgDisplay.AddError(error);
                });
            }
            else
            {
            }

            if (!msgDisplay.HasAnyError())
            {
                Return(true);
            }
        }
Esempio n. 12
0
        public override bool AddModerators(ModeratorCollection moderators)
        {
            using (SqlQuery query = new SqlQuery())
            {
                StringBuilder builder = new StringBuilder();

                int i = 0;
                foreach (Moderator m in moderators)
                {
                    builder.AppendFormat("DELETE FROM bx_Moderators WHERE UserID=@UserID{0} AND ForumID=@ForumID{0};", i);
                    builder.AppendFormat(@"INSERT INTO bx_Moderators( UserID, ForumID, BeginDate, EndDate, ModeratorType, SortOrder, AppointorID)
                                            VALUES(@UserID{0}, @ForumID{0}, @BeginDate{0}, @EndDate{0},@ModeratorType{0}, @SortOrder{0}, @AppointorID{0})", i);

                    query.CreateParameter<int>(string.Format("@UserID{0}", i), m.UserID, SqlDbType.Int);
                    query.CreateParameter<int>(string.Format("@ForumID{0}", i), m.ForumID, SqlDbType.Int);
                    query.CreateParameter<DateTime>(string.Format("@BeginDate{0}", i), m.BeginDate, SqlDbType.DateTime);
                    query.CreateParameter<DateTime>(string.Format("@EndDate{0}", i), m.EndDate, SqlDbType.DateTime);
                    query.CreateParameter<byte>(string.Format("@ModeratorType{0}", i), (byte)m.ModeratorType, SqlDbType.TinyInt);
                    query.CreateParameter<int>(string.Format("@SortOrder{0}", i), m.SortOrder, SqlDbType.Int);
                    query.CreateParameter<int>(string.Format("@AppointorID{0}", i), m.AppointorID, SqlDbType.Int);
                    i++;
                }
                query.CommandText = builder.ToString();
                query.ExecuteNonQuery();
                return true;
            }
        }
Esempio n. 13
0
 public abstract bool AddModerators(ModeratorCollection moderators);