Class: I2CE PermissionParser: Difference between revisions
No edit summary |
No edit summary |
||
Line 19: | Line 19: | ||
===__construct()=== | ===__construct()=== | ||
*Signature: public function __construct($template,$user) | *Signature: public function __construct($template,$user) | ||
Parameters: | *Parameters: | ||
*$template | *$template | ||
*$user | *$user | ||
===evaluateBooleans()=== | ===evaluateBooleans()=== | ||
*Signature: protected function evaluateBooleans($booleans) | *Signature: protected function evaluateBooleans($booleans) | ||
Parameters: | *Parameters: | ||
*$booleans | *$booleans | ||
===getRoleTrickleUp()=== | ===getRoleTrickleUp()=== | ||
Returns the role trickle up from the shortname | Returns the role trickle up from the shortname | ||
*Signature: protected function getRoleTrickleUp($name) | *Signature: protected function getRoleTrickleUp($name) | ||
* | *Parameters: | ||
** [http://www.php.net/manual/en/language.types.string.php string ] $name <br/>the role shortname | |||
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>(an empty array if there is no such tag name) | |||
===getTaskTrickleDown()=== | ===getTaskTrickleDown()=== | ||
Returns the role trickle up from the shortname | Returns the role trickle up from the shortname @param string $name the role shortname | ||
@param string $name the role shortname | |||
*Signature: protected function getTaskTrickleDown($task) | *Signature: protected function getTaskTrickleDown($task) | ||
* | *Parameters: | ||
Parameters: | |||
*$task | *$task | ||
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>(an empty array if there is no such tag name) | |||
===hasPermission()=== | ===hasPermission()=== | ||
Check to see if a user has permission for a given role/task whatever | Check to see if a user has permission for a given role/task whatever @param string $permissions The permisisions string. Example: "role(admin) or task(can_view_page) or task(can_edit_page)" Exmaple: "role(admin|staff)" is the same as "role(admin,staff)" which is the same as "role(admin) role(staff)" which is the same as "role(admin) | role(staff)" which is the same as "role(admin) or role(staff)" Example: "role(admin) or task(can_view_page) and role(staff)" is the same as "(role(admin) or task(can_view_page)) and role(staff)" i.e. parenthesis are grouped left. Note: You may reference variables, which is really template data, as a function argument or in a double quoted string. When referencing varaibles, you are allowed to include types, such as ${T1}z, but you are not allowed to do so in a doulbe quoted string. Variable names may consit of alpha-numeric character, '_', and '-'. You may protect a variable by surrounding it in {}'s Example: "func1($a,"x$a", '\' "' "x{$a}y" , "x{$ay} ${T1}z )" causes the (possbily fuzzy) method hasPermission_func1() with the following arguments: array( $this->template->getDisplayData('a',$node), 'x' . $this->template->getDisplayData('a',$node), '\' "', 'x' . $this->template->getDisplayData('ay',$node) , 'x' . $this->template->getDisplayData('a',$node) . 'y', 'x' . $this->template->getData('T1',z,$node,true,true)) There are special argument you can pass to the function which are <TEMPLATE>, <USER> and <NODE> which will be the template, user and calling node associated with this permission. Note: spaces provide an implicit comma to split arguments. Example functions: role, task which take a list or roles and task repsectively. Example function: form('person' method <USER>) -- finds the person form,relative to $node and calls $form->method(array($user)) Example function: form(person , 'weird method;',<USER>10) -- finds the person form,relative to $node and calls $form->$method(array($user,10)) where $method='weird method;' Example function: module('mod_name',method,arg1,...,argn) works like form but for modules | ||
@param string $permissions The permisisions string. | |||
Example: "role(admin) or task(can_view_page) or task(can_edit_page)" | |||
Exmaple: "role(admin|staff)" is the same as "role(admin,staff)" which is the same as "role(admin) role(staff)" | |||
which is the same as "role(admin) | role(staff)" which is the same as "role(admin) or role(staff)" | |||
Example: "role(admin) or task(can_view_page) and role(staff)" is the same as | |||
"(role(admin) or task(can_view_page)) and role(staff)" i.e. parenthesis are grouped left. | |||
Note: You may reference variables, which is really template data, as a function argument or in a double quoted string. | |||
When referencing varaibles, you are allowed to include types, such as ${T1}z, but you are not allowed to | |||
do so in a doulbe quoted string. Variable names may consit of alpha-numeric character, '_', and '-'. | |||
You may protect a variable by surrounding it in {}'s | |||
Example: "func1($a,"x$a", '\' "' "x{$a}y" , "x{$ay} ${T1}z )" causes the (possbily fuzzy) method | |||
hasPermission_func1() with the following arguments: | |||
array( $this->template->getDisplayData('a',$node), | |||
'x' . $this->template->getDisplayData('a',$node), | |||
'\' "', | |||
'x' . $this->template->getDisplayData('ay',$node) , | |||
'x' . $this->template->getDisplayData('a',$node) . 'y', | |||
'x' . $this->template->getData('T1',z,$node,true,true)) | |||
There are special argument you can pass to the function which are <TEMPLATE>, <USER> and <NODE> which will be | |||
the template, user and calling node associated with this permission. | |||
Note: spaces provide an implicit comma to split arguments. | |||
Example functions: role, task which take a list or roles and task repsectively. | |||
Example function: form('person' method <USER>) -- finds the person form,relative to $node and calls $form->method(array($user)) | |||
Example function: form(person , 'weird method;',<USER>10) -- finds the person form,relative to $node and calls $form->$method(array($user,10)) | |||
where $method='weird method;' | |||
Example function: module('mod_name',method,arg1,...,argn) works like form but for modules | |||
*Signature: public function hasPermission($permission,$node) | *Signature: public function hasPermission($permission,$node) | ||
* | *Parameters: | ||
Parameters: | |||
*$permission | *$permission | ||
* [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node<br/>The node to get on set data from. | ** [http://www.php.net/manual/en/class.domnode.php DOMNode ] $node <br/>The node to get on set data from. | ||
**Default Value: null | ***Default Value: null | ||
*Returns: mixed.<br/>True/false, or null on failure. | |||
===hasPermission_role()=== | ===hasPermission_role()=== | ||
*Signature: protected function hasPermission_role($node,$roles) | *Signature: protected function hasPermission_role($node,$roles) | ||
Parameters: | *Parameters: | ||
*$node | *$node | ||
*$roles | *$roles | ||
===hasPermission_task()=== | ===hasPermission_task()=== | ||
*Signature: protected function hasPermission_task($node,$tasks) | *Signature: protected function hasPermission_task($node,$tasks) | ||
Parameters: | *Parameters: | ||
*$node | *$node | ||
*$tasks | *$tasks | ||
===hasPermsssion_module()=== | ===hasPermsssion_module()=== | ||
*Signature: protected function hasPermsssion_module($node,$args) | *Signature: protected function hasPermsssion_module($node,$args) | ||
Parameters: | *Parameters: | ||
*$node | *$node | ||
*$args | *$args | ||
===hasRole()=== | ===hasRole()=== | ||
*Signature: public function hasRole($role,$node) | *Signature: public function hasRole($role,$node) | ||
Parameters: | *Parameters: | ||
*$role | *$role | ||
*$node | *$node | ||
**Default Value: null | ***Default Value: null | ||
===hasTask()=== | ===hasTask()=== | ||
*Signature: public function hasTask($task,$node) | *Signature: public function hasTask($task,$node) | ||
Parameters: | *Parameters: | ||
*$task | *$task | ||
*$node | *$node | ||
**Default Value: null | ***Default Value: null | ||
===parsePermissionsLogic()=== | ===parsePermissionsLogic()=== | ||
*Signature: protected function parsePermissionsLogic($permission,$node) | *Signature: protected function parsePermissionsLogic($permission,$node) | ||
Parameters: | *Parameters: | ||
*&$permission | **&$permission | ||
*$node | *$node | ||
==Inherited Fuzzy Methods== | ==Inherited Fuzzy Methods== |
Revision as of 22:42, 16 October 2009
This article desrcibes the class I2CE_PermissionParser.
- Extends the class: I2CE_Fuzzy.
- Location: Part of the module pages in the package I2CE
- Source: Defined in the file modules/Pages/lib/I2CE_PermissionParser.php
Variables
$user
- Type: protected $user
$template
- Type: protected $template
$has_get_data
- Type: protected $has_get_data
$has_get_display
- Type: protected $has_get_display
Methods
__construct()
- Signature: public function __construct($template,$user)
- Parameters:
- $template
- $user
evaluateBooleans()
- Signature: protected function evaluateBooleans($booleans)
- Parameters:
- $booleans
getRoleTrickleUp()
Returns the role trickle up from the shortname
- Signature: protected function getRoleTrickleUp($name)
- Parameters:
- string $name
the role shortname
- string $name
- Returns: array
(an empty array if there is no such tag name)
getTaskTrickleDown()
Returns the role trickle up from the shortname @param string $name the role shortname
- Signature: protected function getTaskTrickleDown($task)
- Parameters:
- $task
- Returns: array
(an empty array if there is no such tag name)
hasPermission()
Check to see if a user has permission for a given role/task whatever @param string $permissions The permisisions string. Example: "role(admin) or task(can_view_page) or task(can_edit_page)" Exmaple: "role(admin|staff)" is the same as "role(admin,staff)" which is the same as "role(admin) role(staff)" which is the same as "role(admin) | role(staff)" which is the same as "role(admin) or role(staff)" Example: "role(admin) or task(can_view_page) and role(staff)" is the same as "(role(admin) or task(can_view_page)) and role(staff)" i.e. parenthesis are grouped left. Note: You may reference variables, which is really template data, as a function argument or in a double quoted string. When referencing varaibles, you are allowed to include types, such as ${T1}z, but you are not allowed to do so in a doulbe quoted string. Variable names may consit of alpha-numeric character, '_', and '-'. You may protect a variable by surrounding it in {}'s Example: "func1($a,"x$a", '\' "' "x{$a}y" , "x{$ay} ${T1}z )" causes the (possbily fuzzy) method hasPermission_func1() with the following arguments: array( $this->template->getDisplayData('a',$node), 'x' . $this->template->getDisplayData('a',$node), '\' "', 'x' . $this->template->getDisplayData('ay',$node) , 'x' . $this->template->getDisplayData('a',$node) . 'y', 'x' . $this->template->getData('T1',z,$node,true,true)) There are special argument you can pass to the function which are <TEMPLATE>, <USER> and <NODE> which will be the template, user and calling node associated with this permission. Note: spaces provide an implicit comma to split arguments. Example functions: role, task which take a list or roles and task repsectively. Example function: form('person' method <USER>) -- finds the person form,relative to $node and calls $form->method(array($user)) Example function: form(person , 'weird method;',<USER>10) -- finds the person form,relative to $node and calls $form->$method(array($user,10)) where $method='weird method;' Example function: module('mod_name',method,arg1,...,argn) works like form but for modules
- Signature: public function hasPermission($permission,$node)
- Parameters:
- $permission
- DOMNode $node
The node to get on set data from.- Default Value: null
- DOMNode $node
- Returns: mixed.
True/false, or null on failure.
hasPermission_role()
- Signature: protected function hasPermission_role($node,$roles)
- Parameters:
- $node
- $roles
hasPermission_task()
- Signature: protected function hasPermission_task($node,$tasks)
- Parameters:
- $node
- $tasks
hasPermsssion_module()
- Signature: protected function hasPermsssion_module($node,$args)
- Parameters:
- $node
- $args
hasRole()
- Signature: public function hasRole($role,$node)
- Parameters:
- $role
- $node
- Default Value: null
hasTask()
- Signature: public function hasTask($task,$node)
- Parameters:
- $task
- $node
- Default Value: null
parsePermissionsLogic()
- Signature: protected function parsePermissionsLogic($permission,$node)
- Parameters:
- &$permission
- $node
Inherited Fuzzy Methods
userMessage()
This method is inherited from I2CE_Fuzzy->userMessage()
Fuzzy Methods
hasPermission_form()
This method is implemented by I2CE_Module_Forms->hasPermission_form()