public string setForumPostDeletionPermissions(string forumName, postDeletionPermission permission, string requestingUser) { List <string> input = new List <string>() { forumName, requestingUser }; if (!Constants.isValidInput(input)) { return(Constants.INVALID_INPUT); } if (_um.getUserPermissionsForForum(forumName, requestingUser) < userManagement.permission.ADMIN) { return("Unauthorized user"); } Forum f = getForum(forumName); if (f == null) { return(Constants.forumDoesntExist(forumName)); } f.setPostDeletionPermissions(permission); return(permission == f.getPostDeletionPermissions() ? Constants.SUCCESS : Constants.FUNCTION_ERRROR); }
public string deletePost(string forumName, string subForumName, int postNo, string requestingUser) { List <string> input = new List <string>() { forumName, subForumName, requestingUser }; if (Constants.isValidInput(input)) { lock (o) { postDeletionPermission pdp = _fm.getForumPostDeletionPermission(forumName); if (pdp == postDeletionPermission.INVALID) { return(Constants.noPermissionToDeletePost(requestingUser)); } permission p = _um.getUserPermissionsForSubForum(forumName, subForumName, requestingUser); if (p == permission.INVALID) { return(Constants.noPermissionToDeletePost(requestingUser)); } return(_fm.deletePost(forumName, subForumName, postNo, pdp, p, requestingUser)); } } return(Constants.INVALID_INPUT); }
public string setForumPostDeletionPermissions(string forumName, postDeletionPermission permission, string requestingUser) { List <string> input = new List <string>() { forumName }; if (Constants.isValidInput(input)) { lock (o) { if (_um.getUserPermissionsForForum(forumName, requestingUser) != WSEP_domain.userManagement.permission.SUPER_ADMIN && _um.getUserPermissionsForForum(forumName, requestingUser) != WSEP_domain.userManagement.permission.ADMIN) { return("Unauthorized user"); } if (!_fm.setForumPostDeletionPermissions(forumName, permission)) { return(Constants.forumDoesntExist(forumName)); } return(Constants.SUCCESS); } } return(Constants.INVALID_INPUT); }
public string deletePost(string forumName, string subForumName, int postNo, string requestingUser) { List <string> input = new List <string>() { forumName, subForumName, requestingUser }; if (!Constants.isValidInput(input)) { return(Constants.INVALID_INPUT); } Forum f = getForum(forumName); if (f == null) { return(Constants.forumDoesntExist(forumName)); } postDeletionPermission pdp = f.getPostDeletionPermissions(); if (pdp == postDeletionPermission.INVALID) { return(Constants.noPermissionToDeletePost(requestingUser)); } permission p = _um.getUserPermissionsForSubForum(forumName, subForumName, requestingUser); if (p == permission.INVALID) { return(Constants.noPermissionToDeletePost(requestingUser)); } return(f.deletePost(subForumName, postNo, pdp, p, requestingUser)); }
public void setPostDeletionPermissions(postDeletionPermission permission) { if (_policy == null) { return; } _policy.setPostDeletionPermissions(permission); }
public void setPostDeletionPermissions(postDeletionPermission permission) { if (permission == postDeletionPermission.INVALID) { return; } _pdp = permission; }
public string deletePost(string subForumName, int postNo, postDeletionPermission pdp, permission p, string requestingUser) { SubForum sf = getSubForum(subForumName); if (sf == null) { return(subForumDoesntExist(subForumName)); } return(sf.deletePost(postNo, pdp, p, requestingUser)); }
public static ForumPolicy create(int maxNumOfAdmins, int minNumOfAdmins, int maxNumOfModerators, int minNumOfModerators, postDeletionPermission pdp, int passwordLifespan, int moderatorSeniority, modUnassignmentPermission mup) { if (minNumOfAdmins > maxNumOfAdmins || minNumOfModerators > maxNumOfModerators || maxNumOfAdmins <= 0 || maxNumOfModerators <= 0 || passwordLifespan <= 0 || moderatorSeniority < 0 || pdp == postDeletionPermission.INVALID || mup == modUnassignmentPermission.INVALID) { return(null); } return(new ForumPolicy(maxNumOfAdmins, minNumOfAdmins, maxNumOfModerators, minNumOfModerators, pdp, passwordLifespan, moderatorSeniority, mup)); }
public ForumPolicy() { _maxNumOfAdmins = 10; _minNumOfAdmins = 1; _maxNumOfModerators = 10; _minNumOfModerators = 1; _pdp = postDeletionPermission.WRITER; _passwordLifespan = 365; _moderatorSeniority = 0; _mup = modUnassignmentPermission.ADMIN; }
public ForumPolicy(int maxNumOfAdmins, int minNumOfAdmins, int maxNumOfModerators, int minNumOfModerators, postDeletionPermission pdp, int passwordLifespan, int moderatorSeniority, modUnassignmentPermission mup) { _maxNumOfAdmins = maxNumOfAdmins; _minNumOfAdmins = minNumOfAdmins; _maxNumOfModerators = maxNumOfModerators; _minNumOfModerators = minNumOfModerators; _pdp = pdp; _passwordLifespan = passwordLifespan; _moderatorSeniority = moderatorSeniority; _mup = mup; }
public void setPostDeletionPermissions(postDeletionPermission permission) { if (!ForumSystem._testFlag) { ForumPolicy fp = new ForumPolicy(); fp.setPostDeletionPermissions(permission); if (!setForumPolicy(fp)) { return; } } _policy.setPostDeletionPermissions(permission); }
// deletePost need to be synchronized public string deletePost(int postNo, postDeletionPermission pdp, permission p, string requestingUser) { Post post = searchPost(_threads, postNo); if (post == null) { return(Constants.SUCCESS); } switch (pdp) { case postDeletionPermission.WRITER: if (p < permission.MODERATOR && !post.getWriter().Equals(requestingUser)) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.MODERATOR: if (p < permission.MODERATOR) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.ADMIN: if (p < permission.ADMIN) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.SUPER_ADMIN: if (p < permission.SUPER_ADMIN) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; default: return(Constants.noPermissionToDeletePost(requestingUser)); } if (post.delete()) { _numOfPosts--; return(Constants.SUCCESS); } return("Could not delete post"); }
private ForumPolicy getForumPolicy(string forumName) { List <Tuple <Tuple <int, int>, Tuple <int, int>, Tuple <int, int>, Tuple <int, int> > > policies = _db.ReturnforumPolicy(forumName); Tuple <Tuple <int, int>, Tuple <int, int>, Tuple <int, int>, Tuple <int, int> > policy = policies.ElementAt(0); postDeletionPermission pdp = postDeletionPermission.WRITER; switch (policy.Item3.Item1) { case 2: pdp = postDeletionPermission.WRITER; break; case 3: pdp = postDeletionPermission.MODERATOR; break; case 4: pdp = postDeletionPermission.ADMIN; break; case 5: pdp = postDeletionPermission.SUPER_ADMIN; break; } modUnassignmentPermission mup = modUnassignmentPermission.ADMIN; switch (policy.Item4.Item2) { case 2: mup = modUnassignmentPermission.ADMIN; break; case 3: mup = modUnassignmentPermission.ASSIGNING_ADMIN; break; case 4: mup = modUnassignmentPermission.SUPER_ADMIN; break; } return(new ForumPolicy(policy.Item1.Item1, policy.Item1.Item2, policy.Item2.Item1, policy.Item2.Item2, pdp, policy.Item3.Item2, policy.Item4.Item1, mup)); }
public bool setForumPostDeletionPermissions(string forumName, postDeletionPermission permission) { List <string> input = new List <string>() { forumName }; if (!Constants.isValidInput(input)) { return(false); } Forum f = getForum(forumName); if (f == null) { return(false); } f.setPostDeletionPermissions(permission); return(f.getPostDeletionPermissions() == permission); }
public string setForumPostDeletionPermissions(string forumName, postDeletionPermission permission, string requestingUser) { lock (syncLock) { List <string> strList = new List <string>(); List <int> intList = new List <int>(); strList.Add(forumName); strList.Add(requestingUser); int toAdd = 0; switch (permission) { case postDeletionPermission.WRITER: toAdd = 2; break; case postDeletionPermission.MODERATOR: toAdd = 3; break; case postDeletionPermission.ADMIN: toAdd = 4; break; case postDeletionPermission.SUPER_ADMIN: toAdd = 5; break; } intList.Add(toAdd); serverMessage ans = sendMessage("setForumPostDeletionPermissions", strList, intList, DateTime.Now); if (ans._messageType.Equals(serverMessage.messageType.success)) { return("true"); } if (ans.stringContent.Count > 0) { return(ans.stringContent.ElementAt(0)); } return("error, not successful for unknown reason"); } }
private bool setForumPolicy(ForumPolicy p) { int i_pdp = 2; postDeletionPermission e_pdp = p.getPostDeletionPermissions(); switch (e_pdp) { case postDeletionPermission.MODERATOR: i_pdp = 3; break; case postDeletionPermission.ADMIN: i_pdp = 4; break; case postDeletionPermission.SUPER_ADMIN: i_pdp = 5; break; } int i_mup = 2; modUnassignmentPermission e_mup = p.getModUnassignmentPermissions(); switch (e_mup) { case modUnassignmentPermission.ASSIGNING_ADMIN: i_mup = 3; break; case modUnassignmentPermission.SUPER_ADMIN: i_mup = 4; break; } if (!ForumSystem._db.changeForumPolicy(p.getMaxAdmins(), p.getMinAdmins(), p.getMaxModerators(), p.getMinModerators(), _name, i_pdp, p.getPasswordLifespan(), p.getModeratorsSeniority(), i_mup)) { return(false); } return(true); }
// deletePost need to be synchronized public string deletePost(int postNo, postDeletionPermission pdp, permission p, string requestingUser) { Post post = searchPost(_threads, postNo); if (post == null) { return("Post doesn't exist"); } switch (pdp) { case postDeletionPermission.WRITER: if (p < permission.MODERATOR && !post.getWriter().Equals(requestingUser)) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.MODERATOR: if (p < permission.MODERATOR) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.ADMIN: if (p < permission.ADMIN) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; case postDeletionPermission.SUPER_ADMIN: if (p < permission.SUPER_ADMIN) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; default: if (p != permission.SUPER_ADMIN) { return(Constants.noPermissionToDeletePost(requestingUser)); } break; } if (!ForumSystem._testFlag) { if (!ForumSystem._db.removeSubForumPost(post.getSN())) { return(Constants.DB_ERROR); } } if (_threads.Contains(post)) { _threads.Remove(post); if (_threads.Contains(post)) { throw new ShouldNotHappenException(); // cannot cover this case } List <Tuple <string, string, DateTime, int, int, string, DateTime> > list = new List <Tuple <string, string, DateTime, int, int, string, DateTime> >(); post.getAllTree(list); _numOfPosts -= list.Count; ForumSystem.notify("A thread you are following has been deleted.", post.getAllFollowers(), _forumName); ForumSystem.notify("A thread you are currently watching has been deleted.", post.getInteractiveFollowers(), _forumName); return(Constants.SUCCESS); } Tuple <bool, List <string> > deletion = post.delete(); if (deletion.Item1) { List <Tuple <string, string, DateTime, int, int, string, DateTime> > list = new List <Tuple <string, string, DateTime, int, int, string, DateTime> >(); post.getAllTree(list); _numOfPosts -= list.Count; ForumSystem.notify("A post you are following has been deleted.", post.getAllFollowers(), _forumName); ForumSystem.notify("A post in a thread you are currently watching has been deleted.", getAncestor(post).getInteractiveFollowers(), _forumName); return(Constants.SUCCESS); } return("Could not delete post"); // cannot cover this case }
private serverMessage parseServerMessage(serverMessage message) { List <string> strLst = new List <string>(); List <int> intLst = new List <int>(); DateTime date = new DateTime(); string forumName, user, scndUser, subforumName, ans, password; int number; switch (message._messageType) { case serverMessage.messageType.checkForumPolicy: forumName = message.stringContent.ElementAt(0); ans = forumSystem.checkForumPolicy(forumName, message.policy); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, new List <string>(), new List <int>(), date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); case serverMessage.messageType.addForum: //Console.WriteLine("got to add forum"); if (checkArgs(message.stringContent, 2)) { strLst.Add("error, needed 2 arguments exactley"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); ans = forumSystem.addForum(forumName, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.addSubForum: if (checkArgs(message.stringContent, 4) & (checkArgs(message.intContent, message.stringContent.Count - 3))) { strLst.Add("error, arguments not valid"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); List <Tuple <string, string, int> > tupleList = new List <Tuple <string, string, int> >(); for (int i = 0; i < (message.stringContent.Count - 3); i++) { tupleList.Add(new Tuple <string, string, int>(message.stringContent.ElementAt(i + 3), "", message.intContent.ElementAt(i))); } ans = forumSystem.addSubForum(forumName, subforumName, tupleList, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.assignAdmin: if (checkArgs(message.stringContent, 3)) { strLst.Add("error, needed 4 arguments exactley"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); scndUser = message.stringContent.ElementAt(2); ans = forumSystem.assignAdmin(forumName, user, scndUser); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.registerMemberToForum: // Console.WriteLine("got to register member"); if (checkArgs(message.stringContent, 4)) { strLst.Add("error, needed 4 arguments exactley"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); password = message.stringContent.ElementAt(2); string mail = message.stringContent.ElementAt(3); ans = forumSystem.registerMemberToForum(forumName, user, password, mail); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.unassignAdmin: if (checkArgs(message.stringContent, 3)) { strLst.Add("error, needed 3 arguments exactley"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); scndUser = message.stringContent.ElementAt(2); ans = forumSystem.unassignAdmin(forumName, user, scndUser); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.assignModerator: if ((checkArgs(message.stringContent, 4)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); scndUser = message.stringContent.ElementAt(3); number = message.intContent.ElementAt(0); ans = forumSystem.assignModerator(forumName, subforumName, user, scndUser, number); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.sendPM: if (checkArgs(message.stringContent, 4)) { strLst.Add("error, needed 4 arguments exactley"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); scndUser = message.stringContent.ElementAt(2); ans = message.stringContent.ElementAt(3); ans = forumSystem.sendPM(forumName, user, scndUser, ans); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumMaxAdmins: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumMaxAdmins(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumMinAdmins: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumMinAdmins(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumMaxModerators: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumMaxModerators(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumMinModerators: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumMinModerators(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumPostDeletionPermissions: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); postDeletionPermission pdp = postDeletionPermission.WRITER; switch (number) { case 2: pdp = postDeletionPermission.WRITER; break; case 3: pdp = postDeletionPermission.MODERATOR; break; case 4: pdp = postDeletionPermission.ADMIN; break; case 5: pdp = postDeletionPermission.SUPER_ADMIN; break; default: return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); } ans = forumSystem.setForumPostDeletionPermissions(forumName, pdp, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumPasswordLifespan: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumPasswordLifespan(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumModeratorsSeniority: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); ans = forumSystem.setForumModeratorsSeniority(forumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setForumModUnassignmentPermissions: if ((checkArgs(message.stringContent, 2)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); number = message.intContent.ElementAt(0); modUnassignmentPermission mup = modUnassignmentPermission.ASSIGNING_ADMIN; switch (number) { case 2: mup = modUnassignmentPermission.ADMIN; break; case 3: mup = modUnassignmentPermission.ASSIGNING_ADMIN; break; case 4: mup = modUnassignmentPermission.SUPER_ADMIN; break; default: return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); } ans = forumSystem.setForumModUnassignmentPermissions(forumName, mup, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.writePost: if ((checkArgs(message.stringContent, 5)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); ans = message.stringContent.ElementAt(3); password = message.stringContent.ElementAt(4); number = message.intContent.ElementAt(0); ans = forumSystem.writePost(forumName, subforumName, number, user, ans, password); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.setModeratorTrialTime: if ((checkArgs(message.stringContent, 4)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); scndUser = message.stringContent.ElementAt(3); number = message.intContent.ElementAt(0); ans = forumSystem.setModeratorTrialTime(forumName, subforumName, user, number, scndUser); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.deletePost: if ((checkArgs(message.stringContent, 3)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); number = message.intContent.ElementAt(0); ans = forumSystem.deletePost(forumName, subforumName, number, user); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.editPost: if ((checkArgs(message.stringContent, 3)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); ans = message.stringContent.ElementAt(3); number = message.intContent.ElementAt(0); ans = forumSystem.editPost(forumName, subforumName, number, user, ans); if (ans.Equals("true")) { return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } strLst.Add(ans); return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.getNumOfPostsInSubForum: if ((checkArgs(message.stringContent, 3)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); number = forumSystem.getNumOfPostsInSubForum(forumName, subforumName, user); if (number != -1) { intLst.Add(number); return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); case serverMessage.messageType.getListOfMemberMessages: if ((checkArgs(message.stringContent, 3)) & (checkArgs(message.intContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); scndUser = message.stringContent.ElementAt(2); List <Tuple <string, string, DateTime, int> > returnForMemMesages = new List <Tuple <string, string, DateTime, int> >(); returnForMemMesages = forumSystem.getListOfMemberMessages(forumName, user, scndUser); if (returnForMemMesages != null) { if (returnForMemMesages.Count != 0) { return(new serverMessage(serverMessage.messageType.success, returnForMemMesages)); } } return(new serverMessage(serverMessage.messageType.unsuccess, returnForMemMesages)); case serverMessage.messageType.getListOfForummoderators: if ((checkArgs(message.stringContent, 2))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); List <Tuple <string, string, DateTime, string> > returnForMemMesages2 = new List <Tuple <string, string, DateTime, string> >(); returnForMemMesages2 = forumSystem.getListOfForumModerators(forumName, user); if (returnForMemMesages2 != null) { if (returnForMemMesages2.Count != 0) { return(new serverMessage(serverMessage.messageType.success, returnForMemMesages2)); } } return(new serverMessage(serverMessage.messageType.unsuccess, returnForMemMesages2)); case serverMessage.messageType.numOfForums: if ((checkArgs(message.stringContent, 1))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } user = message.stringContent.ElementAt(0); number = forumSystem.numOfForums(user); if (number != -1) { intLst.Add(number); return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } return(new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date)); /* case serverMessage.messageType.ForumsByUser: * if ((checkArgs(message.stringContent, 2))) * { * strLst.Add("error"); * return new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date); * } * user = message.stringContent.ElementAt(0); * scndUser = message.stringContent.ElementAt(1); * strLst = forumSystem.ForumsByUser(user, scndUser); * if (strLst.Count != 0) * { * * return new serverMessage(serverMessage.messageType.success, strLst, intLst, date); * } * return new serverMessage(serverMessage.messageType.unsuccess, strLst, intLst, date);*/ case serverMessage.messageType.getForums: List <string> forums = forumSystem.getForums(); return(new serverMessage(serverMessage.messageType.success, forums, intLst, date)); case serverMessage.messageType.getSubForums: if ((checkArgs(message.stringContent, 2))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); List <string> subForums = forumSystem.getSubForums(forumName, user); return(new serverMessage(serverMessage.messageType.success, subForums, intLst, date)); case serverMessage.messageType.getThreads: if ((checkArgs(message.stringContent, 3))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); List <Tuple <string, DateTime, int> > returnForMemMesages3 = new List <Tuple <string, DateTime, int> >(); returnForMemMesages3 = forumSystem.getThreads(forumName, subforumName, user); if (returnForMemMesages3 != null) { if (returnForMemMesages3.Count != 0) { return(new serverMessage(serverMessage.messageType.success, returnForMemMesages3)); } } return(new serverMessage(serverMessage.messageType.unsuccess, returnForMemMesages3)); case serverMessage.messageType.getThread: if ((checkArgs(message.stringContent, 3)) & checkArgs(message.intContent, 1)) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); number = message.intContent.ElementAt(0); List <Tuple <string, string, DateTime, int, int, string, DateTime> > returnForMemMesages4 = new List <Tuple <string, string, DateTime, int, int, string, DateTime> >(); returnForMemMesages4 = forumSystem.getThread(forumName, subforumName, number, user); if (returnForMemMesages4 != null) { if (returnForMemMesages4.Count != 0) { return(new serverMessage(serverMessage.messageType.success, returnForMemMesages4)); } } return(new serverMessage(serverMessage.messageType.unsuccess, returnForMemMesages4)); case serverMessage.messageType.login: if ((checkArgs(message.stringContent, 3))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); password = message.stringContent.ElementAt(2); loginStatus ls = forumSystem.login(forumName, user, password); number = 1; switch (ls) { case loginStatus.FALSE: number = 1; break; case loginStatus.TRUE: number = 2; break; case loginStatus.UPDATE_PASSWORD: number = 3; break; } intLst.Add(number); return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); case serverMessage.messageType.getUserPermissionsForForum: if ((checkArgs(message.stringContent, 2))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); user = message.stringContent.ElementAt(1); permission p = forumSystem.getUserPermissionsForForum(forumName, user); number = 1; switch (p) { case permission.INVALID: number = 1; break; case permission.GUEST: number = 2; break; case permission.MEMBER: number = 3; break; case permission.ADMIN: number = 5; break; case permission.SUPER_ADMIN: number = 6; break; } intLst.Add(number); return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); case serverMessage.messageType.getUserPermissionsForSubForum: if ((checkArgs(message.stringContent, 2))) { strLst.Add("error"); return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); } forumName = message.stringContent.ElementAt(0); subforumName = message.stringContent.ElementAt(1); user = message.stringContent.ElementAt(2); permission p1 = forumSystem.getUserPermissionsForSubForum(forumName, subforumName, user); number = 1; switch (p1) { case permission.INVALID: number = 1; break; case permission.GUEST: number = 2; break; case permission.MEMBER: number = 3; break; case permission.MODERATOR: number = 4; break; case permission.ADMIN: number = 5; break; case permission.SUPER_ADMIN: number = 6; break; } intLst.Add(number); return(new serverMessage(serverMessage.messageType.success, strLst, intLst, date)); } return(new serverMessage(serverMessage.messageType.errorHappened, strLst, intLst, date)); }
public void setPostDeletionPermissions(postDeletionPermission permission) { _pdp = permission; }