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); }
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); }
public List <int> GetModeratorIds(int forumId, int subForumId) { Forum fr = GetForum(forumId); SubForum sf = fr.GetSubForum(subForumId); List <int> moderatorsIds = sf.GetModeratorsIds(); return(moderatorsIds); }
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); }
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); }
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); } }