1 41 package com.mvnforum.auth; 42 43 import net.myvietnam.mvncore.exception.AssertionException; 44 45 48 class MVNForumPermissionImpl extends AbstractPermission implements MVNForumPermission { 49 50 MVNForumPermissionImpl() { 51 } 52 53 private void setBypassPrivateForum(boolean bypass) { 54 55 editForum.setBypassPrivateForum(bypass); 56 deleteForum.setBypassPrivateForum(bypass); 57 assignToForum.setBypassPrivateForum(bypass); 58 59 readPost.setBypassPrivateForum(bypass); 60 addThread.setBypassPrivateForum(bypass); 61 addPost.setBypassPrivateForum(bypass); 62 editPost.setBypassPrivateForum(bypass); 63 editOwnPost.setBypassPrivateForum(bypass); 64 deletePost.setBypassPrivateForum(bypass); 65 addPoll.setBypassPrivateForum(bypass); 66 editPoll.setBypassPrivateForum(bypass); 67 deletePoll.setBypassPrivateForum(bypass); 68 addAttachment.setBypassPrivateForum(bypass); 69 getAttachment.setBypassPrivateForum(bypass); 70 moderateThread.setBypassPrivateForum(bypass); 71 } 72 73 private void setBypassPrivateChannel(boolean bypass) { 74 75 writeContent.setBypassPrivateChannel(bypass); 76 editContent.setBypassPrivateChannel(bypass); 77 approveContent.setBypassPrivateChannel(bypass); 78 publishContent.setBypassPrivateChannel(bypass); 79 deleteContent.setBypassPrivateChannel(bypass); 80 } 81 82 85 void setPermission(int permission) throws AssertionException { 86 switch (permission) { 87 case PERMISSION_AUTHENTICATED: 88 authenticated = true; 89 break; 90 91 case PERMISSION_ACTIVATED: 92 activated = true; 93 break; 94 98 case PERMISSION_SYSTEM_ADMIN: 99 adminSystem = true; 100 addForum = true; 101 editForum.setAllForumsPermission(true); 102 deleteForum.setAllForumsPermission(true); 103 assignToForum.setAllForumsPermission(true); 104 addCategory = true; 105 editCategory = true; 106 deleteCategory = true; 107 sendMail = true; 108 useAvatar = true; 109 useMessage = true; 110 addMessageAttachment = true; 111 112 readPost.setAllForumsPermission(true); 113 addThread.setAllForumsPermission(true); 114 addPost.setAllForumsPermission(true); 115 editPost.setAllForumsPermission(true); 116 editOwnPost.setAllForumsPermission(true); 117 deletePost.setAllForumsPermission(true); 118 addPoll.setAllForumsPermission(true); 119 editPoll.setAllForumsPermission(true); 120 deletePoll.setAllForumsPermission(true); 121 addAttachment.setAllForumsPermission(true); 122 getAttachment.setAllForumsPermission(true); 123 moderateThread.setAllForumsPermission(true); 124 125 setBypassPrivateForum(true); 126 127 addChannel = true; 129 editChannel = true; 130 deleteChannel = true; 131 132 writeContent.setAllChannelsPermission(true); 133 editContent.setAllChannelsPermission(true); 134 approveContent.setAllChannelsPermission(true); 135 publishContent.setAllChannelsPermission(true); 136 deleteContent.setAllChannelsPermission(true); 137 138 setBypassPrivateChannel(true); 139 break; 140 141 case PERMISSION_FORUM_ADMIN: 142 addForum = true; 143 editForum.setAllForumsPermission(true); 144 deleteForum.setAllForumsPermission(true); 145 assignToForum.setAllForumsPermission(true); 146 addCategory = true; 147 editCategory = true; 148 deleteCategory = true; 149 150 readPost.setAllForumsPermission(true); 151 addThread.setAllForumsPermission(true); 152 addPost.setAllForumsPermission(true); 153 editPost.setAllForumsPermission(true); 154 editOwnPost.setAllForumsPermission(true); 155 deletePost.setAllForumsPermission(true); 156 addPoll.setAllForumsPermission(true); 157 editPoll.setAllForumsPermission(true); 158 deletePoll.setAllForumsPermission(true); 159 addAttachment.setAllForumsPermission(true); 160 getAttachment.setAllForumsPermission(true); 161 moderateThread.setAllForumsPermission(true); 162 break; 163 164 case PERMISSION_FORUM_MODERATOR: 165 editForum.setAllForumsPermission(true); 166 editCategory = true; 167 168 readPost.setAllForumsPermission(true); 169 addThread.setAllForumsPermission(true); 170 addPost.setAllForumsPermission(true); 171 editPost.setAllForumsPermission(true); 172 editOwnPost.setAllForumsPermission(true); 173 deletePost.setAllForumsPermission(true); 174 addPoll.setAllForumsPermission(true); 175 editPoll.setAllForumsPermission(true); 176 deletePoll.setAllForumsPermission(true); 177 addAttachment.setAllForumsPermission(true); 178 getAttachment.setAllForumsPermission(true); 179 moderateThread.setAllForumsPermission(true); 180 break; 181 182 case PERMISSION_LIMITED_USER: 183 readPost.setAllForumsPermission(true); 184 185 break; 187 188 case PERMISSION_NORMAL_USER: 189 useAvatar = true; 190 useMessage = true; 191 192 readPost.setAllForumsPermission(true); 193 addThread.setAllForumsPermission(true); 194 addPost.setAllForumsPermission(true); 195 getAttachment.setAllForumsPermission(true); 196 break; 197 198 204 case PERMISSION_POWER_USER: 205 useAvatar = true; 206 useMessage = true; 207 addMessageAttachment = true; 208 209 readPost.setAllForumsPermission(true); 210 addThread.setAllForumsPermission(true); 211 addPost.setAllForumsPermission(true); 212 addPoll.setAllForumsPermission(true); 213 addAttachment.setAllForumsPermission(true); 214 getAttachment.setAllForumsPermission(true); 215 break; 216 217 220 case PERMISSION_LOGIN: 221 login = true; 222 break; 223 case PERMISSION_ADD_FORUM: 227 addForum = true; 228 break; 229 case PERMISSION_ADD_CATEGORY: 230 addCategory = true; 231 break; 232 case PERMISSION_EDIT_CATEGORY: 233 editCategory = true; 234 break; 235 case PERMISSION_DELETE_CATEGORY: 236 deleteCategory = true; 237 break; 238 case PERMISSION_SEND_MAIL: 239 sendMail = true; 240 break; 241 case PERMISSION_BYPASS_PRIVATE_FORUM: 242 setBypassPrivateForum(true); 243 break; 244 case PERMISSION_USE_MESSAGE: 245 useMessage = true; 246 break; 247 case PERMISSION_ADD_MESSAGE_ATTACHMENT: 248 addMessageAttachment = true; 249 break; 250 case PERMISSION_USE_AVATAR: 251 useAvatar = true; 252 break; 253 254 258 case PERMISSION_EDIT_FORUM: 259 editForum.setAllForumsPermission(true); 260 break; 261 case PERMISSION_DELETE_FORUM: 262 deleteForum.setAllForumsPermission(true); 263 break; 264 case PERMISSION_ASSIGN_TO_FORUM: 265 assignToForum.setAllForumsPermission(true); 266 break; 267 case PERMISSION_READ_POST: 268 readPost.setAllForumsPermission(true); 269 break; 270 case PERMISSION_ADD_THREAD: 271 addThread.setAllForumsPermission(true); 272 break; 273 case PERMISSION_ADD_POST: 274 addPost.setAllForumsPermission(true); 275 break; 276 case PERMISSION_EDIT_POST: 277 editPost.setAllForumsPermission(true); 278 break; 279 case PERMISSION_EDIT_OWN_POST: 280 editOwnPost.setAllForumsPermission(true); 281 break; 282 case PERMISSION_DELETE_POST: 283 deletePost.setAllForumsPermission(true); 284 break; 285 case PERMISSION_ADD_POLL: 286 addPoll.setAllForumsPermission(true); 287 break; 288 case PERMISSION_EDIT_POLL: 289 editPoll.setAllForumsPermission(true); 290 break; 291 case PERMISSION_DELETE_POLL: 292 deletePoll.setAllForumsPermission(true); 293 break; 294 case PERMISSION_ADD_ATTACHMENT: 295 addAttachment.setAllForumsPermission(true); 296 break; 297 case PERMISSION_GET_ATTACHMENT: 298 getAttachment.setAllForumsPermission(true); 299 break; 300 case PERMISSION_MODERATE_THREAD: 301 moderateThread.setAllForumsPermission(true); 302 break; 303 304 307 case PERMISSION_CMS_ADD_CHANNEL: 308 addChannel = true; 309 break; 310 case PERMISSION_CMS_EDIT_CHANNEL: 311 editChannel = true; 312 break; 313 case PERMISSION_CMS_DELETE_CHANNEL: 314 deleteChannel = true; 315 break; 316 320 case PERMISSION_CMS_WRITE_CONTENT: 321 writeContent.setAllChannelsPermission(true); 322 break; 323 case PERMISSION_CMS_EDIT_CONTENT: 324 editContent.setAllChannelsPermission(true); 325 break; 326 case PERMISSION_CMS_APPROVE_CONTENT: 327 approveContent.setAllChannelsPermission(true); 328 break; 329 case PERMISSION_CMS_PUBLISH_CONTENT: 330 publishContent.setAllChannelsPermission(true); 331 break; 332 case PERMISSION_CMS_DELETE_CONTENT: 333 deleteContent.setAllChannelsPermission(true); 334 break; 335 336 339 340 default: 341 throw new AssertionException("Currently in setPermission do not support permission = " + permission); 342 } } 345 348 void setPermissionInForum(int forumID, int permission) throws AssertionException { 349 switch (permission) { 350 354 case PERMISSION_FORUM_ADMIN: 355 editForum.setForumPermission(forumID, true); 356 deleteForum.setForumPermission(forumID, true); 357 assignToForum.setForumPermission(forumID, true); 358 359 readPost.setForumPermission(forumID, true); 360 addThread.setForumPermission(forumID, true); 361 addPost.setForumPermission(forumID, true); 362 editPost.setForumPermission(forumID, true); 363 editOwnPost.setForumPermission(forumID, true); 364 deletePost.setForumPermission(forumID, true); 365 addPoll.setForumPermission(forumID, true); 366 editPoll.setForumPermission(forumID, true); 367 deletePoll.setForumPermission(forumID, true); 368 addAttachment.setForumPermission(forumID, true); 369 getAttachment.setForumPermission(forumID, true); 370 moderateThread.setForumPermission(forumID, true); 371 break; 372 373 case PERMISSION_FORUM_MODERATOR: 374 editForum.setForumPermission(forumID, true); 375 376 readPost.setForumPermission(forumID, true); 377 addThread.setForumPermission(forumID, true); 378 addPost.setForumPermission(forumID, true); 379 editPost.setForumPermission(forumID, true); 380 editOwnPost.setForumPermission(forumID, true); 381 deletePost.setForumPermission(forumID, true); 382 addPoll.setForumPermission(forumID, true); 383 editPoll.setForumPermission(forumID, true); 384 deletePoll.setForumPermission(forumID, true); 385 addAttachment.setForumPermission(forumID, true); 386 getAttachment.setForumPermission(forumID, true); 387 moderateThread.setForumPermission(forumID, true); 388 break; 389 390 case PERMISSION_LIMITED_USER: 391 readPost.setForumPermission(forumID, true); 392 393 break; 395 396 case PERMISSION_NORMAL_USER: 397 readPost.setForumPermission(forumID, true); 398 addThread.setForumPermission(forumID, true); 399 addPost.setForumPermission(forumID, true); 400 getAttachment.setForumPermission(forumID, true); 401 break; 402 403 409 case PERMISSION_POWER_USER: 410 readPost.setForumPermission(forumID, true); 411 addThread.setForumPermission(forumID, true); 412 addPost.setForumPermission(forumID, true); 413 addPoll.setForumPermission(forumID, true); 414 addAttachment.setForumPermission(forumID, true); 415 getAttachment.setForumPermission(forumID, true); 416 break; 417 418 422 case PERMISSION_EDIT_FORUM: 423 editForum.setForumPermission(forumID, true); 424 break; 425 case PERMISSION_DELETE_FORUM: 426 deleteForum.setForumPermission(forumID, true); 427 break; 428 case PERMISSION_ASSIGN_TO_FORUM: 429 assignToForum.setForumPermission(forumID, true); 430 break; 431 case PERMISSION_READ_POST: 432 readPost.setForumPermission(forumID, true); 433 break; 434 case PERMISSION_ADD_THREAD: 435 addThread.setForumPermission(forumID, true); 436 break; 437 case PERMISSION_ADD_POST: 438 addPost.setForumPermission(forumID, true); 439 break; 440 case PERMISSION_EDIT_POST: 441 editPost.setForumPermission(forumID, true); 442 break; 443 case PERMISSION_EDIT_OWN_POST: 444 editOwnPost.setForumPermission(forumID, true); 445 break; 446 case PERMISSION_DELETE_POST: 447 deletePost.setForumPermission(forumID, true); 448 break; 449 case PERMISSION_ADD_POLL: 450 addPoll.setForumPermission(forumID, true); 451 break; 452 case PERMISSION_EDIT_POLL: 453 editPoll.setForumPermission(forumID, true); 454 break; 455 case PERMISSION_DELETE_POLL: 456 deletePoll.setForumPermission(forumID, true); 457 break; 458 case PERMISSION_ADD_ATTACHMENT: 459 addAttachment.setForumPermission(forumID, true); 460 break; 461 case PERMISSION_GET_ATTACHMENT: 462 getAttachment.setForumPermission(forumID, true); 463 break; 464 case PERMISSION_MODERATE_THREAD: 465 moderateThread.setForumPermission(forumID, true); 466 break; 467 468 469 472 473 default: 474 throw new AssertionException("Currently in setPermissionInForum do not support permission = " + permission); 475 } } 478 } 479 | Popular Tags |