Gentics Portal.Node PHP API
 All Classes Namespaces Functions Variables Pages
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
RPermissionDataProvider Class Reference

Public Member Functions

 __construct ($id, $config=array())
 init ()
 getRoles ()

Public Attributes

 $displayParentType = false

Protected Member Functions

 setRoles ()
 setItems ()
 setPermissions ()
 setParents ()
 generateData ()
 fetchData ()
 fetchKeys ()
 calculateTotalItemCount ()

Detailed Description

Rights permission data provider class file.

Author
Christoffer Niska cnisk.nosp@m.a@li.nosp@m.ve.co.nosp@m.m
Since
0.9.11

Definition at line 9 of file RPermissionDataProvider.php.

Constructor & Destructor Documentation

RPermissionDataProvider::__construct (   $id,
  $config = array() 
)

Constructs the data provider.

Parameters
string$idthe data provider identifier.
array$configconfiguration (name=>value) to be applied as the initial property values of this class.
Returns

Definition at line 31 of file RPermissionDataProvider.php.

References init().

{
$this->setId($id);
foreach ($config as $key => $value) {
$this->$key = $value;
}
$this->init();
}

Member Function Documentation

RPermissionDataProvider::calculateTotalItemCount ( )
protected

Calculates the total number of data items.

Returns
integer the total number of data items.

Definition at line 199 of file RPermissionDataProvider.php.

{
return count($this->getData());
}
RPermissionDataProvider::fetchData ( )
protected

Fetches the data from the persistent data storage.

Returns
array list of data items

Definition at line 174 of file RPermissionDataProvider.php.

{
return $this->getData();
}
RPermissionDataProvider::fetchKeys ( )
protected

Fetches the data item keys from the persistent data storage.

Returns
array list of data item keys.

Definition at line 184 of file RPermissionDataProvider.php.

{
$keys = array();
foreach ($this->getData() as $key => $value) {
$keys[] = $key;
}
return $keys;
}
RPermissionDataProvider::generateData ( )
protected

Generates the data for the data provider.

Returns
void

Definition at line 136 of file RPermissionDataProvider.php.

Referenced by init().

{
$data = array();
$permissions = $this->_permissions;
$parents = $this->_parents;
foreach ($this->_items as $itemName => $item) {
$row = array();
$row['description'] = $item->getNameLink();
foreach ($this->_roles as $roleName => $role) {
// Item is directly assigned to the role
if ($permissions[$roleName][$itemName]===Rights::PERM_DIRECT) {
$permissionColumn = $item->getRevokePermissionLink($role);
// Item is inherited by the role from one of its children
} else if ($permissions[$roleName][$itemName]===Rights::PERM_INHERITED && isset($parents[$roleName][$itemName])===true) {
$permissionColumn = $item->getInheritedPermissionText($parents[$roleName][$itemName], $this->displayParentType);
// Item is not assigned to the role
} else {
$permissionColumn = $item->getAssignPermissionLink($role);
}
// Populate role column
$row[strtolower($roleName)] = isset($permissionColumn)===true ? $permissionColumn : '';
}
// Append the row to data
$data[] = $row;
}
$this->setData($data);
}
RPermissionDataProvider::getRoles ( )

gets roles

Returns
array the roles.

Definition at line 74 of file RPermissionDataProvider.php.

{
return $this->_roles;
}
RPermissionDataProvider::init ( )

Initializes the data provider.

Returns
void

Definition at line 47 of file RPermissionDataProvider.php.

References generateData(), Rights\getAuthorizer(), setItems(), setParents(), setPermissions(), and setRoles().

Referenced by __construct().

{
$this->_authorizer = Rights::getAuthorizer();
// Set properties and generate the data
$this->setRoles();
$this->setItems();
$this->setPermissions();
$this->setParents();
$this->generateData();
}
RPermissionDataProvider::setItems ( )
protected

Sets the items property.

Returns
void

Definition at line 84 of file RPermissionDataProvider.php.

Referenced by init().

{
$type = array(CAuthItem::TYPE_OPERATION, CAuthItem::TYPE_TASK);
$this->_items = $this->_authorizer->getAuthItems($type);
}
RPermissionDataProvider::setParents ( )
protected

Sets the parents property.

Returns
void

Definition at line 116 of file RPermissionDataProvider.php.

Referenced by init().

{
$parents = array();
foreach ($this->_permissions as $roleName => $rolePermissions) {
foreach ($rolePermissions as $itemName => $permission) {
if ($permission===Rights::PERM_INHERITED) {
$parents[$roleName][$itemName] = $this->_authorizer->getAuthItemParents($itemName, null, $roleName, true);
}
}
}
// Set the parents property
$this->_parents = $parents;
}
RPermissionDataProvider::setPermissions ( )
protected

Sets the permissions property.

Returns
void

Definition at line 95 of file RPermissionDataProvider.php.

Referenced by init().

{
$allPermissions = $this->_authorizer->getPermissions();
$permissions = array();
foreach ($this->_roles as $roleName => $role) {
$permissions[$roleName] = array();
foreach ($this->_items as $itemName => $item) {
$permissions[$roleName][$itemName] = $this->_authorizer->hasPermission($itemName, null, $allPermissions[$roleName]);
}
}
// Set the permission property
$this->_permissions = $permissions;
}
RPermissionDataProvider::setRoles ( )
protected

Sets the roles property.

Returns
void

Definition at line 64 of file RPermissionDataProvider.php.

Referenced by init().

{
$this->_roles = $this->_authorizer->getRoles(false);
}

The documentation for this class was generated from the following file: