| 1 25 26 27 package org.nemesis.forum.util; 28 29 import java.util.Iterator ; 30 31 import org.nemesis.forum.Authorization; 32 import org.nemesis.forum.Forum; 33 import org.nemesis.forum.ForumFactory; 34 import org.nemesis.forum.ForumPermissions; 35 import org.nemesis.forum.Group; 36 import org.nemesis.forum.ProfileManager; 37 import org.nemesis.forum.config.Constants; 38 39 43 public class SecurityTools { 44 45 51 public static boolean isSystemAdmin(Authorization authToken) { 52 ForumFactory forumFactory = ForumFactory.getInstance(authToken); 53 ForumPermissions permissions = forumFactory.getPermissions(authToken); 54 return permissions.get(Constants.SYSTEM_ADMIN); 55 } 56 57 69 public static boolean isForumAdmin(Authorization authToken) { 70 71 if(isSystemAdmin(authToken)) return true; 72 73 ForumFactory forumFactory = ForumFactory.getInstance(authToken); 74 75 Iterator forumIterator = forumFactory.forums(); 76 if (!forumIterator.hasNext()) { 77 return false; 78 } 79 while (forumIterator.hasNext()) { 80 Forum forum = (Forum) forumIterator.next(); 81 if (forum.hasPermission(Constants.FORUM_ADMIN)) { 82 return true; 83 } 84 } 85 return false; 86 } 87 88 100 public static boolean isForumModerator(Authorization authToken) { 101 102 if(isSystemAdmin(authToken)) return true; 103 104 ForumFactory forumFactory = ForumFactory.getInstance(authToken); 105 Iterator forumIterator = forumFactory.forums(); 106 if (!forumIterator.hasNext()) { 107 return false; 108 } 109 while (forumIterator.hasNext()) { 110 Forum forum = (Forum) forumIterator.next(); 111 if (forum.hasPermission(Constants.MODERATOR)) { 112 return true; 113 } 114 } 115 return false; 116 } 117 118 125 public static boolean isForumAdmin(Authorization authToken, Forum forum) { 126 if(isSystemAdmin(authToken)) return true; 127 128 return (forum.hasPermission(Constants.FORUM_ADMIN)); 129 } 130 137 public static boolean isForumModerator(Authorization authToken, Forum forum) { 138 if(isSystemAdmin(authToken)) return true; 139 140 return (forum.hasPermission(Constants.MODERATOR)); 141 } 142 143 153 public static boolean isGroupAdmin(Authorization authToken) { 154 if(isSystemAdmin(authToken)) return true; 155 156 ForumFactory forumFactory = ForumFactory.getInstance(authToken); 157 ProfileManager manager = forumFactory.getProfileManager(); 158 Iterator groupIterator = manager.groups(); 159 if (!groupIterator.hasNext()) { 160 return false; 161 } 162 while (groupIterator.hasNext()) { 163 Group group = (Group) groupIterator.next(); 164 if (group.hasPermission(Constants.GROUP_ADMIN)) { 165 return true; 166 } 167 } 168 return false; 169 } 170 171 178 public static boolean isGroupAdmin(Authorization authToken, Group group) { 179 if(isSystemAdmin(authToken)) return true; 180 181 return (group.hasPermission(Constants.GROUP_ADMIN)); 182 } 183 184 } 185 | Popular Tags |