/** * @return bool */ protected function assignOrgunits() { global $ilDB, $rbacadmin; if (!count($this->getAssignedOrgus())) { return false; } foreach ($this->getAssignedOrgus() as $orgu_obj_id) { if (ilObject2::_lookupType($orgu_obj_id) != 'orgu') { continue; } $usr_id = $this->getUsrObject()->getId(); $orgu_ref_ids = ilObjOrgUnit::_getAllReferences($orgu_obj_id); $orgu_ref_id = array_shift(array_values($orgu_ref_ids)); if (!$orgu_ref_id) { continue; } $q = "SELECT obj_id, title FROM object_data WHERE title LIKE 'il_orgu_employee_" . $ilDB->quote($orgu_ref_id, "integer") . "'"; $set = $ilDB->query($q); $row = $set->fetchRow(DB_FETCHMODE_OBJECT); $employee_role = $row->obj_id; $rbacadmin->assignUser($employee_role, $usr_id); } return true; }