ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilObjRole Class Reference

Class ilObjRole. More...

+ Inheritance diagram for ilObjRole:
+ Collaboration diagram for ilObjRole:

Public Member Functions

 ilObjRole ($a_id=0, $a_call_by_reference=false)
 Constructor @access public. More...
 
 validate ()
 Validate role data. More...
 
 getPresentationTitle ()
 return translated title for autogenerated roles More...
 
 toggleAssignUsersStatus ($a_assign_users)
 
 getAssignUsersStatus ()
 
 _getAssignUsersStatus ($a_role_id)
 
 read ()
 loads "role" from database @access private More...
 
 assignData ($a_data)
 loads a record "role" from array @access public More...
 
 update ()
 updates a record "role" and write it into database @access public More...
 
 create ()
 create More...
 
 setAllowRegister ($a_allow_register)
 set allow_register of role More...
 
 getAllowRegister ()
 get allow_register More...
 
 setDiskQuota ($a_disk_quota)
 
 getDiskQuota ()
 
 setPersonalWorkspaceDiskQuota ($a_disk_quota)
 
 getPersonalWorkspaceDiskQuota ()
 
 _lookupRegisterAllowed ()
 get all roles that are activated in user registration More...
 
 _lookupAllowRegister ($a_role_id)
 check whether role is allowed in user registration or not More...
 
 setParent ($a_parent_ref)
 set reference id of parent object this is neccessary for non RBAC protected objects!!! More...
 
 getParent ()
 get reference id of parent object More...
 
 delete ()
 delete role and all related data More...
 
 getCountMembers ()
 
 _getTranslation ($a_role_title)
 
 _updateAuthMode ($a_roles)
 
 _getAuthMode ($a_role_id)
 
 __getPermissionDefinitions ()
 
 changeExistingObjects ($a_start_node, $a_mode, $a_filter, $a_exclusion_filter=array())
 Change existing objects. More...
 
