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) | |
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; }
ilObjRole::_lookupAllowRegister | ( | $ | a_role_id | ) |
check whether role is allowed in user registration or not
int | $a_role_id role id |
Definition at line 222 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; }
ilObjRole::_lookupRegisterAllowed | ( | ) |
get all roles that are activated in user registration
public
Definition at line 196 of file class.ilObjRole.php.
Referenced by displayForm().
{ 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"]); } return $roles; }
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 391 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(); }
ilObjRole::_updateSessionRoles | ( | $ | a_selected_users | ) |
Definition at line 419 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); } } }
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']); }
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; }
ilObjRole::delete | ( | ) |
delete role and all related data
public
Reimplemented from ilObject.
Definition at line 292 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; }
ilObjRole::getAllowRegister | ( | ) |
get allow_register
public
Definition at line 185 of file class.ilObjRole.php.
Referenced by create().
{
return $this->allow_register;
}
ilObjRole::getAssignUsersStatus | ( | ) |
Definition at line 67 of file class.ilObjRole.php.
Referenced by create().
{
return $this->assign_users;
}
ilObjRole::getCountMembers | ( | ) |
Definition at line 376 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 259 of file class.ilObjRole.php.
Referenced by delete().
{
return $this->parent;
}
ilObjRole::ilClone | ( | $ | a_parent_ref | ) |
copy all properties and subobjects of a role.
DISABLED public
Reimplemented from ilObject.
Definition at line 270 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); }
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(); }
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;
}
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 248 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; }
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; }
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.