示例#1
0
        internal Boolean RemoveSubForum(int userRequesterId, int subForumId)
        {
            Session se = GetSession(userRequesterId);

            se.AddAction(ForumLogger.TYPE_INFO, "Trying to remove subForum " + subForumId + " in forum " + forumID);
            if ((userRequesterId != 1) && (!adminUsers.Any(au => au.userID == userRequesterId)))
            {
                se.AddAction(ForumLogger.TYPE_ERROR, error_accessDenied);
                throw new UnauthorizedAccessException(error_accessDenied);
            }
            try
            {
                SubForum tmp = null;
                foreach (SubForum sbfrm in subForums)
                {
                    if (sbfrm.SubForumId == subForumId)
                    {
                        tmp = sbfrm;
                    }
                }
                if (adminUsers.Any(au => au.userID == userRequesterId))
                {
                    subForums.Remove(tmp);
                    return(true);
                }
            }
            catch (Exception ex)
            {
                se.AddAction(ForumLogger.TYPE_ERROR, ex.Message);
                throw ex;
            }
            se.AddAction(ForumLogger.TYPE_INFO, "SubForum " + subForumId + "removed from forum " + forumID);
            return(false);
        }
示例#2
0
        internal void RemoveModerator(int userRequesterId, int userId, int subForumId)
        {
            Session se = GetSession(userRequesterId);

            se.AddAction(ForumLogger.TYPE_INFO, "Trying to remove moderator " + userId + " from forum " + forumID + ", subForum: " + subForumId);

            SubForum   sf         = GetSubForum(subForumId);
            List <int> moderators = sf.GetModeratorsIds();

            if ((userRequesterId != 1) && (!adminUsers.Any(au => au.userID == userRequesterId) && (!CheckExisting(moderators, subForumId))))
            {
                se.AddAction(ForumLogger.TYPE_ERROR, error_accessDenied);
                throw new UnauthorizedAccessException(error_accessDenied);
            }
            try
            {
                foreach (SubForum sbfrm in subForums)
                {
                    if (sbfrm.SubForumId == subForumId)
                    {
                        sbfrm.RemoveModerator(userId);
                    }
                }
            }
            catch (Exception ex)
            {
                se.AddAction(ForumLogger.TYPE_ERROR, ex.Message);
                throw ex;
            }
            se.AddAction(ForumLogger.TYPE_INFO, "Moderator " + userId + " removed from forum " + forumID + ", subForum: " + subForumId);
        }
示例#3
0
        public List <int> GetModeratorIds(int forumId, int subForumId)
        {
            Forum      fr            = GetForum(forumId);
            SubForum   sf            = fr.GetSubForum(subForumId);
            List <int> moderatorsIds = sf.GetModeratorsIds();

            return(moderatorsIds);
        }
示例#4
0
文件: Forum.cs 项目: galbened/sadna
        internal Boolean RemoveSubForum(int subForumId, int callerUserId)
        {
            SubForum tmp = null;

            foreach (SubForum sbfrm in subForums)
            {
                if (sbfrm.SubForumId == subForumId)
                {
                    tmp = sbfrm;
                }
            }
            if (adminsID.Contains(callerUserId))
            {
                subForums.Remove(tmp);
                return(true);
            }
            return(false);
        }
示例#5
0
        internal void AddModerator(int userRequesterId, int subForumId, int moderatorId)
        {
            Session se = GetSession(userRequesterId);

            se.AddAction(ForumLogger.TYPE_INFO, "Trying to add moderator " + moderatorId + " to forum " + forumID + ", subForum: " + subForumId);

            SubForum   sf         = GetSubForum(subForumId);
            List <int> moderators = sf.GetModeratorsIds();

            if ((userRequesterId != 1) && (!adminUsers.Any(au => au.userID == userRequesterId) && (!CheckExisting(moderators, subForumId))))
            {
                se.AddAction(ForumLogger.TYPE_ERROR, error_accessDenied);
                throw new UnauthorizedAccessException(error_accessDenied);
            }
            try
            {
                if (registeredUsers.Any(ru => ru.userID == moderatorId))
                {
                    Boolean flag = false;
                    //if (registeredUsersID.Contains(moderatorId))
                    foreach (SubForum sbfrm in subForums)
                    {
                        if ((sbfrm.SubForumId == subForumId) && (sbfrm.NumOfModerators() < poli.ModeratorNum))
                        {
                            sbfrm.AddModerator(moderatorId, userRequesterId);
                            flag = true;
                        }
                    }
                    if (!flag)
                    {
                        throw new ArgumentException("too much moderators");
                    }
                }
            }
            catch (Exception ex)
            {
                se.AddAction(ForumLogger.TYPE_ERROR, ex.Message);
                throw ex;
            }
            se.AddAction(ForumLogger.TYPE_INFO, "Moderator " + moderatorId + " added to forum " + forumID + ", subForum: " + subForumId);
        }
示例#6
0
        public void ComplainModerator(int userRequesterId, int moderator, int forumId, int subForumId)
        {
            Forum      fr         = GetForum(forumId);
            SubForum   sf         = fr.GetSubForum(subForumId);
            List <int> moderators = sf.GetModeratorsIds();

            if (!moderators.Contains(moderator))
            {
                throw new ArgumentException(error_noSuchUser + ": " + moderator);
            }
            string     complainer     = GetUsername(forumId, userRequesterId);
            List <int> adminsIds      = GetForumAdmins(forumId);
            string     complainOnUser = GetUsername(forumId, moderator);

            foreach (int admin in adminsIds)
            {
                string complainToUser = GetUsername(forumId, admin);
                string complainToMail = GetUserMail(forumId, admin);
                Notification.Notification.SendComplaintNotification(complainer, complainToUser, complainOnUser, complainToMail);
            }
        }