1 53 54 106 107 package com.Yasna.forum; 108 109 import java.util.*; 110 112 118 public class ProfileManagerProxy implements ProfileManager { 119 120 private ProfileManager profileManager; 121 private Authorization authorization; 122 private ForumPermissions permissions; 123 124 127 public ProfileManagerProxy(ProfileManager profileManager, Authorization 128 authorization, ForumPermissions permissions) 129 { 130 this.profileManager = profileManager; 131 this.authorization = authorization; 132 this.permissions = permissions; 133 } 134 135 public User createUser(String username, String password, String email) 136 throws UserAlreadyExistsException 137 { 138 return profileManager.createUser(username, password, email); 139 } 140 public boolean activateUser(int UserID, String Code){ 141 return profileManager.activateUser(UserID,Code); 142 } 143 144 public Group createGroup(String name) throws UnauthorizedException, 145 GroupAlreadyExistsException 146 { 147 if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) { 148 Group group = profileManager.createGroup(name); 149 return new GroupProxy(group, authorization, permissions); 150 } 151 else { 152 throw new UnauthorizedException(); 153 } 154 } 155 156 public User getUser(int userID) throws UserNotFoundException { 157 User user = profileManager.getUser(userID); 158 ForumPermissions userPermissions = user.getPermissions(authorization); 159 ForumPermissions newPermissions = 160 new ForumPermissions(permissions, userPermissions); 161 return new UserProxy(user, authorization, newPermissions); 162 } 163 164 public User getUser(String username) throws UserNotFoundException { 165 User user = profileManager.getUser(username); 166 ForumPermissions userPermissions = user.getPermissions(authorization); 167 ForumPermissions newPermissions = 168 new ForumPermissions(permissions, userPermissions); 169 return new UserProxy(user, authorization, newPermissions); 170 } 171 172 public User getAnonymousUser() { 173 return profileManager.getAnonymousUser(); 174 } 175 176 public User getSpecialUser() { 177 return profileManager.getSpecialUser(); 178 } 179 180 public Group getGroup(int groupID) throws GroupNotFoundException { 181 Group group = profileManager.getGroup(groupID); 182 ForumPermissions groupPermissions = group.getPermissions(authorization); 183 ForumPermissions newPermissions = 184 new ForumPermissions(permissions, groupPermissions); 185 return new GroupProxy(group, authorization, newPermissions); 186 } 187 188 public Group getGroup(String name) throws GroupNotFoundException { 189 Group group = profileManager.getGroup(name); 190 ForumPermissions groupPermissions = group.getPermissions(authorization); 191 ForumPermissions newPermissions = 192 new ForumPermissions(permissions, groupPermissions); 193 return new GroupProxy(group, authorization, newPermissions); 194 } 195 196 public void deleteUser(User user) throws UnauthorizedException { 197 if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) { 198 profileManager.deleteUser(user); 199 } 200 else { 201 throw new UnauthorizedException(); 202 } 203 } 204 205 public void deleteGroup(Group group) throws UnauthorizedException { 206 if (permissions.get(ForumPermissions.SYSTEM_ADMIN)) { 207 profileManager.deleteGroup(group); 208 } 209 else { 210 throw new UnauthorizedException(); 211 } 212 } 213 214 public int getUserCount() { 215 return profileManager.getUserCount(); 216 } 217 218 public int getGroupCount() { 219 return profileManager.getGroupCount(); 220 } 221 222 public Iterator users() { 223 Iterator iterator = profileManager.users(); 224 return new UserIteratorProxy(iterator, authorization, permissions); 225 } 226 227 public Iterator users(int startIndex, int numResults) { 228 Iterator iterator = profileManager.users(startIndex, numResults); 229 return new UserIteratorProxy(iterator, authorization, permissions); 230 } 231 232 public Iterator groups() { 233 Iterator iterator = profileManager.groups(); 234 return new GroupIteratorProxy(iterator, authorization, permissions); 235 } 236 237 public Iterator groups(int startIndex, int numResults) { 238 Iterator iterator = profileManager.groups(startIndex, numResults); 239 return new GroupIteratorProxy(iterator, authorization, permissions); 240 } 241 242 public int userMessageCount(User user, Forum forum) { 243 return profileManager.userMessageCount(user, forum); 244 } 245 246 public Iterator userMessages(User user, Forum forum,int start,int numResults) { 247 Iterator iterator = profileManager.userMessages(user, forum,start,numResults); 248 return new MessageIteratorProxy(iterator, authorization, permissions); 249 } 250 } 251 | Popular Tags |