- Public Member Functions inherited from ilObject
 ilObject ($a_id=0, $a_reference=true)
 Constructor @access public. More...
 
 withReferences ()
 determines wehter objects are referenced or not (got ref ids or not) More...
 
 read ($a_force_db=false)
 read object data from db into object More...
 
 getId ()
 get object id @access public More...
 
 setId ($a_id)
 set object id @access public More...
 
 setRefId ($a_id)
 set reference id @access public More...
 
 getRefId ()
 get reference id @access public More...
 
 getType ()
 get object type @access public More...
 
 setType ($a_type)
 set object type @access public More...
 
 getPresentationTitle ()
 get presentation title Normally same as title Overwritten for sessions More...
 
 getTitle ()
 get object title @access public More...
 
 getUntranslatedTitle ()
 get untranslated object title @access public More...
 
 setTitle ($a_title)
 set object title More...
 
 getDescription ()
 get object description More...
 
 setDescription ($a_desc)
 set object description More...
 
 getLongDescription ()
 get object long description (stored in object_description) More...
 
 getImportId ()
 get import id More...
 
 setImportId ($a_import_id)
 set import id More...
 
 getOwner ()
 get object owner More...
 
 getOwnerName ()
 
 _lookupOwnerName ($a_owner_id)
 lookup owner name for owner id More...
 
 setOwner ($a_owner)
 set object owner More...
 
 getCreateDate ()
 get create date @access public More...
 
 getLastUpdateDate ()
 get last update date @access public More...
 
 getDiskUsage ()
 
 setObjDataRecord ($a_record)
 set object_data record (note: this method should only be called from the ilObjectFactory class) More...
 
 create ()
 create More...
 
 update ()
 update object in db More...
 
 MDUpdateListener ($a_element)
 Meta data update listener. More...
 
 createMetaData ()
 create meta data entry More...
 
 updateMetaData ()
 update meta data entry More...
 
 deleteMetaData ()
 delete meta data entry More...
 
 updateOwner ()
 update owner of object in db More...
 
 _getIdForImportId ($a_import_id)
 get current object id for import id (static) More...
 
 _lookupOwner ($a_id)
 lookup object owner More...
 
 _lookupLastUpdate ($a_id, $a_as_string=false)
 lookup last update More...
 
 _getLastUpdateOfObjects ($a_objs)
 Get last update for a set of media objects. More...
 
 _setDeletedDate ($a_ref_id)
 only called in ilTree::saveSubTree More...
 
 _resetDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
 _lookupDeletedDate ($a_ref_id)
 only called in ilObjectGUI::insertSavedNodes More...
 
 _writeTitle ($a_obj_id, $a_title)
 write title to db (static) More...
 
 _writeDescription ($a_obj_id, $a_desc)
 write description to db (static) More...
 
 _writeImportId ($a_obj_id, $a_import_id)
 write import id to db (static) More...
 
 _isInTrash ($a_ref_id)
 checks wether object is in trash More...
 
 _hasUntrashedReference ($a_obj_id)
 checks wether an object has at least one reference that is not in trash More...
 
 _getObjectsDataForType ($a_type, $a_omit_trash=false)
 get all objects of a certain type More...
 
 putInTree ($a_parent_ref)
 maybe this method should be in tree object!? More...
 
 setPermissions ($a_parent_ref)
 set permissions of object More...
 
 setParentRolePermissions ($a_parent_ref)
 Initialize the permissions of parent roles (local roles of categories, global roles...) This method is overwritten in e.g courses, groups for building permission intersections with non_member templates. More...
 
 createReference ()
 creates reference for object More...
 
 countReferences ()
 count references of object More...
 
 delete ()
 delete object or referenced object (in the case of a referenced object, object data is only deleted if last reference is deleted) This function removes an object entirely from system!! More...
 
 initDefaultRoles ()
 init default roles settings Purpose of this function is to create a local role folder and local roles, that are needed depending on the object type If you want to setup default local roles you MUST overwrite this method in derived object classes (see ilObjForum for an example) @access public More...
 
 applyDidacticTemplate ($a_tpl_id)
 Apply template. More...
 
 notify ($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
 notifys an object about an event occured Based on the event passed, each object may decide how it reacts. More...
 
 setRegisterMode ($a_bool)
 
 isUserRegistered ($a_user_id=0)
 
 requireRegistration ()
 
 getXMLZip ()
 
 getHTMLDirectory ()
 
 cloneObject ($a_target_id, $a_copy_id=0, $a_omit_tree=false)
 Clone object permissions, put in tree ... More...
 
 appendCopyInfo ($a_target_id, $a_copy_id)
 Prepend Copy info if object with same name exists in that container. More...
 
 cloneDependencies ($a_target_id, $a_copy_id)
 Clone object dependencies. More...
 
 cloneMetaData ($target_obj)
 Copy meta data. More...
 
 _lookupCreationDate ($a_id)
 Lookup creation date. More...
 
 getPossibleSubObjects ($a_filter=true)
 get all possible subobjects of this type the object can decide which types of subobjects are possible jut in time overwrite if the decision distinguish from standard model More...
 

Static Public Member Functions

static createDefaultRole ($a_title, $a_description, $a_tpl_name, $a_ref_id)
 
static _getRolesByAuthMode ($a_auth_mode)
 Get roles by auth mode. More...
 
static _resetAuthMode ($a_auth_mode)
 Reset auth mode to default. More...
 
static isAutoGenerated ($a_role_id)
 
- Static Public Member Functions inherited from ilObject
static _lookupObjIdByImportId ($a_import_id)
 
static _lookupImportId ($a_obj_id)
 
static _getAllReferences ($a_id)
 get all reference ids of object More...
 
static _lookupTitle ($a_id)
 lookup object title More...
 
static _getIdsForTitle ($title, $type='', $partialmatch=false)
 
static _lookupDescription ($a_id)
 lookup object description More...
 
static _lookupObjId ($a_id)
 
static setDeletedDates ($a_ref_ids)
 Set deleted date @global type $ilDB. More...
 
static _lookupType ($a_id, $a_reference=false)
 lookup object type More...
 
static _lookupObjectId ($a_ref_id)
 lookup object id More...
 
static _exists ($a_id, $a_reference=false, $a_type=null)
 checks if an object exists in object_data@access public More...
 
static _getObjectsByType ($a_obj_type="", $a_owner="")
 Get objects by type. More...
 
static _prepareCloneSelection ($a_ref_ids, $new_type, $show_path=true)
 Prepare copy wizard object selection. More...
 
static _getIcon ($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
 Get icon for repository item. More...
 
static collectDeletionDependencies (&$deps, $a_ref_id, $a_obj_id, $a_type, $a_depth=0)
 Collect deletion dependencies. More...
 
static getDeletionDependencies ($a_obj_id)
 Get deletion dependencies. More...
 
static getLongDescriptions (array $a_obj_ids)
 Get long description data. More...
 
static getAllOwnedRepositoryObjects ($a_user_id)
 Get all ids of objects user owns. More...
 
static fixMissingTitles ($a_type, array &$a_obj_title_map)
 Try to fix missing object titles. More...
 
static hasAutoRating ($a_type, $a_ref_id)
 Check if auto rating is active for parent group/course. More...
 

Data Fields

const MODE_PROTECTED_DELETE_LOCAL_POLICIES = 1
 
const MODE_PROTECTED_KEEP_LOCAL_POLICIES = 2
 
const MODE_UNPROTECTED_DELETE_LOCAL_POLICIES = 3
 
const MODE_UNPROTECTED_KEEP_LOCAL_POLICIES = 4
 
 $parent
 
 $allow_register
 
 $assign_users
 
 $disk_quota
 The disk quota in bytes. More...
 
 $wsp_disk_quota
 
- Data Fields inherited from ilObject
const TITLE_LENGTH = 255
 max length of object title More...
 
const DESC_LENGTH = 128
 
 $ilias
 
 $lng
 
 $id
 
 $ref_id
 
 $type
 
 $title
 
 $untranslatedTitle
 
 $desc
 
 $long_desc
 
 $owner
 
 $create_date
 
 $last_update
 
 $import_id
 
 $register = false
 
 $referenced
 
 $objectList
 
 $max_title
 
 $max_desc
 
 $add_dots
 
 $obj_data_record
 object_data record More...
 

Protected Member Functions

 deleteLocalPolicies ($a_start, $a_policies, $a_filter)
 Delete local policies. More...
 
 adjustPermissions ($a_mode, $a_nodes, $a_policies, $a_filter, $a_exclusion_filter=array())
 Adjust permissions. More...
 
 isHandledObjectType ($a_filter, $a_exclusion_filter, $a_type)
 Check if type is filterer. More...
 
 updateOperationStack (&$a_stack, $a_node, $a_init=false)
 Update operation stack. More...
 
 updatePolicyStack (&$a_stack, $a_node)
 Update policy stack. More...
 
 createPermissionIntersection ($policy_stack, $a_current_ops, $a_id, $a_type)
 Create course group permission intersection. More...
 

Detailed Description

Class ilObjRole.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 15 of file class.ilObjRole.php.

Member Function Documentation

◆ __getPermissionDefinitions()

ilObjRole::__getPermissionDefinitions ( )

Definition at line 595 of file class.ilObjRole.php.

596 {
597 global $ilDB, $lng, $objDefinition,$rbacreview;
598
599 $operation_info = $rbacreview->getOperationAssignment();
600 foreach($operation_info as $info)
601 {
602 if($objDefinition->getDevMode($info['type']))
603 {
604 continue;
605 }
606 $rbac_objects[$info['typ_id']] = array("obj_id" => $info['typ_id'],
607 "type" => $info['type']);
608
609 // handle plugin permission texts
610 $txt = $objDefinition->isPlugin($info['type'])
611 ? ilPlugin::lookupTxt("rep_robj", $info['type'], $info['type']."_".$info['operation'])
612 : $lng->txt($info['type']."_".$info['operation']);
613 if (substr($info['operation'], 0, 7) == "create_" &&
614 $objDefinition->isPlugin(substr($info['operation'], 7)))
615 {
616 $txt = ilPlugin::lookupTxt("rep_robj", substr($info['operation'], 7), $info['type']."_".$info['operation']);
617 }
618 $rbac_operations[$info['typ_id']][$info['ops_id']] = array(
619 "ops_id" => $info['ops_id'],
620 "title" => $info['operation'],
621 "name" => $txt);
622
623 }
624 return array($rbac_objects,$rbac_operations);
625 }
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
$txt
Definition: error.php:12
$info
Definition: example_052.php:80
global $ilDB

References $ilDB, $info, ilObject\$lng, $txt, and ilPlugin\lookupTxt().

+ Here is the call graph for this function:

◆ _getAssignUsersStatus()

ilObjRole::_getAssignUsersStatus (   $a_role_id)

Definition at line 141 of file class.ilObjRole.php.

142 {
143 global $ilDB;
144
145 $query = "SELECT assign_users FROM role_data WHERE role_id = ".$ilDB->quote($a_role_id,'integer')." ";
146 $res = $ilDB->query($query);
147 while($row = $ilDB->fetchObject($res))
148 {
149 return $row->assign_users ? true : false;
150 }
151 return false;
152 }

References $ilDB, $query, $res, and $row.

Referenced by ilRbacReview\getGlobalAssignableRoles(), ilObjUserFolderGUI\importUserRoleAssignmentObject(), ilSoapUserAdministration\importUsers(), ilObjUserFolderGUI\importUsersObject(), ilObjUserGUI\initCreate(), and ilSoapUserAdministration\isPermittedRole().

+ Here is the caller graph for this function:

◆ _getAuthMode()

ilObjRole::_getAuthMode (   $a_role_id)

Definition at line 543 of file class.ilObjRole.php.

544 {
545 global $ilDB;
546
547 $query = "SELECT auth_mode FROM role_data ".
548 "WHERE role_id= ".$ilDB->quote($a_role_id,'integer')." ";
549 $res = $ilDB->query($query);
550 $row = $ilDB->fetchAssoc($res);
551
552 return $row['auth_mode'];
553 }

References $ilDB, $query, $res, and $row.

◆ _getRolesByAuthMode()

static ilObjRole::_getRolesByAuthMode (   $a_auth_mode)
static

Get roles by auth mode.

@access public

Parameters
stringauth mode

Definition at line 562 of file class.ilObjRole.php.

563 {
564 global $ilDB;
565
566 $query = "SELECT * FROM role_data ".
567 "WHERE auth_mode = ".$ilDB->quote($a_auth_mode,'text');
568 $res = $ilDB->query($query);
569 $roles = array();
570 while($row = $ilDB->fetchObject($res))
571 {
572 $roles[] = $row->role_id;
573 }
574 return $roles;
575 }

References $ilDB, $query, $res, and $row.

Referenced by ilRadiusSettings\read().

+ Here is the caller graph for this function:

◆ _getTranslation()

◆ _lookupAllowRegister()

ilObjRole::_lookupAllowRegister (   $a_role_id)

check whether role is allowed in user registration or not

Parameters
int$a_role_idrole id
Returns
boolean true if role is allowed in user registration

Definition at line 359 of file class.ilObjRole.php.

360 {
361 global $ilDB;
362
363 $query = "SELECT * FROM role_data ".
364 " WHERE role_id =".$ilDB->quote($a_role_id,'integer');
365
366 $res = $ilDB->query($query);
367 if ($role_rec = $ilDB->fetchAssoc($res))
368 {
369 if ($role_rec["allow_register"])
370 {
371 return true;
372 }
373 }
374 return false;
375 }

References $ilDB, $query, and $res.

Referenced by ilRegistrationSettingsGUI\editRoles(), and ilAccountRegistrationGUI\saveForm().

+ Here is the caller graph for this function:

◆ _lookupRegisterAllowed()

ilObjRole::_lookupRegisterAllowed ( )

get all roles that are activated in user registration

@access public

Returns
array array of int: role ids

Definition at line 333 of file class.ilObjRole.php.

334 {
335 global $ilDB;
336
337 $query = "SELECT * FROM role_data ".
338 "JOIN object_data ON object_data.obj_id = role_data.role_id ".
339 "WHERE allow_register = 1";
340 $res = $ilDB->query($query);
341
342 $roles = array();
343 while($role = $ilDB->fetchAssoc($res))
344 {
345 $roles[] = array("id" => $role["obj_id"],
346 "title" => $role["title"],
347 "auth_mode" => $role['auth_mode']);
348 }
349
350 return $roles;
351 }

References $ilDB, $query, and $res.

Referenced by ilRegistrationSettingsGUI\__prepareAccessLimitationRoleList(), ilRegistrationSettingsGUI\__prepareRoleList(), ilShopUtils\_createRandomUserAccount(), ilUserProfile\addStandardFieldsToForm(), ilObjAuthSettingsGUI\authSettingsObject(), ilRegistrationSettingsGUI\editRoleAccessLimitations(), and ilRegistrationSettingsGUI\saveRoleAccessLimitations().

+ Here is the caller graph for this function:

◆ _resetAuthMode()

static ilObjRole::_resetAuthMode (   $a_auth_mode)
static

Reset auth mode to default.

@access public

Parameters
stringauth mode

Definition at line 585 of file class.ilObjRole.php.

586 {
587 global $ilDB;
588
589 $query = "UPDATE role_data SET auth_mode = 'default' WHERE auth_mode = ".$ilDB->quote($a_auth_mode,'text');
590 $res = $ilDB->manipulate($query);
591 }

References $ilDB, $query, and $res.

Referenced by ilRadiusSettings\save().

+ Here is the caller graph for this function:

◆ _updateAuthMode()

ilObjRole::_updateAuthMode (   $a_roles)

Definition at line 530 of file class.ilObjRole.php.

531 {
532 global $ilDB;
533
534 foreach ($a_roles as $role_id => $auth_mode)
535 {
536 $query = "UPDATE role_data SET ".
537 "auth_mode= ".$ilDB->quote($auth_mode,'text')." ".
538 "WHERE role_id= ".$ilDB->quote($role_id,'integer')." ";
539 $res = $ilDB->manipulate($query);
540 }
541 }

References $ilDB, $query, and $res.

Referenced by ilRadiusSettings\save(), and ilObjAuthSettingsGUI\updateAuthRolesObject().

+ Here is the caller graph for this function:

◆ adjustPermissions()

ilObjRole::adjustPermissions (   $a_mode,
  $a_nodes,
  $a_policies,
  $a_filter,
  $a_exclusion_filter = array() 
)
protected

Adjust permissions.

Parameters
int$a_mode
array$a_nodesarray of nodes
array$a_policiesarray of object ref ids
array$a_exclusion_filterof object types.
Returns

Definition at line 710 of file class.ilObjRole.php.

711 {
712 global $rbacadmin, $rbacreview, $tree;
713
714 $operation_stack = array();
715 $policy_stack = array();
716 $node_stack = array();
717
718 $start_node = current($a_nodes);
719 array_push($node_stack,$start_node);
720 $this->updatePolicyStack($policy_stack, $start_node['child']);
721 $this->updateOperationStack($operation_stack, $start_node['child'],true);
722
723 include_once "Services/AccessControl/classes/class.ilRbacLog.php";
724 $rbac_log_active = ilRbacLog::isActive();
725
726 $local_policy = false;
727 foreach($a_nodes as $node)
728 {
729 $cmp_node = end($node_stack);
730 while($relation = $tree->getRelationOfNodes($node,$cmp_node))
731 {
732 switch($relation)
733 {
736 $GLOBALS['ilLog']->write(__METHOD__.': Handling sibling/none relation.');
737 array_pop($operation_stack);
738 array_pop($policy_stack);
739 array_pop($node_stack);
740 $cmp_node = end($node_stack);
741 $local_policy = false;
742 break;
743
747 default:
748 $GLOBALS['ilLog']->write(__METHOD__.': Handling child/equals/parent '. $relation);
749 break 2;
750 }
751
752 }
753
754 if($local_policy)
755 {
756 continue;
757 }
758
759 // Start node => set permissions and continue
760 if($node['child'] == $start_node['child'])
761 {
762 if($this->isHandledObjectType($a_filter,$a_exclusion_filter,$node['type']))
763 {
764 if($rbac_log_active)
765 {
766 $rbac_log_roles = $rbacreview->getParentRoleIds($node['child'], false);
767 $rbac_log_old = ilRbacLog::gatherFaPa($node['child'], array_keys($rbac_log_roles));
768 }
769
770 // Set permissions
771 $perms = end($operation_stack);
772 $rbacadmin->grantPermission(
773 $this->getId(),
774 (array) $perms[$node['type']],
775 $node['child']
776 );
777
778 if($rbac_log_active)
779 {
780 $rbac_log_new = ilRbacLog::gatherFaPa($node['child'], array_keys($rbac_log_roles));
781 $rbac_log = ilRbacLog::diffFaPa($rbac_log_old, $rbac_log_new);
782 ilRbacLog::add(ilRbacLog::EDIT_TEMPLATE_EXISTING, $node['child'], $rbac_log);
783 }
784 }
785 continue;
786 }
787
788 // Node has local policies => update permission stack and continue
789 if(in_array($node['child'], $a_policies) and ($node['child'] != SYSTEM_FOLDER_ID))
790 {
791 $local_policy = true;
792 $this->updatePolicyStack($policy_stack, $node['child']);
793 $this->updateOperationStack($operation_stack, $node['child']);
794 array_push($node_stack, $node);
795 continue;
796 }
797
798 // Continue if this object type is not in filter
799 if(!$this->isHandledObjectType($a_filter,$a_exclusion_filter,$node['type']))
800 {
801 continue;
802 }
803
804 if($rbac_log_active)
805 {
806 $rbac_log_roles = $rbacreview->getParentRoleIds($node['child'], false);
807 $rbac_log_old = ilRbacLog::gatherFaPa($node['child'], array_keys($rbac_log_roles));
808 }
809
810 // Node is course => create course permission intersection
811 if(($a_mode == self::MODE_UNPROTECTED_DELETE_LOCAL_POLICIES or
812 $a_mode == self::MODE_UNPROTECTED_KEEP_LOCAL_POLICIES) and ($node['type'] == 'crs'))
813
814 {
815 // Copy role permission intersection
816 $perms = end($operation_stack);
817 $this->createPermissionIntersection($policy_stack,$perms['crs'],$node['child'],$node['type']);
818 if($this->updateOperationStack($operation_stack,$node['child']))
819 {
820 $this->updatePolicyStack($policy_stack, $node['child']);
821 array_push($node_stack, $node);
822 }
823 }
824
825 // Node is group => create group permission intersection
826 if(($a_mode == self::MODE_UNPROTECTED_DELETE_LOCAL_POLICIES or
827 $a_mode == self::MODE_UNPROTECTED_KEEP_LOCAL_POLICIES) and ($node['type'] == 'grp'))
828 {
829 // Copy role permission intersection
830 $perms = end($operation_stack);
831 $this->createPermissionIntersection($policy_stack,$perms['grp'],$node['child'],$node['type']);
832 if($this->updateOperationStack($operation_stack,$node['child']))
833 {
834 $this->updatePolicyStack($policy_stack, $node['child']);
835 array_push($node_stack, $node);
836 }
837 }
838
839 // Set permission
840 $perms = end($operation_stack);
841 $rbacadmin->grantPermission(
842 $this->getId(),
843 (array) $perms[$node['type']],
844 $node['child']
845 );
846
847 if($rbac_log_active)
848 {
849 $rbac_log_new = ilRbacLog::gatherFaPa($node['child'], array_keys($rbac_log_roles));
850 $rbac_log = ilRbacLog::diffFaPa($rbac_log_old, $rbac_log_new);
851 ilRbacLog::add(ilRbacLog::EDIT_TEMPLATE_EXISTING, $node['child'], $rbac_log);
852 }
853 }
854 }
createPermissionIntersection($policy_stack, $a_current_ops, $a_id, $a_type)
Create course group permission intersection.
updatePolicyStack(&$a_stack, $a_node)
Update policy stack.
isHandledObjectType($a_filter, $a_exclusion_filter, $a_type)
Check if type is filterer.
updateOperationStack(&$a_stack, $a_node, $a_init=false)
Update operation stack.
getId()
get object id @access public
static diffFaPa(array $a_old, array $a_new)
static add($a_action, $a_ref_id, array $a_diff, $a_source_ref_id=false)
const EDIT_TEMPLATE_EXISTING
static gatherFaPa($a_ref_id, array $a_role_ids, $a_add_action=false)
static isActive()
const RELATION_EQUALS
const RELATION_PARENT
const RELATION_NONE
const RELATION_SIBLING
const RELATION_CHILD
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276

References $GLOBALS, ilRbacLog\add(), createPermissionIntersection(), ilRbacLog\diffFaPa(), ilRbacLog\EDIT_TEMPLATE_EXISTING, ilRbacLog\gatherFaPa(), ilObject\getId(), ilRbacLog\isActive(), isHandledObjectType(), ilTree\RELATION_CHILD, ilTree\RELATION_EQUALS, ilTree\RELATION_NONE, ilTree\RELATION_PARENT, ilTree\RELATION_SIBLING, updateOperationStack(), and updatePolicyStack().

Referenced by changeExistingObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ assignData()

ilObjRole::assignData (   $a_data)

loads a record "role" from array @access public

Parameters
arrayroledata

Definition at line 185 of file class.ilObjRole.php.

186 {
187 $this->setTitle(ilUtil::stripSlashes($a_data["title"]));
188 $this->setDescription(ilUtil::stripslashes($a_data["desc"]));
189 $this->setAllowRegister($a_data["allow_register"]);
190 $this->toggleAssignUsersStatus($a_data['assign_users']);
191 $this->setDiskQuota($a_data['disk_quota']);
192 $this->setPersonalWorkspaceDiskQuota($a_data['wsp_disk_quota']);
193 }
setAllowRegister($a_allow_register)
set allow_register of role
toggleAssignUsersStatus($a_assign_users)
setDiskQuota($a_disk_quota)
setPersonalWorkspaceDiskQuota($a_disk_quota)
setTitle($a_title)
set object title
setDescription($a_desc)
set object description
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

References setAllowRegister(), ilObject\setDescription(), setDiskQuota(), setPersonalWorkspaceDiskQuota(), ilObject\setTitle(), ilUtil\stripSlashes(), and toggleAssignUsersStatus().

Referenced by read().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ changeExistingObjects()

ilObjRole::changeExistingObjects (   $a_start_node,
  $a_mode,
  $a_filter,
  $a_exclusion_filter = array() 
)

Change existing objects.

Parameters
int$a_start_node
int$a_mode
arrayfilter Filter of object types (array('all') => change all objects
Returns

Definition at line 640 of file class.ilObjRole.php.

641 {
642 global $tree,$rbacreview;
643
644 // Get node info of subtree
645 $nodes = $tree->getRbacSubtreeInfo($a_start_node);
646
647 // get local policies
648 $all_local_policies = $rbacreview->getObjectsWithStopedInheritance($this->getId());
649
650 // filter relevant roles
651 $local_policies = array();
652 foreach($all_local_policies as $lp)
653 {
654 if(isset($nodes[$lp]))
655 {
656 $local_policies[] = $lp;
657 }
658 }
659
660 // Delete deprecated policies
661 switch($a_mode)
662 {
665 $local_policies = $this->deleteLocalPolicies($a_start_node,$local_policies,$a_filter);
666 #$local_policies = array($a_start_node == ROOT_FOLDER_ID ? SYSTEM_FOLDER_ID : $a_start_node);
667 break;
668 }
669 $this->adjustPermissions($a_mode,$nodes,$local_policies,$a_filter,$a_exclusion_filter);
670
671 #var_dump(memory_get_peak_usage());
672 #var_dump(memory_get_usage());
673 }
const MODE_PROTECTED_DELETE_LOCAL_POLICIES
const MODE_UNPROTECTED_DELETE_LOCAL_POLICIES
deleteLocalPolicies($a_start, $a_policies, $a_filter)
Delete local policies.
adjustPermissions($a_mode, $a_nodes, $a_policies, $a_filter, $a_exclusion_filter=array())
Adjust permissions.

References adjustPermissions(), deleteLocalPolicies(), ilObject\getId(), MODE_PROTECTED_DELETE_LOCAL_POLICIES, and MODE_UNPROTECTED_DELETE_LOCAL_POLICIES.

+ Here is the call graph for this function:

◆ create()

ilObjRole::create ( )

create

@access public

Returns
integer object id

Reimplemented from ilObject.

Definition at line 225 of file class.ilObjRole.php.

226 {
227 global $ilDB;
228
229 $this->id = parent::create();
230
231 $query = "INSERT INTO role_data ".
232 "(role_id,allow_register,assign_users,disk_quota,wsp_disk_quota) ".
233 "VALUES ".
234 "(".$ilDB->quote($this->id,'integer').",".
235 $ilDB->quote($this->getAllowRegister(),'integer').",".
236 $ilDB->quote($this->getAssignUsersStatus(),'integer').",".
237 $ilDB->quote($this->getDiskQuota(),'integer').",".
238 $ilDB->quote($this->getPersonalWorkspaceDiskQuota(),'integer').")"
239 ;
240 $res = $ilDB->query($query);
241
242 return $this->id;
243 }
getPersonalWorkspaceDiskQuota()
getAllowRegister()
get allow_register

References ilObject\$id, $ilDB, $query, $res, getAllowRegister(), getAssignUsersStatus(), getDiskQuota(), and getPersonalWorkspaceDiskQuota().

+ Here is the call graph for this function:

◆ createDefaultRole()

static ilObjRole::createDefaultRole (   $a_title,
  $a_description,
  $a_tpl_name,
  $a_ref_id 
)
static
Parameters
type$a_title
type$a_description
type$a_tpl_name
type$a_ref_id
Returns
ilObjRole

Definition at line 60 of file class.ilObjRole.php.

61 {
62 global $ilDB;
63
64 // SET PERMISSION TEMPLATE OF NEW LOCAL CONTRIBUTOR ROLE
65 $res = $ilDB->query("SELECT obj_id FROM object_data ".
66 " WHERE type=".$ilDB->quote("rolt", "text").
67 " AND title=".$ilDB->quote($a_tpl_name, "text"));
68 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
69 {
70 $tpl_id = $row->obj_id;
71 }
72
73 if(!$tpl_id)
74 {
75 return null;
76 }
77
78 include_once './Services/AccessControl/classes/class.ilObjRole.php';
79 $role = new ilObjRole();
80 $role->setTitle($a_title);
81 $role->setDescription($a_description);
82 $role->create();
83
84 $GLOBALS['rbacadmin']->assignRoleToFolder($role->getId(),$a_ref_id,'y');
85
86 $GLOBALS['rbacadmin']->copyRoleTemplatePermissions(
87 $tpl_id,
88 ROLE_FOLDER_ID,
89 $a_ref_id,
90 $role->getId()
91 );
92
93 $ops = $GLOBALS['rbacreview']->getOperationsOfRole(
94 $role->getId(),
95 ilObject::_lookupType($a_ref_id, TRUE),
96 $a_ref_id
97 );
98 $GLOBALS['rbacadmin']->grantPermission(
99 $role->getId(),
100 $ops,
101 $a_ref_id
102 );
103 return $role;
104 }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
ilObjRole($a_id=0, $a_call_by_reference=false)
Constructor @access public.
static _lookupType($a_id, $a_reference=false)
lookup object type

References $GLOBALS, $ilDB, $res, $row, ilObject\_lookupType(), DB_FETCHMODE_OBJECT, and ilObjRole().

Referenced by ilObjBlog\initDefaultRoles(), ilObjChatroom\initDefaultRoles(), ilObjCourse\initDefaultRoles(), ilObjForum\initDefaultRoles(), ilObjGroup\initDefaultRoles(), and ilObjOrgUnit\initDefaultRoles().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createPermissionIntersection()

ilObjRole::createPermissionIntersection (   $policy_stack,
  $a_current_ops,
  $a_id,
  $a_type 
)
protected

Create course group permission intersection.

Parameters
arrayoperation stack
int$a_id
string$a_type
Returns

Definition at line 965 of file class.ilObjRole.php.

966 {
967 global $ilDB, $rbacreview,$rbacadmin;
968
969 static $course_non_member_id = null;
970 static $group_non_member_id = null;
971 static $group_open_id = null;
972 static $group_closed_id = null;
973
974 // Get template id
975 switch($a_type)
976 {
977 case 'grp':
978
979 include_once './Modules/Group/classes/class.ilObjGroup.php';
981 #var_dump("GROUP TYPE",$type);
982 switch($type)
983 {
984 case GRP_TYPE_CLOSED:
985 if(!$group_closed_id)
986 {
987 $query = "SELECT obj_id FROM object_data WHERE type='rolt' AND title='il_grp_status_closed'";
988 $res = $ilDB->query($query);
989 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
990 {
991 $group_closed_id = $row->obj_id;
992 }
993 }
994 $template_id = $group_closed_id;
995 #var_dump("GROUP CLOSED id:" . $template_id);
996 break;
997
998 case GRP_TYPE_OPEN:
999 default:
1000 if(!$group_open_id)
1001 {
1002 $query = "SELECT obj_id FROM object_data WHERE type='rolt' AND title='il_grp_status_open'";
1003 $res = $ilDB->query($query);
1004 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
1005 {
1006 $group_open_id = $row->obj_id;
1007 }
1008 }
1009 $template_id = $group_open_id;
1010 #var_dump("GROUP OPEN id:" . $template_id);
1011 break;
1012 }
1013 break;
1014
1015 case 'crs':
1016 if(!$course_non_member_id)
1017 {
1018 $query = "SELECT obj_id FROM object_data WHERE type='rolt' AND title='il_crs_non_member'";
1019 $res = $ilDB->query($query);
1020 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
1021 {
1022 $course_non_member_id = $row->obj_id;
1023 }
1024 }
1025 $template_id = $course_non_member_id;
1026 break;
1027 }
1028
1029 $current_ops = $a_current_ops[$a_type];
1030
1031 // Create intersection template permissions
1032 if($template_id)
1033 {
1034 //$rolf = $rbacreview->getRoleFolderIdOfObject($a_id);
1035
1036 $rbacadmin->copyRolePermissionIntersection(
1037 $template_id, ROLE_FOLDER_ID,
1038 $this->getId(), end($policy_stack),
1039 $a_id,$this->getId()
1040 );
1041 }
1042 else
1043 {
1044 #echo "No template id for ".$a_id.' of type'.$a_type.'<br>';
1045 }
1046 #echo "ROLE ASSIGN: ".$rolf.' AID'.$a_id;
1047 if($a_id and !$GLOBALS['rbacreview']->isRoleAssignedToObject($this->getId(),$a_id))
1048 {
1049 $rbacadmin->assignRoleToFolder($this->getId(),$a_id,"n");
1050 }
1051 return true;
1052 }
const GRP_TYPE_OPEN
const GRP_TYPE_CLOSED
static lookupGroupTye($a_id)
Lookup group type.
static _lookupObjId($a_id)
$template_id
Definition: example_062.php:89

References $GLOBALS, $ilDB, $query, $res, $row, $template_id, ilObject\$type, ilObject\_lookupObjId(), DB_FETCHMODE_OBJECT, ilObject\getId(), GRP_TYPE_CLOSED, GRP_TYPE_OPEN, and ilObjGroup\lookupGroupTye().

Referenced by adjustPermissions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ delete()

ilObjRole::delete ( )

delete role and all related data

@access public

Returns
boolean true if all object data were removed; false if only a references were removed

Reimplemented from ilObject.

Definition at line 407 of file class.ilObjRole.php.

408 {
409 global $rbacadmin, $rbacreview,$ilDB;
410
411 // Temporary bugfix
412 if($rbacreview->hasMultipleAssignments($this->getId()))
413 {
414 ilLoggerFactory::getLogger('ac')->warning('Found role with multiple assignments: role_id: ' . $this->getId());
415 ilLoggerFactory::getLogger('ac')->warning('Aborted deletion of role.');
416 return false;
417 }
418
419 if ($rbacreview->isAssignable($this->getId(),$this->getParent()))
420 {
421 ilLoggerFactory::getLogger('ac')->debug('Handling assignable role...');
422 // do not delete a global role, if the role is the last
423 // role a user is assigned to.
424 //
425 // Performance improvement: In the code section below, we
426 // only need to consider _global_ roles. We don't need
427 // to check for _local_ roles, because a user who has
428 // a local role _always_ has a global role too.
429 $last_role_user_ids = array();
430 if ($this->getParent() == ROLE_FOLDER_ID)
431 {
432 ilLoggerFactory::getLogger('ac')->debug('Handling global role...');
433 // The role is a global role: check if
434 // we find users who aren't assigned to any
435 // other global role than this one.
436 $user_ids = $rbacreview->assignedUsers($this->getId());
437
438 foreach ($user_ids as $user_id)
439 {
440 // get all roles each user has
441 $role_ids = $rbacreview->assignedRoles($user_id);
442
443 // is last role?
444 if (count($role_ids) == 1)
445 {
446 $last_role_user_ids[] = $user_id;
447 }
448 }
449 }
450
451 // users with last role found?
452 if (count($last_role_user_ids) > 0)
453 {
454 foreach ($last_role_user_ids as $user_id)
455 {
456 // GET OBJECT TITLE
457 $tmp_obj = $this->ilias->obj_factory->getInstanceByObjId($user_id);
458 $user_names[] = $tmp_obj->getFullname();
459 unset($tmp_obj);
460 }
461
462 // TODO: This check must be done in rolefolder object because if multiple
463 // roles were selected the other roles are still deleted and the system does not
464 // give any feedback about this.
465 $users = implode(', ',$user_names);
466 ilLoggerFactory::getLogger('ac')->info('Cannot delete last global role of users.');
467 $this->ilias->raiseError($this->lng->txt("msg_user_last_role1")." ".
468 $users."<br/>".$this->lng->txt("msg_user_last_role2"),$this->ilias->error_obj->WARNING);
469 }
470 else
471 {
472 ilLoggerFactory::getLogger('ac')->debug('Starting deletion of assignable role: role_id: ' . $this->getId());
473 $rbacadmin->deleteRole($this->getId(),$this->getParent());
474
475 // Delete ldap role group mappings
476 include_once('./Services/LDAP/classes/class.ilLDAPRoleGroupMappingSettings.php');
478
479 // delete object_data entry
480 parent::delete();
481
482 // delete role_data entry
483 $query = "DELETE FROM role_data WHERE role_id = ".$ilDB->quote($this->getId(),'integer');
484 $res = $ilDB->manipulate($query);
485
486 include_once 'Services/AccessControl/classes/class.ilRoleDesktopItem.php';
487 $role_desk_item_obj = new ilRoleDesktopItem($this->getId());
488 $role_desk_item_obj->deleteAll();
489
490 }
491 }
492 else
493 {
494 ilLoggerFactory::getLogger('ac')->debug('Starting deletion of linked role: role_id ' . $this->getId());
495 // linked local role: INHERITANCE WAS STOPPED, SO DELETE ONLY THIS LOCAL ROLE
496 $rbacadmin->deleteLocalRole($this->getId(),$this->getParent());
497 }
498 return true;
499 }
static getLogger($a_component_id)
Get component logger.
getParent()
get reference id of parent object
redirection script todo: (a better solution should control the processing via a xml file)

References $ilDB, $query, $res, ilLDAPRoleGroupMappingSettings\_deleteByRole(), ilObject\getId(), ilLoggerFactory\getLogger(), and getParent().

+ Here is the call graph for this function:

◆ deleteLocalPolicies()

ilObjRole::deleteLocalPolicies (   $a_start,
  $a_policies,
  $a_filter 
)
protected

Delete local policies.

Parameters
array$a_policiesarray of object ref ids that define local policies
Returns

Definition at line 680 of file class.ilObjRole.php.

681 {
682 global $rbacreview,$rbacadmin;
683
684 $local_policies = array();
685 foreach($a_policies as $policy)
686 {
687 if($policy == $a_start or $policy == SYSTEM_FOLDER_ID)
688 {
689 $local_policies[] = $policy;
690 continue;
691 }
692 if(!in_array('all',$a_filter) and !in_array(ilObject::_lookupType(ilObject::_lookupObjId($policy)),$a_filter))
693 {
694 $local_policies[] = $policy;
695 continue;
696 }
697 $rbacadmin->deleteLocalRole($this->getId(),$policy);
698 }
699 return $local_policies;
700 }

References ilObject\_lookupObjId(), ilObject\_lookupType(), and ilObject\getId().

Referenced by changeExistingObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAllowRegister()

ilObjRole::getAllowRegister ( )

get allow_register

@access public

Returns
integer

Definition at line 267 of file class.ilObjRole.php.

268 {
269 return $this->allow_register ? $this->allow_register : false;
270 }

Referenced by create(), and ilObjRoleGUI\readRoleProperties().

+ Here is the caller graph for this function:

◆ getAssignUsersStatus()

ilObjRole::getAssignUsersStatus ( )

Definition at line 136 of file class.ilObjRole.php.

137 {
138 return $this->assign_users ? $this->assign_users : 0;
139 }

Referenced by create(), ilObjRoleGUI\readRoleProperties(), and update().

+ Here is the caller graph for this function:

◆ getCountMembers()

ilObjRole::getCountMembers ( )

Definition at line 501 of file class.ilObjRole.php.

502 {
503 global $rbacreview;
504
505 return count($rbacreview->assignedUsers($this->getId()));
506 }

◆ getDiskQuota()

ilObjRole::getDiskQuota ( )
Gets the minimal disk quota imposed by this role.

Returns the minimal disk quota in bytes. The default value is 0.

@access public

Returns
integer

Definition at line 294 of file class.ilObjRole.php.

295 {
296 return $this->disk_quota;
297 }
$disk_quota
The disk quota in bytes.

References $disk_quota.

Referenced by create(), ilObjRoleGUI\readRoleProperties(), and update().

+ Here is the caller graph for this function:

◆ getParent()

ilObjRole::getParent ( )

get reference id of parent object

@access public

Returns
integer ref_id of parent object

Definition at line 395 of file class.ilObjRole.php.

396 {
397 return $this->parent;
398 }

References $parent.

Referenced by delete().

+ Here is the caller graph for this function:

◆ getPersonalWorkspaceDiskQuota()

ilObjRole::getPersonalWorkspaceDiskQuota ( )
Gets the minimal personal workspace disk quota imposed by this role.

Returns the minimal disk quota in bytes. The default value is 0.

@access public

Returns
integer

Definition at line 322 of file class.ilObjRole.php.

323 {
325 }

References $wsp_disk_quota.

Referenced by create(), ilObjRoleGUI\readRoleProperties(), and update().

+ Here is the caller graph for this function:

◆ getPresentationTitle()

ilObjRole::getPresentationTitle ( )

return translated title for autogenerated roles

Returns

Reimplemented from ilObject.

Definition at line 127 of file class.ilObjRole.php.

128 {
129 return ilObjRole::_getTranslation($this->getTitle());
130 }
_getTranslation($a_role_title)
getTitle()
get object title @access public

References _getTranslation(), and ilObject\getTitle().

+ Here is the call graph for this function:

◆ ilObjRole()

ilObjRole::ilObjRole (   $a_id = 0,
  $a_call_by_reference = false 
)

Constructor @access public.

Parameters
integerreference_id or object_id
booleantreat the id as reference_id (true) or object_id (false)

Definition at line 44 of file class.ilObjRole.php.

45 {
46 $this->type = "role";
47 $this->disk_quota = 0;
48 $this->wsp_disk_quota = 0;
49 $this->ilObject($a_id,$a_call_by_reference);
50 }
ilObject($a_id=0, $a_reference=true)
Constructor @access public.

References ilObject\ilObject().

Referenced by createDefaultRole().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isAutoGenerated()

static ilObjRole::isAutoGenerated (   $a_role_id)
static

Definition at line 628 of file class.ilObjRole.php.

629 {
630 return substr(ilObject::_lookupTitle($a_role_id), 0, 3) == 'il_';
631 }
static _lookupTitle($a_id)
lookup object title

References ilObject\_lookupTitle().

Referenced by ilObjRoleGUI\initFormRoleProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isHandledObjectType()

ilObjRole::isHandledObjectType (   $a_filter,
  $a_exclusion_filter,
  $a_type 
)
protected

Check if type is filterer.

Parameters
array$a_filter
string$a_type
Returns

Definition at line 862 of file class.ilObjRole.php.

863 {
864 if(in_array($a_type,$a_exclusion_filter))
865 {
866 return false;
867 }
868
869 if(in_array('all',$a_filter))
870 {
871 return true;
872 }
873 return in_array($a_type,$a_filter);
874 }

Referenced by adjustPermissions().

+ Here is the caller graph for this function:

◆ read()

ilObjRole::read ( )

loads "role" from database @access private

Definition at line 158 of file class.ilObjRole.php.

159 {
160 global $ilDB;
161
162 $query = "SELECT * FROM role_data WHERE role_id= ".$ilDB->quote($this->id,'integer')." ";
163
164 $res = $ilDB->query($query);
165 if ($res->numRows() > 0)
166 {
167 $data = $ilDB->fetchAssoc($res);
168
169 // fill member vars in one shot
170 $this->assignData($data);
171 }
172 else
173 {
174 $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);
175 }
176
177 parent::read();
178 }
assignData($a_data)
loads a record "role" from array @access public
$data

References $data, $ilDB, $query, $res, and assignData().

Referenced by update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAllowRegister()

ilObjRole::setAllowRegister (   $a_allow_register)

set allow_register of role

@access public

Parameters
integer

Definition at line 251 of file class.ilObjRole.php.

252 {
253 if (empty($a_allow_register))
254 {
255 $a_allow_register = 0;
256 }
257
258 $this->allow_register = (int) $a_allow_register;
259 }

Referenced by assignData(), and ilObjRoleGUI\loadRoleProperties().

+ Here is the caller graph for this function:

◆ setDiskQuota()

ilObjRole::setDiskQuota (   $a_disk_quota)
Sets the minimal disk quota imposed by this role.

The minimal disk quota is specified in bytes.

@access     public
@param      integer 

Definition at line 280 of file class.ilObjRole.php.

281 {
282 $this->disk_quota = $a_disk_quota;
283 }

Referenced by assignData(), and ilObjRoleGUI\loadRoleProperties().

+ Here is the caller graph for this function:

◆ setParent()

ilObjRole::setParent (   $a_parent_ref)

set reference id of parent object this is neccessary for non RBAC protected objects!!!

@access public

Parameters
integerref_id of parent object

Definition at line 384 of file class.ilObjRole.php.

385 {
386 $this->parent = $a_parent_ref;
387 }

◆ setPersonalWorkspaceDiskQuota()

ilObjRole::setPersonalWorkspaceDiskQuota (   $a_disk_quota)
Sets the minimal personal workspace disk quota imposed by this role.

The minimal disk quota is specified in bytes.

@access     public
@param      integer 

Definition at line 308 of file class.ilObjRole.php.

309 {
310 $this->wsp_disk_quota = $a_disk_quota;
311 }

Referenced by assignData(), and ilObjRoleGUI\loadRoleProperties().

+ Here is the caller graph for this function:

◆ toggleAssignUsersStatus()

ilObjRole::toggleAssignUsersStatus (   $a_assign_users)

Definition at line 132 of file class.ilObjRole.php.

133 {
134 $this->assign_users = (int) $a_assign_users;
135 }

Referenced by assignData(), and ilObjRoleGUI\loadRoleProperties().

+ Here is the caller graph for this function:

◆ update()

ilObjRole::update ( )

updates a record "role" and write it into database @access public

Reimplemented from ilObject.

Definition at line 199 of file class.ilObjRole.php.

200 {
201 global $ilDB;
202
203 $query = "UPDATE role_data SET ".
204 "allow_register= ".$ilDB->quote($this->allow_register,'integer').", ".
205 "assign_users = ".$ilDB->quote($this->getAssignUsersStatus(),'integer').", ".
206 "disk_quota = ".$ilDB->quote($this->getDiskQuota(),'integer').", ".
207 "wsp_disk_quota = ".$ilDB->quote($this->getPersonalWorkspaceDiskQuota(),'integer')." ".
208 "WHERE role_id= ".$ilDB->quote($this->id,'integer')." ";
209 $res = $ilDB->manipulate($query);
210
211 parent::update();
212
213 $this->read();
214
215 return true;
216 }
read()
loads "role" from database @access private

References $ilDB, $query, $res, getAssignUsersStatus(), getDiskQuota(), getPersonalWorkspaceDiskQuota(), and read().

+ Here is the call graph for this function:

◆ updateOperationStack()

ilObjRole::updateOperationStack ( $a_stack,
  $a_node,
  $a_init = false 
)
protected

Update operation stack.

Parameters
array$a_stack
int$a_node
Returns

Definition at line 882 of file class.ilObjRole.php.

883 {
884 global $rbacreview;
885
886 $has_policies = null;
887 $policy_origin = null;
888
889 if($a_node == ROOT_FOLDER_ID)
890 {
891 $has_policies = TRUE;
892 $policy_origin = ROLE_FOLDER_ID;
893 }
894 else
895 {
896 $has_policies = $rbacreview->getLocalPolicies($a_node);
897 $policy_origin = $a_node;
898
899 if($a_init)
900 {
901 $parent_roles = $rbacreview->getParentRoleIds($a_node,false);
902 if($parent_roles[$this->getId()])
903 {
904 $a_stack[] = $rbacreview->getAllOperationsOfRole(
905 $this->getId(),
906 $parent_roles[$this->getId()]['parent']
907 );
908 }
909 return true;
910 }
911
912 }
913
914 if(!$has_policies)
915 {
916 return false;
917 }
918
919 $a_stack[] = $rbacreview->getAllOperationsOfRole(
920 $this->getId(),
921 $policy_origin
922 );
923 return true;
924 }

References ilObject\getId().

Referenced by adjustPermissions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updatePolicyStack()

ilObjRole::updatePolicyStack ( $a_stack,
  $a_node 
)
protected

Update policy stack.

Parameters
object$a_node
Returns

Definition at line 931 of file class.ilObjRole.php.

932 {
933 global $rbacreview;
934
935 $has_policies = null;
936 $policy_origin = null;
937
938 if($a_node == ROOT_FOLDER_ID)
939 {
940 $has_policies = TRUE;
941 $policy_origin = ROLE_FOLDER_ID;
942 }
943 else
944 {
945 $has_policies = $rbacreview->getLocalPolicies($a_node);
946 $policy_origin = $a_node;
947 }
948
949 if(!$has_policies)
950 {
951 return false;
952 }
953
954 $a_stack[] = $policy_origin;
955 return true;
956 }

Referenced by adjustPermissions().

+ Here is the caller graph for this function:

◆ validate()

ilObjRole::validate ( )

Validate role data.

Returns
bool

Definition at line 111 of file class.ilObjRole.php.

112 {
113 global $ilErr;
114
115 if(substr($this->getTitle(),0,3) == 'il_')
116 {
117 $ilErr->setMessage('msg_role_reserved_prefix');
118 return false;
119 }
120 return true;
121 }

References $ilErr, and ilObject\getTitle().

+ Here is the call graph for this function:

Field Documentation

◆ $allow_register

ilObjRole::$allow_register

Definition at line 31 of file class.ilObjRole.php.

◆ $assign_users

ilObjRole::$assign_users

Definition at line 32 of file class.ilObjRole.php.

◆ $disk_quota

ilObjRole::$disk_quota

The disk quota in bytes.

Definition at line 35 of file class.ilObjRole.php.

Referenced by getDiskQuota().

◆ $parent

ilObjRole::$parent

Definition at line 29 of file class.ilObjRole.php.

Referenced by getParent().

◆ $wsp_disk_quota

ilObjRole::$wsp_disk_quota

Definition at line 36 of file class.ilObjRole.php.

Referenced by getPersonalWorkspaceDiskQuota().

◆ MODE_PROTECTED_DELETE_LOCAL_POLICIES

◆ MODE_PROTECTED_KEEP_LOCAL_POLICIES

const ilObjRole::MODE_PROTECTED_KEEP_LOCAL_POLICIES = 2

◆ MODE_UNPROTECTED_DELETE_LOCAL_POLICIES

◆ MODE_UNPROTECTED_KEEP_LOCAL_POLICIES

const ilObjRole::MODE_UNPROTECTED_KEEP_LOCAL_POLICIES = 4

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