Public Member Functions | |
| ilRbacReview () | |
| Constructor public. | |
| roleExists ($a_title, $a_id=0) | |
| Checks if a role already exists. | |
| getParentRoles ($a_path, $a_templates=false) | |
| Get parent roles in a path. | |
| getParentRoleIds ($a_endnode_id, $a_templates=false) | |
| get an array of parent role ids of all parent roles, if last parameter is set true you get also all parent templates private | |
| getRoleListByObject ($a_ref_id, $a_templates=false) | |
| Returns a list of roles in an container public. | |
| getAssignableRoles ($a_templates=false, $a_internal_roles=false) | |
| Returns a list of all assignable roles public. | |
| getAssignableChildRoles ($a_ref_id) | |
| Get all assignable roles under a specific node public. | |
| setTemplateFilter ($a_templates) | |
| get roles and templates or only roles; returns string for where clause private | |
| setRoleType ($a_role_list) | |
| computes role type in role list array: global: roles in ROLE_FOLDER_ID local: assignable roles in other role folders linked: roles with stoppped inheritance template: role templates | |
| assignedUsers ($a_rol_id, $a_fields=NULL) | |
| get all assigned users to a given role public | |
| isAssigned ($a_usr_id, $a_role_id) | |
| check if a specific user is assigned to specific role public | |
| assignedRoles ($a_usr_id) | |
| get all assigned roles to a given user public | |
| isAssignable ($a_rol_id, $a_ref_id) | |
| Check if its possible to assign users public. | |
| getFoldersAssignedToRole ($a_rol_id, $a_assignable=false) | |
| returns an array of role folder ids assigned to a role. | |
| getRolesOfRoleFolder ($a_ref_id, $a_nonassignable=true) | |
| get all roles of a role folder including linked local roles that are created due to stopped inheritance returns an array with role ids public | |
| getGlobalRoles () | |
| get only 'global' roles public | |
| getGlobalRolesArray () | |
| get only 'global' roles public | |
| getGlobalAssignableRoles () | |
| get only 'global' roles (with flag 'assign_users') public | |
| getAllRoleFolderIds () | |
| get all role folder ids public | |
| getRoleFolderOfObject ($a_ref_id) | |
| returns the data of a role folder assigned to an object public | |
| getOperationsOfRole ($a_rol_id, $a_type, $a_parent=0) | |
| get all possible operations of a specific role The ref_id of the role folder (parent object) is necessary to distinguish local roles public | |
| getRoleOperationsOnObject ($a_role_id, $a_ref_id) | |
| getOperationsOnType ($a_typ_id) | |
| all possible operations of a type public | |
| getObjectsWithStopedInheritance ($a_rol_id) | |
| get all objects in which the inheritance of role with role_id was stopped the function returns all reference ids of objects containing a role folder. | |
| isDeleted ($a_node_id) | |
| checks if a rolefolder is set as deleted (negative tree_id) public | |
| getRolesByFilter ($a_filter=0, $a_user_id=0) | |
| getTypeId ($a_type) | |
| _getOperationIdsByName ($operations) | |
| get ops_id's by name. | |
| getLinkedRolesOfRoleFolder ($a_ref_id) | |
| get all linked local roles of a role folder that are created due to stopped inheritance returns an array with role ids public | |
Data Fields | |
| $log = null | |
Definition at line 38 of file class.ilRbacReview.php.
| ilRbacReview::_getOperationIdsByName | ( | $ | operations | ) |
get ops_id's by name.
Example usage: $rbacadmin->grantPermission($roles,ilRbacReview::_getOperationIdsByName('visible','read'),$ref_id);
public
| array | string name of operation. see rbac_operations |
Definition at line 878 of file class.ilRbacReview.php.
References $query, $res, and $row.
Referenced by ilObjChat::initDefaultRoles().
{
global $ilDB;
if(!count($operations))
{
return array();
}
$where = "WHERE operation IN ('";
$where .= implode("','",$operations);
$where .= "')";
$query = "SELECT ops_id FROM rbac_operations ".$where;
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$ops_ids[] = $row->ops_id;
}
return $ops_ids ? $ops_ids : array();
}
Here is the caller graph for this function:| ilRbacReview::assignedRoles | ( | $ | a_usr_id | ) |
get all assigned roles to a given user public
| integer | usr_id |
Definition at line 406 of file class.ilRbacReview.php.
Referenced by getRolesByFilter().
{
if (!isset($a_usr_id))
{
$message = get_class($this)."::assignedRoles(): No user_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$role_arr = array();
$q = "SELECT rol_id FROM rbac_ua WHERE usr_id = '".$a_usr_id."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$role_arr[] = $row->rol_id;
}
if (!count($role_arr))
{
$message = get_class($this)."::assignedRoles(): No assigned roles found or user does not exist!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
return $role_arr;
}
Here is the caller graph for this function:| ilRbacReview::assignedUsers | ( | $ | a_rol_id, | |
| $ | a_fields = NULL | |||
| ) |
get all assigned users to a given role public
| integer | role_id | |
| array | columns to get form usr_data table (optional) |
Definition at line 334 of file class.ilRbacReview.php.
References $ilBench, $q, and $row.
Referenced by isAssigned().
{
global $ilBench;
$ilBench->start("RBAC", "review_assignedUsers");
if (!isset($a_rol_id))
{
$message = get_class($this)."::assignedUsers(): No role_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$result_arr = array();
if ($a_fields !== NULL and is_array($a_fields))
{
if (count($a_fields) == 0)
{
$select = "*";
}
else
{
if (($usr_id_field = array_search("usr_id",$a_fields)) !== false)
unset($a_fields[$usr_id_field]);
$select = implode(",",$a_fields).",usr_data.usr_id";
}
$q = "SELECT ".$select." FROM usr_data ".
"LEFT JOIN rbac_ua ON usr_data.usr_id=rbac_ua.usr_id ".
"WHERE rbac_ua.rol_id='".$a_rol_id."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_ASSOC))
{
$result_arr[] = $row;
}
}
else
{
$q = "SELECT usr_id FROM rbac_ua WHERE rol_id='".$a_rol_id."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_ASSOC))
{
array_push($result_arr,$row["usr_id"]);
}
}
$ilBench->stop("RBAC", "review_assignedUsers");
return $result_arr;
}
Here is the caller graph for this function:| ilRbacReview::getAllRoleFolderIds | ( | ) |
get all role folder ids public
Definition at line 596 of file class.ilRbacReview.php.
Referenced by getParentRoles().
{
$parent = array();
$q = "SELECT DISTINCT parent FROM rbac_fa";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$parent[] = $row->parent;
}
return $parent;
}
Here is the caller graph for this function:| ilRbacReview::getAssignableChildRoles | ( | $ | a_ref_id | ) |
Get all assignable roles under a specific node public.
| ref_id |
Definition at line 247 of file class.ilRbacReview.php.
References $tree, and getAssignableRoles().
{
global $tree;
$roles_data = $this->getAssignableRoles();
// Filter childs of node
foreach($roles_data as $role)
{
if($tree->isGrandChild($a_ref_id,$role['parent']))
{
$filtered[] = $role;
}
}
return $filtered ? $filtered : array();
}
Here is the call graph for this function:| ilRbacReview::getAssignableRoles | ( | $ | a_templates = false, |
|
| $ | a_internal_roles = false | |||
| ) |
Returns a list of all assignable roles public.
| boolean | if true fetch template roles too |
Definition at line 218 of file class.ilRbacReview.php.
References $q, $row, fetchObjectData(), setRoleType(), and setTemplateFilter().
Referenced by getAssignableChildRoles(), and getRolesByFilter().
{
$role_list = array();
$where = $this->setTemplateFilter($a_templates);
$q = "SELECT DISTINCT * FROM object_data ".
"JOIN rbac_fa ".$where.
"AND object_data.obj_id = rbac_fa.rol_id ".
"AND rbac_fa.assign = 'y'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
//ifd $row->title
$role_list[] = fetchObjectData($row);
}
$role_list = $this->setRoleType($role_list);
return $role_list;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilRbacReview::getFoldersAssignedToRole | ( | $ | a_rol_id, | |
| $ | a_assignable = false | |||
| ) |
returns an array of role folder ids assigned to a role.
A role with stopped inheritance may be assigned to more than one rolefolder. To get only the original location of a role, set the second parameter to true
public
| integer | role id | |
| boolean | get only rolefolders where role is assignable (true) |
Definition at line 481 of file class.ilRbacReview.php.
Referenced by getObjectsWithStopedInheritance().
{
if (!isset($a_rol_id))
{
$message = get_class($this)."::getFoldersAssignedToRole(): No role_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
if ($a_assignable)
{
$where = " AND assign ='y'";
}
$q = "SELECT DISTINCT parent FROM rbac_fa ".
"WHERE rol_id = '".$a_rol_id."'".$where;
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$folders[] = $row->parent;
}
return $folders ? $folders : array();
}
Here is the caller graph for this function:| ilRbacReview::getGlobalAssignableRoles | ( | ) |
get only 'global' roles (with flag 'assign_users') public
Definition at line 576 of file class.ilRbacReview.php.
References $role_id, ilObjRole::_getAssignUsersStatus(), and getGlobalRoles().
{
include_once './classes/class.ilObjRole.php';
foreach($this->getGlobalRoles() as $role_id)
{
if(ilObjRole::_getAssignUsersStatus($role_id))
{
$ga[] = array('obj_id' => $role_id,
'role_type' => 'global');
}
}
return $ga ? $ga : array();
}
Here is the call graph for this function:| ilRbacReview::getGlobalRoles | ( | ) |
get only 'global' roles public
Definition at line 551 of file class.ilRbacReview.php.
References getRolesOfRoleFolder().
Referenced by getGlobalAssignableRoles(), and getRolesByFilter().
{
return $this->getRolesOfRoleFolder(ROLE_FOLDER_ID,false);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilRbacReview::getGlobalRolesArray | ( | ) |
get only 'global' roles public
Definition at line 561 of file class.ilRbacReview.php.
References $role_id, and getRolesOfRoleFolder().
{
foreach($this->getRolesOfRoleFolder(ROLE_FOLDER_ID,false) as $role_id)
{
$ga[] = array('obj_id' => $role_id,
'role_type' => 'global');
}
return $ga ? $ga : array();
}
Here is the call graph for this function:| ilRbacReview::getLinkedRolesOfRoleFolder | ( | $ | a_ref_id | ) |
get all linked local roles of a role folder that are created due to stopped inheritance returns an array with role ids public
| integer | ref_id of object | |
| boolean | if false only get true local roles |
Definition at line 907 of file class.ilRbacReview.php.
{
if (!isset($a_ref_id))
{
$message = get_class($this)."::getRolesOfRoleFolder(): No ref_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$and = " AND assign='n'";
$q = "SELECT rol_id FROM rbac_fa ".
"WHERE parent = '".$a_ref_id."'".
$and;
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$rol_id[] = $row->rol_id;
}
return $rol_id ? $rol_id : array();
}
| ilRbacReview::getObjectsWithStopedInheritance | ( | $ | a_rol_id | ) |
get all objects in which the inheritance of role with role_id was stopped the function returns all reference ids of objects containing a role folder.
public
| integer | role_id |
Definition at line 725 of file class.ilRbacReview.php.
References $tree, and getFoldersAssignedToRole().
{
$tree = new ilTree(ROOT_FOLDER_ID);
if (!isset($a_rol_id))
{
$message = get_class($this)."::getObjectsWithStopedInheritance(): No role_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$all_rolf_ids = $this->getFoldersAssignedToRole($a_rol_id,false);
foreach ($all_rolf_ids as $rolf_id)
{
$parent[] = $tree->getParentId($rolf_id);
}
return $parent ? $parent : array();
}
Here is the call graph for this function:| ilRbacReview::getOperationsOfRole | ( | $ | a_rol_id, | |
| $ | a_type, | |||
| $ | a_parent = 0 | |||
| ) |
get all possible operations of a specific role The ref_id of the role folder (parent object) is necessary to distinguish local roles public
| integer | role_id | |
| string | object type | |
| integer | role folder id |
Definition at line 645 of file class.ilRbacReview.php.
{
if (!isset($a_rol_id) or !isset($a_type))
{
$message = get_class($this)."::getOperationsOfRole(): Missing Parameter!".
"role_id: ".$a_rol_id.
"type: ".$a_type.
"parent_id: ".$a_parent;
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$ops_arr = array();
// if no rolefolder id is given, assume global role folder as target
if ($a_parent == 0)
{
$a_parent = ROLE_FOLDER_ID;
}
$q = "SELECT ops_id FROM rbac_templates ".
"WHERE type ='".$a_type."' ".
"AND rol_id = '".$a_rol_id."' ".
"AND parent = '".$a_parent."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$ops_arr[] = $row->ops_id;
}
return $ops_arr;
}
| ilRbacReview::getOperationsOnType | ( | $ | a_typ_id | ) |
all possible operations of a type public
| integer | object_ID of type |
Definition at line 699 of file class.ilRbacReview.php.
References $ops_id, $q, and $row.
{
if (!isset($a_typ_id))
{
$message = get_class($this)."::getOperationsOnType(): No type_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$q = "SELECT * FROM rbac_ta WHERE typ_id = '".$a_typ_id."'";
$r = $this->ilDB->query($q);
while($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$ops_id[] = $row->ops_id;
}
return $ops_id ? $ops_id : array();
}
| ilRbacReview::getParentRoleIds | ( | $ | a_endnode_id, | |
| $ | a_templates = false | |||
| ) |
get an array of parent role ids of all parent roles, if last parameter is set true you get also all parent templates private
| integer | ref_id of an object which is end node | |
| boolean | true for role templates (default: false) |
Definition at line 157 of file class.ilRbacReview.php.
References $tree, and getParentRoles().
{
global $tree;
if (!isset($a_endnode_id))
{
$message = get_class($this)."::getParentRoleIds(): No node_id (ref_id) given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$pathIds = $tree->getPathId($a_endnode_id);
// add system folder since it may not in the path
$pathIds[0] = SYSTEM_FOLDER_ID;
return $this->getParentRoles($pathIds,$a_templates);
}
Here is the call graph for this function:| ilRbacReview::getParentRoles | ( | $ | a_path, | |
| $ | a_templates = false | |||
| ) |
Get parent roles in a path.
If last parameter is set 'true' it delivers also all templates in the path public
| array | array with path_ids | |
| boolean | true for role templates (default: false) |
Definition at line 107 of file class.ilRbacReview.php.
References $id, $path, $q, $roles, $row, getAllRoleFolderIds(), and getRoleListByObject().
Referenced by getParentRoleIds().
{
if (!isset($a_path) or !is_array($a_path))
{
$message = get_class($this)."::getParentRoles(): No path given or wrong datatype!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$parentRoles = array();
$child = $this->getAllRoleFolderIds();
// CREATE IN() STATEMENT
$in = " IN('";
$in .= implode("','",$child);
$in .= "') ";
foreach ($a_path as $path)
{
//TODO: move this to tree class !!!!
$q = "SELECT * FROM tree ".
"WHERE child ".$in.
"AND parent = '".$path."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$roles = $this->getRoleListByObject($row->child,$a_templates);
foreach ($roles as $role)
{
$id = $role["obj_id"];
// TODO: need a parent here?
$role["parent"] = $row->child;
$parentRoles[$id] = $role;
}
}
}
return $parentRoles;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilRbacReview::getRoleFolderOfObject | ( | $ | a_ref_id | ) |
returns the data of a role folder assigned to an object public
| integer | ref_id of object with a rolefolder object under it |
Definition at line 617 of file class.ilRbacReview.php.
References $ilBench, and $tree.
{
global $tree,$ilBench;
$ilBench->start("RBAC", "review_getRoleFolderOfObject");
if (!isset($a_ref_id))
{
$message = get_class($this)."::getRoleFolderOfObject(): No ref_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$childs = $tree->getChildsByType($a_ref_id,"rolf");
$ilBench->stop("RBAC", "review_getRoleFolderOfObject");
return $childs[0] ? $childs[0] : array();
}
| ilRbacReview::getRoleListByObject | ( | $ | a_ref_id, | |
| $ | a_templates = false | |||
| ) |
Returns a list of roles in an container public.
| integer | ref_id | |
| boolean | if true fetch template roles too |
Definition at line 182 of file class.ilRbacReview.php.
References $q, $row, fetchObjectData(), setRoleType(), and setTemplateFilter().
Referenced by getParentRoles().
{
if (!isset($a_ref_id) or !isset($a_templates))
{
$message = get_class($this)."::getRoleListByObject(): Missing parameter!".
"ref_id: ".$a_ref_id.
"tpl_flag: ".$a_templates;
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$role_list = array();
$where = $this->setTemplateFilter($a_templates);
$q = "SELECT * FROM object_data ".
"JOIN rbac_fa ".$where.
"AND object_data.obj_id = rbac_fa.rol_id ".
"AND rbac_fa.parent = '".$a_ref_id."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$role_list[] = fetchObjectData($row);
}
$role_list = $this->setRoleType($role_list);
return $role_list;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilRbacReview::getRoleOperationsOnObject | ( | $ | a_role_id, | |
| $ | a_ref_id | |||
| ) |
Definition at line 678 of file class.ilRbacReview.php.
| ilRbacReview::getRolesByFilter | ( | $ | a_filter = 0, |
|
| $ | a_user_id = 0 | |||
| ) |
Definition at line 777 of file class.ilRbacReview.php.
References $q, $roles, $row, assignedRoles(), fetchObjectData(), getAssignableRoles(), getGlobalRoles(), and setRoleType().
{
$assign = "y";
switch($a_filter)
{
// all (assignable) roles
case 1:
return $this->getAssignableRoles();
break;
// all (assignable) global roles
case 2:
$where = "WHERE rbac_fa.rol_id IN ";
$where .= '(';
$where .= implode(',',$this->getGlobalRoles());
$where .= ')';
break;
// all (assignable) local roles
case 3:
case 4:
case 5:
$where = "WHERE rbac_fa.rol_id NOT IN ";
$where .= '(';
$where .= implode(',',$this->getGlobalRoles());
$where .= ')';
break;
// all role templates
case 6:
$where = "WHERE object_data.type = 'rolt'";
$assign = "n";
break;
// only assigned roles, handled by ilObjUserGUI::roleassignmentObject()
case 0:
default:
if (!$a_user_id) return array();
$where = "WHERE rbac_fa.rol_id IN ";
$where .= '(';
$where .= implode(',',$this->assignedRoles($a_user_id));
$where .= ')';
break;
}
$roles = array();
$q = "SELECT DISTINCT * FROM object_data ".
"JOIN rbac_fa ".$where.
"AND object_data.obj_id = rbac_fa.rol_id ".
"AND rbac_fa.assign = '".$assign."'";
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$prefix = (substr($row->title,0,3) == "il_") ? true : false;
// all (assignable) internal local roles only
if ($a_filter == 4 and !$prefix)
{
continue;
}
// all (assignable) non internal local roles only
if ($a_filter == 5 and $prefix)
{
continue;
}
$roles[] = fetchObjectData($row);
}
$roles = $this->setRoleType($roles);
return $roles ? $roles : array();
}
Here is the call graph for this function:| ilRbacReview::getRolesOfRoleFolder | ( | $ | a_ref_id, | |
| $ | a_nonassignable = true | |||
| ) |
get all roles of a role folder including linked local roles that are created due to stopped inheritance returns an array with role ids public
| integer | ref_id of object | |
| boolean | if false only get true local roles |
Definition at line 514 of file class.ilRbacReview.php.
References $ilBench, $q, and $row.
Referenced by getGlobalRoles(), and getGlobalRolesArray().
{
global $ilBench;
$ilBench->start("RBAC", "review_getRolesOfRoleFolder");
if (!isset($a_ref_id))
{
$message = get_class($this)."::getRolesOfRoleFolder(): No ref_id given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
if ($a_nonassignable === false)
{
$and = " AND assign='y'";
}
$q = "SELECT rol_id FROM rbac_fa ".
"WHERE parent = '".$a_ref_id."'".
$and;
$r = $this->ilDB->query($q);
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$rol_id[] = $row->rol_id;
}
$ilBench->stop("RBAC", "review_getRolesOfRoleFolder");
return $rol_id ? $rol_id : array();
}
Here is the caller graph for this function:| ilRbacReview::getTypeId | ( | $ | a_type | ) |
| ilRbacReview::ilRbacReview | ( | ) |
Constructor public.
Definition at line 46 of file class.ilRbacReview.php.
References $ilErr, $ilias, $ilLog, and if.
{
global $ilDB,$ilErr,$ilias,$ilLog;
$this->log =& $ilLog;
// set db & error handler
(isset($ilDB)) ? $this->ilDB =& $ilDB : $this->ilDB =& $ilias->db;
if (!isset($ilErr))
{
$ilErr = new ilErrorHandling();
$ilErr->setErrorHandling(PEAR_ERROR_CALLBACK,array($ilErr,'errorHandler'));
}
else
{
$this->ilErr =& $ilErr;
}
}
| ilRbacReview::isAssignable | ( | $ | a_rol_id, | |
| $ | a_ref_id | |||
| ) |
Check if its possible to assign users public.
| integer | object id of role | |
| integer | ref_id of object in question |
Definition at line 440 of file class.ilRbacReview.php.
References $ilBench, $q, and $row.
{
global $ilBench;
$ilBench->start("RBAC", "review_isAssignable");
// exclude system role from rbac
if ($a_rol_id == SYSTEM_ROLE_ID)
{
$ilBench->stop("RBAC", "review_isAssignable");
return true;
}
if (!isset($a_rol_id) or !isset($a_ref_id))
{
$message = get_class($this)."::isAssignable(): Missing parameter!".
" role_id: ".$a_rol_id." ,ref_id: ".$a_ref_id;
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$q = "SELECT * FROM rbac_fa ".
"WHERE rol_id = '".$a_rol_id."' ".
"AND parent = '".$a_ref_id."'";
$row = $this->ilDB->getRow($q);
$ilBench->stop("RBAC", "review_isAssignable");
return $row->assign == 'y' ? true : false;
}
| ilRbacReview::isAssigned | ( | $ | a_usr_id, | |
| $ | a_role_id | |||
| ) |
check if a specific user is assigned to specific role public
| integer | usr_id | |
| integer | role_id |
Definition at line 395 of file class.ilRbacReview.php.
References assignedUsers().
{
return in_array($a_usr_id,$this->assignedUsers($a_role_id));
}
Here is the call graph for this function:| ilRbacReview::isDeleted | ( | $ | a_node_id | ) |
checks if a rolefolder is set as deleted (negative tree_id) public
| integer | ref_id of rolefolder |
Definition at line 751 of file class.ilRbacReview.php.
{
$q = "SELECT tree FROM tree WHERE child ='".$a_node_id."'";
$r = $this->ilDB->query($q);
$row = $r->fetchRow(DB_FETCHMODE_OBJECT);
if (!$row)
{
$message = sprintf('%s::isDeleted(): Role folder with ref_id %s not found!',
get_class($this),
$a_node_id);
$this->log->write($message,$this->log->FATAL);
return true;
}
// rolefolder is deleted
if ($row->tree < 0)
{
return true;
}
return false;
}
| ilRbacReview::roleExists | ( | $ | a_title, | |
| $ | a_id = 0 | |||
| ) |
Checks if a role already exists.
Role title should be unique public
| string | role title | |
| integer | obj_id of role to exclude in the check. Commonly this is the current role you want to edit |
Definition at line 73 of file class.ilRbacReview.php.
References $q.
{
if (empty($a_title))
{
$message = get_class($this)."::roleExists(): No title given!";
$this->ilErr->raiseError($message,$this->ilErr->WARNING);
}
$clause = ($a_id) ? " AND obj_id != '".$a_id."'" : "";
$q = "SELECT DISTINCT obj_id FROM object_data ".
"WHERE title ='".addslashes($a_title)."' ".
"AND type IN('role','rolt')".
$clause;
$r = $this->ilDB->query($q);
if ($r->numRows() == 1)
{
return true;
}
else
{
return false;
}
}
| ilRbacReview::setRoleType | ( | $ | a_role_list | ) |
computes role type in role list array: global: roles in ROLE_FOLDER_ID local: assignable roles in other role folders linked: roles with stoppped inheritance template: role templates
private
| array | role list |
Definition at line 295 of file class.ilRbacReview.php.
Referenced by getAssignableRoles(), getRoleListByObject(), and getRolesByFilter().
{
foreach ($a_role_list as $key => $val)
{
// determine role type
if ($val["type"] == "rolt")
{
$a_role_list[$key]["role_type"] = "template";
}
else
{
if ($val["assign"] == "y")
{
if ($val["parent"] == ROLE_FOLDER_ID)
{
$a_role_list[$key]["role_type"] = "global";
}
else
{
$a_role_list[$key]["role_type"] = "local";
}
}
else
{
$a_role_list[$key]["role_type"] = "linked";
}
}
}
return $a_role_list;
}
Here is the caller graph for this function:| ilRbacReview::setTemplateFilter | ( | $ | a_templates | ) |
get roles and templates or only roles; returns string for where clause private
| boolean | true: with templates |
Definition at line 270 of file class.ilRbacReview.php.
Referenced by getAssignableRoles(), and getRoleListByObject().
{
if ($a_templates === true)
{
$where = "WHERE object_data.type IN ('role','rolt') ";
}
else
{
$where = "WHERE object_data.type = 'role' ";
}
return $where;
}
Here is the caller graph for this function:| ilRbacReview::$log = null |
Definition at line 40 of file class.ilRbacReview.php.
1.7.1