Class: I2CE PermissionParser: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 1: Line 1:
This article desrcibes the class '''I2CE_PermissionParser''' which extends the class [[Class: I2CE_Fuzzy | I2CE_Fuzzy]]
This article desrcibes the class '''I2CE_PermissionParser'''.
*Extends the class: [[Class: I2CE_Fuzzy | I2CE_Fuzzy]].
It is contained in the module [[iHRIS Module List#pages|pages]] in the package [https://launchpad.net/i2ce I2CE]
It is contained in the module [[iHRIS Module List#pages|pages]] in the package [https://launchpad.net/i2ce I2CE]


Line 30: Line 31:
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)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] (an empty array if there is no such tag name)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] (an empty array if there is no such tag name)
Parameters:
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $name<br/>the role shortname
* [http://www.php.net/manual/en/language.types.string.php string ] $name<br/>the role shortname
===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)
*Returns: [http://www.php.net/manual/en/language.types.array.php array] (an empty array if there is no such tag name)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] (an empty array if there is no such tag name)
Parameters:
Parameters:
*$task  
*$task  
Line 72: Line 73:
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
===hasPermission_role()===
===hasPermission_role()===

Revision as of 21:27, 16 October 2009

This article desrcibes the class I2CE_PermissionParser.

It is contained in the module pages in the package I2CE

The class is 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)
  • Returns: array (an empty array if there is no such tag name)

Parameters:

getTaskTrickleDown()

Returns the role trickle up from the shortname @param string $name the role shortname

  • Signature: protected function getTaskTrickleDown($task)
  • Returns: array (an empty array if there is no such tag name)

Parameters:

  • $task

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)
  • Returns: mixed. True/false, or null on failure.

Parameters:

  • $permission
  • DOMNode $node
    The node to get on set data from.
    • Default Value: null

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()