# Role Concept

## Implementing Access Rules

| Privileges to which a role has been assigned may only be executed by users who perform the corresponding role within the Agile e6 system (all other privileges are available to all users). In many cases, the execution privilege also depends on other criteria such as the membership of the current user with a specific organizational unit or a project in progress. In order for those criteria to be verified, access rules have been introduced that check specific criteria such as the user's access privileges. All access rules are implemented with LogiView. This macro languages facilitates quick and easy preparation of rules in the form of decision tables or procedures. LogiView procedures (or decision tables - which work analogous and therefore are not discussed separately in the following text) are called by way of the lgv_nosel_run userexit in the Access rule field of the Privilege form. The logic model and the procedure name parameters must be separated by a slash ("/"). When creating a similar LogiView procedure, you may need some mgr_manrmation about the system state. This holds true especially for the definition of the actual task but also with regard to the current record (if the task is to be executed via a selected record). Please note that execution privileges for specific tasks can be assigned to individual users via their respective job functions. Restrictions with regard to the project or organizational unit can be defined for each individual job function. The following LogiView system variables can be defined to this end:
System Variable | Explanations
EP_ROL_PRO | Comma separated list of all projects which are restricted to the involved job functions.
EP_ROL_ORG | Comma separated list of all organizational units which are restricted to the involved job functions.
EP_ROL_TSK | Name of the current privilege
Additional, the actual keyword is available for access of the current record (if a record is currently selected in the corresponding when a task is executed). As usual, the LogiView functions user() and group() can be used as well. They provide mgr_manrmation regarding the current user and the currently active group.