Inheritance diagram for ilObjRole:
Collaboration diagram for ilObjRole:Public Member Functions | |
| ilObjRole ($a_id=0, $a_call_by_reference=false) | |
| Constructor public. | |
| toggleAssignUsersStatus ($a_assign_users) | |
| getAssignUsersStatus () | |
| _getAssignUsersStatus ($a_role_id) | |
| read () | |
| loads "role" from database private | |
| assignData ($a_data) | |
| loads a record "role" from array public | |
| update () | |
| updates a record "role" and write it into database public | |
| create () | |
| create | |
| setAllowRegister ($a_allow_register) | |
| set allow_register of role | |
| getAllowRegister () | |
| get allow_register | |
| _lookupRegisterAllowed () | |
| get all roles that are activated in user registration | |
| _lookupAllowRegister ($a_role_id) | |
| check whether role is allowed in user registration or not | |
| setParent ($a_parent_ref) | |
| set reference id of parent object this is neccessary for non RBAC protected objects!!! | |
| getParent () | |
| get reference id of parent object | |
| ilClone ($a_parent_ref) | |
| copy all properties and subobjects of a role. | |
| delete () | |
| delete role and all related data | |
| getCountMembers () | |
| _updateSessionRoles ($a_selected_users) | |
| _getTranslation ($a_role_title) | |
| _updateAuthMode ($a_roles) | |
| _getAuthMode ($a_role_id) | |
Static Public Member Functions | |
| _search (&$a_search_obj) | |
| STATIC METHOD search for role data. | |
Data Fields | |
| $parent | |
| $allow_register | |
| $assign_users | |
Definition at line 37 of file class.ilObjRole.php.
| ilObjRole::_getAssignUsersStatus | ( | $ | a_role_id | ) |
Definition at line 72 of file class.ilObjRole.php.
References $query, $res, and $row.
Referenced by ilObjUserGUI::createObject(), ilRbacReview::getGlobalAssignableRoles(), ilObjUserFolderGUI::importUserRoleAssignmentObject(), and ilObjUserFolderGUI::importUsersObject().
{
global $ilDB;
$query = "SELECT assign_users FROM role_data WHERE role_id = '".$a_role_id."'";
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
return $row->assign_users ? true : false;
}
return false;
}
Here is the caller graph for this function:| ilObjRole::_getAuthMode | ( | $ | a_role_id | ) |
Definition at line 482 of file class.ilObjRole.php.
Referenced by saveForm().
{
global $ilDB;
$q = "SELECT auth_mode FROM role_data ".
"WHERE role_id='".$a_role_id."'";
$r = $ilDB->query($q);
$row = $r->fetchRow();
return $row[0];
}
Here is the caller graph for this function:| ilObjRole::_getTranslation | ( | $ | a_role_title | ) |
Definition at line 449 of file class.ilObjRole.php.
References ilObject::$lng.
Referenced by ilObjRoleGUI::editObject(), ilObjectStatusGUI::getAssignedValidRoles(), ilObjGroup::getLocalGroupRoles(), ilObjiLincCourse::getLocalRoles(), ilObjiLincCourse::getMemberRolesTitle(), ilObjGroup::getMemberRolesTitle(), ilObjectStatusGUI::getRoleAssignmentInfo(), ilObjRoleTemplateGUI::permObject(), ilObjRoleGUI::permObject(), ilObjectGUI::permObject(), ilObjUserGUI::roleassignmentObject(), and ilObjRoleFolderGUI::viewObject().
{
global $lng;
$test_str = explode('_',$a_role_title);
if ($test_str[0] == 'il')
{
$test2 = (int) $test_str[3];
if ($test2 > 0)
{
unset($test_str[3]);
}
return $lng->txt(implode('_',$test_str));
}
return $a_role_title;
}
Here is the caller graph for this function:| ilObjRole::_lookupAllowRegister | ( | $ | a_role_id | ) |
check whether role is allowed in user registration or not
| int | $a_role_id role id |
Definition at line 223 of file class.ilObjRole.php.
References $q.
Referenced by saveForm().
{
global $ilDB;
$q = "SELECT * FROM role_data ".
" WHERE role_id =".$ilDB->quote($a_role_id);
$role_set = $ilDB->query($q);
if ($role_rec = $role_set->fetchRow(DB_FETCHMODE_ASSOC))
{
if ($role_rec["allow_register"])
{
return true;
}
}
return false;
}
Here is the caller graph for this function:| ilObjRole::_lookupRegisterAllowed | ( | ) |
get all roles that are activated in user registration
public
Definition at line 196 of file class.ilObjRole.php.
Referenced by displayForm(), and ilObjAuthSettingsGUI::viewObject().
{
global $ilDB;
$q = "SELECT * FROM role_data ".
"LEFT JOIN object_data ON object_data.obj_id = role_data.role_id ".
"WHERE allow_register = 1";
$r = $ilDB->query($q);
$roles = array();
while ($role = $r->fetchRow(DB_FETCHMODE_ASSOC))
{
$roles[] = array("id" => $role["obj_id"],
"title" => $role["title"],
"auth_mode" => $role['auth_mode']);
}
return $roles;
}
Here is the caller graph for this function:| ilObjRole::_search | ( | &$ | a_search_obj | ) | [static] |
STATIC METHOD search for role data.
This method is called from class.ilSearch This method used by class.ilSearchGUI.php to a link to the results
| object | object of search class public |
Definition at line 392 of file class.ilObjRole.php.
References $counter, $ilBench, $query, $res, and $row.
Referenced by ilSearch::performSearch().
{
global $ilBench;
// NO CLASS VARIABLES IN STATIC METHODS
$where_condition = $a_search_obj->getWhereCondition("like",array("title","description"));
//$in = $a_search_obj->getInStatement("ore.ref_id");
$query = "SELECT obj_id FROM object_data AS od ".
$where_condition." ".
"AND od.type = 'role' ";
$ilBench->start("Search", "ilObjRole_search");
$res = $a_search_obj->ilias->db->query($query);
$ilBench->stop("Search", "ilObjRole_search");
$counter = 0;
while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$result_data[$counter++]["id"] = $row->obj_id;
}
return $result_data ? $result_data : array();
}
Here is the caller graph for this function:| ilObjRole::_updateAuthMode | ( | $ | a_roles | ) |
Definition at line 469 of file class.ilObjRole.php.
Referenced by ilObjAuthSettingsGUI::updateAuthRolesObject().
{
global $ilDB;
foreach ($a_roles as $role_id => $auth_mode)
{
$q = "UPDATE role_data SET ".
"auth_mode='".$auth_mode."' ".
"WHERE role_id='".$role_id."'";
$ilDB->query($q);
}
}
Here is the caller graph for this function:| ilObjRole::_updateSessionRoles | ( | $ | a_selected_users | ) |
Definition at line 420 of file class.ilObjRole.php.
References $_SESSION, $q, $rbacreview, $roles, $user, and ilUtil::getUsersOnline().
Referenced by ilObjUserGUI::assignSaveObject().
{
global $ilDB, $rbacreview;
$online_users_all = ilUtil::getUsersOnline();
// users online to alter their role assignment
$affected_users = array_intersect(array_keys($online_users_all),$a_selected_users);
foreach ($affected_users as $user)
{
$role_arr = $rbacreview->assignedRoles($user);
// current user assigned himself?
if ($user == $_SESSION["AccountId"])
{
$_SESSION["RoleId"] = $role_arr;
}
else
{
$roles = "RoleId|".serialize($role_arr);
$modified_data = preg_replace("/RoleId.*?;\}/",$roles,$online_users_all[$user]["data"]);
$q = "UPDATE usr_session SET data='".$modified_data."' WHERE user_id = '".$user."'";
$ilDB->query($q);
}
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjRole::assignData | ( | $ | a_data | ) |
loads a record "role" from array public
| array | roledata |
Definition at line 115 of file class.ilObjRole.php.
References setAllowRegister(), ilObject::setDescription(), ilObject::setTitle(), ilUtil::stripSlashes(), and toggleAssignUsersStatus().
Referenced by read().
{
$this->setTitle(ilUtil::stripSlashes($a_data["title"]));
$this->setDescription(ilUtil::stripslashes($a_data["desc"]));
$this->setAllowRegister($a_data["allow_register"]);
$this->toggleAssignUsersStatus($a_data['assign_users']);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjRole::create | ( | ) |
create
public
Reimplemented from ilObject.
Definition at line 150 of file class.ilObjRole.php.
References $q, getAllowRegister(), and getAssignUsersStatus().
{
$this->id = parent::create();
$q = "INSERT INTO role_data ".
"(role_id,allow_register,assign_users) ".
"VALUES ".
"('".$this->id."','".$this->getAllowRegister()."','".$this->getAssignUsersStatus()."')";
$this->ilias->db->query($q);
return $this->id;
}
Here is the call graph for this function:| ilObjRole::delete | ( | ) |
delete role and all related data
public
Reimplemented from ilObject.
Definition at line 293 of file class.ilObjRole.php.
References $q, $rbacadmin, $rbacreview, $user_id, $users, ilObject::_exists(), ilObject::getId(), and getParent().
{
global $rbacadmin, $rbacreview;
$role_folders = $rbacreview->getFoldersAssignedToRole($this->getId());
if ($rbacreview->isAssignable($this->getId(),$this->getParent()))
{
// do not delete role if this role is the last role a user is assigned to
// first fetch all users assigned to role
$user_ids = $rbacreview->assignedUsers($this->getId());
$last_role_user_ids = array();
foreach ($user_ids as $user_id)
{
// get all roles each user has
$role_ids = $rbacreview->assignedRoles($user_id);
// is last role?
if (count($role_ids) == 1)
{
$last_role_user_ids[] = $user_id;
}
}
// users with last role found?
if (count($last_role_user_ids) > 0)
{
foreach ($last_role_user_ids as $user_id)
{
// GET OBJECT TITLE
$tmp_obj = $this->ilias->obj_factory->getInstanceByObjId($user_id);
$user_names[] = $tmp_obj->getFullname();
unset($tmp_obj);
}
// TODO: This check must be done in rolefolder object because if multiple
// roles were selected the other roles are still deleted and the system does not
// give any feedback about this.
$users = implode(', ',$user_names);
$this->ilias->raiseError($this->lng->txt("msg_user_last_role1")." ".
$users."<br/>".$this->lng->txt("msg_user_last_role2"),$this->ilias->error_obj->WARNING);
}
else
{
// IT'S A BASE ROLE
$rbacadmin->deleteRole($this->getId(),$this->getParent());
// delete object_data entry
parent::delete();
// delete role_data entry
$q = "DELETE FROM role_data WHERE role_id = '".$this->getId()."'";
$this->ilias->db->query($q);
include_once './classes/class.ilRoleDesktopItem.php';
$role_desk_item_obj =& new ilRoleDesktopItem($this->getId());
$role_desk_item_obj->deleteAll();
}
}
else
{
// linked local role: INHERITANCE WAS STOPPED, SO DELETE ONLY THIS LOCAL ROLE
$rbacadmin->deleteLocalRole($this->getId(),$this->getParent());
}
// purge empty rolefolders
foreach ($role_folders as $rolf)
{
if (ilObject::_exists($rolf,true))
{
$rolfObj = $this->ilias->obj_factory->getInstanceByRefId($rolf);
$rolfObj->purge();
unset($roleObj);
}
}
return true;
}
Here is the call graph for this function:| ilObjRole::getAllowRegister | ( | ) |
get allow_register
public
Definition at line 185 of file class.ilObjRole.php.
Referenced by create().
{
return $this->allow_register;
}
Here is the caller graph for this function:| ilObjRole::getAssignUsersStatus | ( | ) |
Definition at line 67 of file class.ilObjRole.php.
Referenced by create().
{
return $this->assign_users;
}
Here is the caller graph for this function:| ilObjRole::getCountMembers | ( | ) |
Definition at line 377 of file class.ilObjRole.php.
References $rbacreview.
{
global $rbacreview;
return count($rbacreview->assignedUsers($this->getId()));
}
| ilObjRole::getParent | ( | ) |
get reference id of parent object
public
Definition at line 260 of file class.ilObjRole.php.
Referenced by delete().
{
return $this->parent;
}
Here is the caller graph for this function:| ilObjRole::ilClone | ( | $ | a_parent_ref | ) |
copy all properties and subobjects of a role.
DISABLED public
Reimplemented from ilObject.
Definition at line 271 of file class.ilObjRole.php.
References $rbacadmin.
{
// DISABLED
return false;
global $rbacadmin;
// always call parent ilClone function first!!
$new_ref_id = parent::ilClone($a_parent_ref);
// put here role specific stuff
// ... and finally always return new reference ID!!
return $new_ref_id;
}
| ilObjRole::ilObjRole | ( | $ | a_id = 0, |
|
| $ | a_call_by_reference = false | |||
| ) |
Constructor public.
| integer | reference_id or object_id | |
| boolean | treat the id as reference_id (true) or object_id (false) |
Definition at line 57 of file class.ilObjRole.php.
References ilObject::ilObject().
{
$this->type = "role";
$this->ilObject($a_id,$a_call_by_reference);
}
Here is the call graph for this function:| ilObjRole::read | ( | ) |
loads "role" from database private
Definition at line 90 of file class.ilObjRole.php.
References $data, $q, and assignData().
Referenced by update().
{
$q = "SELECT * FROM role_data WHERE role_id='".$this->id."'";
$r = $this->ilias->db->query($q);
if ($r->numRows() > 0)
{
$data = $r->fetchRow(DB_FETCHMODE_ASSOC);
// fill member vars in one shot
$this->assignData($data);
}
else
{
$this->ilias->raiseError("<b>Error: There is no dataset with id ".$this->id."!</b><br />class: ".get_class($this)."<br />Script: ".__FILE__."<br />Line: ".__LINE__, $this->ilias->FATAL);
}
parent::read();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjRole::setAllowRegister | ( | $ | a_allow_register | ) |
set allow_register of role
public
| integer |
Definition at line 169 of file class.ilObjRole.php.
Referenced by assignData().
{
if (empty($a_allow_register))
{
$a_allow_register == 0;
}
$this->allow_register = (int) $a_allow_register;
}
Here is the caller graph for this function:| ilObjRole::setParent | ( | $ | a_parent_ref | ) |
set reference id of parent object this is neccessary for non RBAC protected objects!!!
public
| integer | ref_id of parent object |
Definition at line 249 of file class.ilObjRole.php.
{
$this->parent = $a_parent_ref;
}
| ilObjRole::toggleAssignUsersStatus | ( | $ | a_assign_users | ) |
Definition at line 63 of file class.ilObjRole.php.
Referenced by assignData().
{
$this->assign_users = (int) $a_assign_users;
}
Here is the caller graph for this function:| ilObjRole::update | ( | ) |
updates a record "role" and write it into database public
Reimplemented from ilObject.
Definition at line 127 of file class.ilObjRole.php.
{
$q = "UPDATE role_data SET ".
"allow_register='".$this->allow_register."', ".
"assign_users = '".$this->getAssignUsersStatus()."' ".
"WHERE role_id='".$this->id."'";
$this->ilias->db->query($q);
parent::update();
$this->read();
return true;
}
Here is the call graph for this function:| ilObjRole::$allow_register |
Definition at line 48 of file class.ilObjRole.php.
| ilObjRole::$assign_users |
Definition at line 49 of file class.ilObjRole.php.
| ilObjRole::$parent |
Definition at line 46 of file class.ilObjRole.php.
1.7.1