package e4s.tutorial; import e4s.application.E4PermissionRegistry; import e4s.db.systabledef.*; import e4s.html.*; import e4s.servlet.E4ModuleImplementation; /** * Show how to define, register and deal with permissions. They also can be combined. * * {@tutorial Example_Permission} */ public class Example_Permission extends E4ModuleImplementation { public static E4Method start = null; private final static E4Permission PERMISSION_VIEW_DATA = E4Permission.getInstance("TUTORIAL.VIEW.DATA"); private final static E4Permission PERMISSION_EDIT_DATA = E4Permission.getInstance("TUTORIAL.EDIT.DATA"); private final static E4Permission PERMISSION_DELETE_DATA = E4Permission.getInstance("TUTORIAL.DELETE.DATA"); static { // first, once register the permission to make them editable in the permission dialog E4PermissionRegistry.addPermission(PERMISSION_DELETE_DATA,"delete something"); E4PermissionRegistry.addPermission(PERMISSION_EDIT_DATA,"edit something"); E4PermissionRegistry.addPermission(PERMISSION_VIEW_DATA,"view something"); } public void start( HTML html ) { if (canDo(PERMISSION_VIEW_DATA)) html.print("This user may view data"); else html.print("This user may NOT view data"); html.BR(); html.B().I().print("(Note: the following exception is expected here)"); E4PermissionAnd permission_modify = new E4PermissionAnd(PERMISSION_EDIT_DATA,PERMISSION_DELETE_DATA); E4PermissionOr permission_do_anything = new E4PermissionOr(permission_modify,PERMISSION_VIEW_DATA); try { if (! canDo(permission_do_anything)) throw new E4PermissionException(permission_do_anything); } catch( E4PermissionException pe) { // show the error html.SystemError(pe); } } }