1 package de.webman.acl; 2 3 import com.teamkonzept.lib.TKException; 4 import com.teamkonzept.lib.TKVector; 5 import de.webman.acl.db.PolicyDBData; 6 7 15 public class Policy 16 extends WMObject 17 { 18 19 21 23 26 public static final Integer ROLE_ID = new Integer (0); 27 28 31 public static final Integer USER_ID = new Integer (1); 32 33 36 public static final Integer POLICY_ID = new Integer (2); 37 38 41 public static final Integer ATTRIBUTE_ID = new Integer (3); 42 43 46 public static final Integer CLASS_REGISTRY_ID = new Integer (4); 47 48 51 public static final Integer CONTENT_TREE_ID = new Integer (5); 52 53 56 public static final Integer FORM_ID = new Integer (6); 57 58 61 public static final Integer PRESENTATION_ID = new Integer (7); 62 63 66 public static final Integer PROPERTY_ID = new Integer (8); 67 68 71 public static final Integer PROPERTY_GROUP_ID = new Integer (9); 72 73 76 public static final Integer SITE_TREE_ID = new Integer (10); 77 78 81 public static final Integer TEMPLATE_ID = new Integer (11); 82 83 86 public static final Integer TEXT_ATTRIBUTE_ID = new Integer (12); 87 88 89 91 94 private boolean access = false; 95 96 99 private Integer login = null; 100 101 104 private Integer role = null; 105 106 109 private Integer context = null; 110 111 114 private Integer reference = null; 115 116 119 private Integer type = null; 120 121 122 124 129 protected Policy (PolicyDBData data) 130 { 131 super(data); 132 133 this.access = data.isAllowed(); 134 this.login = data.getLogin(); 135 this.role = data.getRole(); 136 this.context = data.getContext(); 137 this.reference = data.getObjectReference(); 138 this.type = data.getObjectType(); 139 } 140 141 142 144 150 public final ObjectFactory getFactory () 151 throws TKException 152 { 153 return PolicyFactory.getInstance(); 154 } 155 156 163 public final boolean isAllowed () 164 { 165 return access; 166 } 167 168 175 public final boolean isDenied () 176 { 177 return ! access; 178 } 179 180 184 public final void allow () 185 { 186 super.modifyAttribute(this.access ? Boolean.TRUE : Boolean.FALSE, Boolean.TRUE); 187 this.access = true; 188 } 189 190 194 public final void deny () 195 { 196 super.modifyAttribute(this.access ? Boolean.TRUE : Boolean.FALSE, Boolean.FALSE); 197 this.access = false; 198 } 199 200 205 public final Integer getLoginID () 206 { 207 return login; 208 } 209 210 216 public final Login getLogin () 217 throws TKException 218 { 219 return login != null 220 ? (Login) LoginFactory.getInstance().getObject(login) 221 : null; 222 } 223 224 229 public final void setLogin (Login login) 230 { 231 Integer id = login != null 232 ? login.getID() 233 : null; 234 235 super.modifyAttribute(this.login, id); 236 this.login = id; 237 } 238 239 244 public final Integer getRoleID () 245 { 246 return role; 247 } 248 249 255 public final Role getRole () 256 throws TKException 257 { 258 return role != null 259 ? (Role) RoleFactory.getInstance().getObject(role) 260 : null; 261 } 262 263 268 public final void setRole (Role role) 269 { 270 Integer id = role != null 271 ? role.getID() 272 : null; 273 274 super.modifyAttribute(this.role, id); 275 this.role = id; 276 } 277 278 283 public final Integer getContextID () 284 { 285 return context; 286 } 287 288 294 public final Context getContext () 295 throws TKException 296 { 297 return context != null 298 ? (Context) ContextFactory.getInstance().getObject(context) 299 : null; 300 } 301 302 307 public final void setContext (Context context) 308 { 309 Integer id = context != null 310 ? context.getID() 311 : null; 312 313 super.modifyAttribute(this.context, id); 314 this.context = id; 315 } 316 317 322 public final Integer getObjectReference () 323 { 324 return this.reference; 325 } 326 327 332 public final Integer getObjectType () 333 { 334 return this.type; 335 } 336 337 343 public final TKVector getEvents () 344 throws TKException 345 { 346 return EventFactory.getInstance() 347 .getObjects(EventFactory.getInstance() 348 .getEventProxies(this.getID())); 349 } 350 351 352 354 357 public final void setWholeContextControl () 358 { 359 setObjectControl(null, null); 360 } 361 362 367 public final void setAttributeControl (Integer reference) 368 { 369 setObjectControl(reference, ATTRIBUTE_ID); 370 } 371 372 377 public final void setClassRegistryControl (Integer reference) 378 { 379 setObjectControl(reference, CLASS_REGISTRY_ID); 380 } 381 382 387 public final void setContentTreeControl (Integer reference) 388 { 389 setObjectControl(reference, CONTENT_TREE_ID); 390 } 391 392 397 public final void setFormControl (Integer reference) 398 { 399 setObjectControl(reference, FORM_ID); 400 } 401 402 407 public final void setPolicyControl (Integer reference) 408 { 409 setObjectControl(reference, POLICY_ID); 410 } 411 412 417 public final void setPresentationControl (Integer reference) 418 { 419 setObjectControl(reference, PRESENTATION_ID); 420 } 421 422 427 public final void setPropertyControl (Integer reference) 428 { 429 setObjectControl(reference, PROPERTY_ID); 430 } 431 432 437 public final void setPropertyGroupControl (Integer reference) 438 { 439 setObjectControl(reference, PROPERTY_GROUP_ID); 440 } 441 442 447 public final void setRoleControl (Integer reference) 448 { 449 setObjectControl(reference, ROLE_ID); 450 } 451 452 457 public final void setSiteTreeControl (Integer reference) 458 { 459 setObjectControl(reference, SITE_TREE_ID); 460 } 461 462 467 public final void setTemplateControl (Integer reference) 468 { 469 setObjectControl(reference, TEMPLATE_ID); 470 } 471 472 477 public final void setTextAttributeControl (Integer reference) 478 { 479 setObjectControl(reference, TEXT_ATTRIBUTE_ID); 480 } 481 482 487 public final void setUserControl (Integer reference) 488 { 489 setObjectControl(reference, USER_ID); 490 } 491 492 498 private final void setObjectControl (Integer reference, Integer type) 499 { 500 super.modifyAttribute(this.reference, reference); 501 this.reference = reference; 502 503 super.modifyAttribute(this.type, type); 504 this.type = type; 505 } 506 507 516 public static final boolean isAtomic (Integer type) 517 { 518 return ! Policy.isGeneric(type); 519 } 520 521 530 public static final boolean isGeneric (Integer type) 531 { 532 return Policy.CONTENT_TREE_ID.equals(type) || 533 Policy.SITE_TREE_ID.equals(type); 534 } 535 536 } 537 | Popular Tags |