1 27 31 package org.jresearch.gossip.am.constants; 32 33 import java.util.ArrayList ; 34 35 import org.jresearch.gossip.am.values.PermissionObject; 36 import org.jresearch.gossip.am.values.PermissionOperation; 37 import org.jresearch.gossip.am.values.PermissionPoint; 38 import org.jresearch.gossip.constants.UserStatus; 39 40 44 public class Permissions { 45 46 private ArrayList ADM_PERMISSIONS = new ArrayList (); 47 48 private ArrayList JRADM_PERMISSIONS = new ArrayList (); 49 50 private ArrayList MAINMOD_PERMISSIONS = new ArrayList (); 51 52 private ArrayList MOD_PERMISSIONS = new ArrayList (); 53 54 private ArrayList GUEST_PERMISSIONS = new ArrayList (); 55 56 private ArrayList USER_PERMISSIONS = new ArrayList (); 57 58 private static Permissions instance; 59 60 private static Object lock = new Object (); 61 62 65 public static Permissions getInstance() { 66 if (instance == null) { 67 synchronized (lock) { 68 if (instance == null) { 69 instance = new Permissions(); 70 } 71 } 72 } 73 return instance; 74 } 75 76 private Permissions() { 77 ADM_PERMISSIONS.add(PermissionPoint.ALL_PERMISSIONS); 78 79 JRADM_PERMISSIONS.add(PermissionPoint.ADM_FORUM); 80 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 81 PermissionObject.SYSTEM), new PermissionOperation( 82 PermissionOperation.READ))); 83 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 84 PermissionObject.USER), new PermissionOperation( 85 PermissionOperation.READ))); 86 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 87 PermissionObject.USER), new PermissionOperation( 88 PermissionOperation.CHANGE_STATUS))); 89 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 90 PermissionObject.USER), new PermissionOperation( 91 PermissionOperation.UPDATE))); 92 JRADM_PERMISSIONS.add(PermissionPoint.ADM_TOPIC); 93 JRADM_PERMISSIONS.add(PermissionPoint.ADM_MESSAGE); 94 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 95 PermissionObject.FORUM), new PermissionOperation( 96 PermissionOperation.READ))); 97 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 98 PermissionObject.ATTACH), PermissionOperation.ALL_OPERATIONS)); 99 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 100 PermissionObject.FORUM), new PermissionOperation( 101 PermissionOperation.Forum.MOVE_TOPIC))); 102 JRADM_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 103 PermissionObject.FORUM), new PermissionOperation( 104 PermissionOperation.Forum.SUBSCRIBE))); 105 106 MAINMOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 107 PermissionObject.FORUM), new PermissionOperation( 108 PermissionOperation.READ))); 109 MAINMOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 110 PermissionObject.FORUM), new PermissionOperation( 111 PermissionOperation.Forum.SUBSCRIBE))); 112 MAINMOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 113 PermissionObject.ATTACH), PermissionOperation.ALL_OPERATIONS)); 114 MAINMOD_PERMISSIONS.add(PermissionPoint.ADM_TOPIC); 115 MAINMOD_PERMISSIONS.add(PermissionPoint.ADM_MESSAGE); 116 MAINMOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 117 PermissionObject.USER), new PermissionOperation( 118 PermissionOperation.READ))); 119 MAINMOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 120 PermissionObject.USER), new PermissionOperation( 121 PermissionOperation.UPDATE))); 122 123 GUEST_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 124 PermissionObject.FORUM), new PermissionOperation( 125 PermissionOperation.Forum.SUBSCRIBE))); 126 GUEST_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 127 PermissionObject.FORUM), new PermissionOperation( 128 PermissionOperation.READ))); 129 GUEST_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 130 PermissionObject.MESSAGE), new PermissionOperation( 131 PermissionOperation.ADD))); 132 133 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 134 PermissionObject.FORUM), new PermissionOperation( 135 PermissionOperation.Forum.SUBSCRIBE))); 136 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 137 PermissionObject.FORUM), new PermissionOperation( 138 PermissionOperation.READ))); 139 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 140 PermissionObject.ATTACH), new PermissionOperation( 141 PermissionOperation.ADD))); 142 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 143 PermissionObject.ATTACH), new PermissionOperation( 144 PermissionOperation.READ))); 145 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 146 PermissionObject.ATTACH), new PermissionOperation( 147 PermissionOperation.UPDATE))); 148 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 149 PermissionObject.TOPIC), new PermissionOperation( 150 PermissionOperation.ADD))); 151 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 152 PermissionObject.MESSAGE), new PermissionOperation( 153 PermissionOperation.ADD))); 154 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 155 PermissionObject.MESSAGE), new PermissionOperation( 156 PermissionOperation.UPDATE))); 157 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 158 PermissionObject.USER), new PermissionOperation( 159 PermissionOperation.READ))); 160 USER_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 161 PermissionObject.USER), new PermissionOperation( 162 PermissionOperation.UPDATE))); 163 164 MOD_PERMISSIONS.addAll(USER_PERMISSIONS); 165 MOD_PERMISSIONS.add(new PermissionPoint(new PermissionObject( 166 PermissionObject.ATTACH), PermissionOperation.ALL_OPERATIONS)); 167 MOD_PERMISSIONS.add(PermissionPoint.ADM_TOPIC); 168 MOD_PERMISSIONS.add(PermissionPoint.ADM_MESSAGE); 169 170 } 171 172 176 public ArrayList getPermissions(int roleId) { 177 switch (roleId) { 178 case UserStatus.GUEST: 179 return GUEST_PERMISSIONS; 180 case UserStatus.USER: 181 return USER_PERMISSIONS; 182 case UserStatus.ADM: 183 return ADM_PERMISSIONS; 184 case UserStatus.JRADM: 185 return JRADM_PERMISSIONS; 186 case UserStatus.MAINMOD: 187 return MAINMOD_PERMISSIONS; 188 case UserStatus.MOD: 189 return MOD_PERMISSIONS; 190 } 191 return new ArrayList (); 192 } 193 194 } | Popular Tags |