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) | |
__getPermissionDefinitions () | |
Static Public Member Functions | |
_search (&$a_search_obj) | |
STATIC METHOD search for role data. | |
Data Fields | |
$parent | |
$allow_register | |
$assign_users |
Class ilObjRole.
Definition at line 34 of file class.ilObjRole.php.
ilObjRole::__getPermissionDefinitions | ( | ) |
Definition at line 496 of file class.ilObjRole.php.
References ilObject::$lng, $q, and $row.
{ global $ilDB, $lng, $objDefinition; #$to_filter = $objDefinition->getSubobjectsToFilter(); // build array with all rbac object types $q = "SELECT ta.typ_id,obj.title,ops.ops_id,ops.operation FROM rbac_ta AS ta ". "LEFT JOIN object_data AS obj ON obj.obj_id=ta.typ_id ". "LEFT JOIN rbac_operations AS ops ON ops.ops_id=ta.ops_id"; $r = $ilDB->query($q); while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT)) { // FILTER SUBOJECTS OF adm OBJECT #if(in_array($row->title,$to_filter)) #{ # continue; #} $rbac_objects[$row->typ_id] = array("obj_id" => $row->typ_id, "type" => $row->title ); $rbac_operations[$row->typ_id][$row->ops_id] = array( "ops_id" => $row->ops_id, "title" => $row->operation, "name" => $lng->txt($row->title."_".$row->operation) ); } return array($rbac_objects,$rbac_operations); }
ilObjRole::_getAssignUsersStatus | ( | $ | a_role_id | ) |
Definition at line 69 of file class.ilObjRole.php.
References $query, $res, and $row.
Referenced by ilObjUserGUI::createObject(), ilRbacReview::getGlobalAssignableRoles(), ilObjUserFolderGUI::importUserRoleAssignmentObject(), ilSoapUserAdministration::importUsers(), 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::_getAuthMode | ( | $ | a_role_id | ) |
Definition at line 482 of file class.ilObjRole.php.
Referenced by ilRegistrationGUI::__validateRole(), and ilRegistrationGUI::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]; }
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(), ilPermissionGUI::perm(), ilObjRoleTemplateGUI::permObject(), ilObjRoleGUI::permObject(), ilObjUserGUI::roleassignmentObject(), ilSoapRoleObjectXMLWriter::start(), 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; }
ilObjRole::_lookupAllowRegister | ( | $ | a_role_id | ) |
check whether role is allowed in user registration or not
int | $a_role_id role id |
Definition at line 220 of file class.ilObjRole.php.
References $q.
Referenced by ilRegistrationGUI::__validateRole(), and ilRegistrationSettingsGUI::editRoles().
{ 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 193 of file class.ilObjRole.php.
References $q.
Referenced by ilRegistrationSettingsGUI::__prepareRoleList(), ilRegistrationGUI::__showRoleSelection(), and ilObjAuthSettingsGUI::authSettingsObject().
{ 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; }
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(); }
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); } }
ilObjRole::_updateSessionRoles | ( | $ | a_selected_users | ) |
Definition at line 420 of file class.ilObjRole.php.
References $_SESSION, $q, $rbacreview, $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 112 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 147 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 290 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 //echo "<br>role id:".$this->getId().":"; $user_ids = $rbacreview->assignedUsers($this->getId()); $last_role_user_ids = array(); foreach ($user_ids as $user_id) { //echo "<br>user id:".$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) { //echo "<br>last role for user id:".$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 182 of file class.ilObjRole.php.
Referenced by create().
{
return $this->allow_register;
}
ilObjRole::getAssignUsersStatus | ( | ) |
Definition at line 64 of file class.ilObjRole.php.
Referenced by create().
{
return $this->assign_users;
}
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 257 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 268 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 54 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 87 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 166 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 246 of file class.ilObjRole.php.
{ $this->parent = $a_parent_ref; }
ilObjRole::toggleAssignUsersStatus | ( | $ | a_assign_users | ) |
Definition at line 60 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 124 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 45 of file class.ilObjRole.php.
ilObjRole::$assign_users |
Definition at line 46 of file class.ilObjRole.php.
ilObjRole::$parent |
Definition at line 43 of file class.ilObjRole.php.