Public Member Functions

ilObjRoleFolder Class Reference
[Services/AccessControl]

Class ilObjRoleFolder. More...

Inheritance diagram for ilObjRoleFolder:
Collaboration diagram for ilObjRoleFolder:

Public Member Functions

 ilObjRoleFolder ($a_id=0, $a_call_by_reference=true)
 Constructor public.
 read ($a_force_db=false)
 read object data from db into object
 ilClone ($a_parent_ref)
 copy all properties and subobjects of an rolefolder.
 delete ()
 delete rolefolder and all related data
 createRole ($a_title, $a_desc, $a_import_id=0)
 creates a local role in current rolefolder (this object)
 purge ()
 checks if rolefolder contains any roles.
 isDeleted ()
 checks if role folder is in trash private

Detailed Description

Class ilObjRoleFolder.

Author:
Stefan Meyer <smeyer@databay.de>
Id:
class.ilObjRoleFolder.php 11710 2006-07-30 13:18:15Z akill

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


Member Function Documentation

ilObjRoleFolder::createRole ( a_title,
a_desc,
a_import_id = 0 
)

creates a local role in current rolefolder (this object)

public

Parameters:
string title
string description
Returns:
object role object

Definition at line 125 of file class.ilObjRoleFolder.php.

References $rbacadmin, $rbacreview, ilObject::getRefId(), and ilUtil::stripSlashes().

        {
                global $rbacadmin, $rbacreview;
                
                // check if role title is unique
                if ($rbacreview->roleExists($a_title))
                {
                        $this->ilias->raiseError($this->lng->txt("msg_role_exists1")." '".ilUtil::stripSlashes($a_title)."' ".
                                                                         $this->lng->txt("msg_role_exists2"),$this->ilias->error_obj->MESSAGE);
                }               

                include_once ("classes/class.ilObjRole.php");
                $roleObj = new ilObjRole();
                $roleObj->setTitle($a_title);
                $roleObj->setDescription($a_desc);
//echo "aaa-1-";
                if ($a_import_id != "")
                {
//echo "aaa-2-".$a_import_id."-";
                        $roleObj->setImportId($a_import_id);
                }
                $roleObj->create();
                        
                // ...and put the role into local role folder...
                $rbacadmin->assignRoleToFolder($roleObj->getId(),$this->getRefId(),"y");

                return $roleObj;
        }

Here is the call graph for this function:

ilObjRoleFolder::delete (  ) 

delete rolefolder and all related data

public

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

Reimplemented from ilObject.

Definition at line 91 of file class.ilObjRoleFolder.php.

References $rbacreview, $role_id, and ilObject::getRefId().

        {               
                // always call parent delete function first!!
                if (!parent::delete())
                {
                        return false;
                }

                // put here rolefolder specific stuff
                global $rbacreview;
                
                $roles = $rbacreview->getRolesOfRoleFolder($this->getRefId());
                
                // FIRST DELETE ALL LOCAL/BASE ROLES OF FOLDER
                foreach ($roles as $role_id)
                {
                        $roleObj =& $this->ilias->obj_factory->getInstanceByObjId($role_id);
                        $roleObj->setParent($this->getRefId());
                        $roleObj->delete();
                        unset($roleObj);
                }
                
                // always call parent delete function at the end!!
                return true;
        }

Here is the call graph for this function:

ilObjRoleFolder::ilClone ( a_parent_ref  ) 

copy all properties and subobjects of an rolefolder.

DISABLED public

Returns:
integer new ref id

Reimplemented from ilObject.

Definition at line 67 of file class.ilObjRoleFolder.php.

References $rbacadmin.

        {               
                // DISABLED
                // DO NOTHING ROLE FOLDERS AREN'T COPIED
                //      $new_ref_id = parent::ilClone($a_parent_ref);
                return false;

                global $rbacadmin;

                // always call parent ilClone function first!!
                $new_ref_id = parent::ilClone($a_parent_ref);
                
                // put here rolefolder specific stuff

                // ... and finally always return new reference ID!!
                return $new_ref_id;
        }

ilObjRoleFolder::ilObjRoleFolder ( a_id = 0,
a_call_by_reference = true 
)

Constructor public.

Parameters:
integer reference_id or object_id
boolean treat the id as reference_id (true) or object_id (false)

Definition at line 43 of file class.ilObjRoleFolder.php.

References ilObject::ilObject().

        {
                $this->type = "rolf";
                $this->ilObject($a_id,$a_call_by_reference);
        }

Here is the call graph for this function:

ilObjRoleFolder::isDeleted (  ) 

checks if role folder is in trash private

Returns:
integer return negative tree if in trash, otherwise false

Definition at line 192 of file class.ilObjRoleFolder.php.

References $q, and $row.

Referenced by purge().

        {
                $q = "SELECT tree FROM tree WHERE child='".$this->getRefId()."'";
                $row = $this->ilias->db->getRow($q);
                
                if ($row->tree < 0)
                {
                        return $row->tree;
                }
                
                return false;
        }

Here is the caller graph for this function:

ilObjRoleFolder::purge (  ) 

checks if rolefolder contains any roles.

if not the rolefolder is deleted public

Returns:
boolean true if rolefolder is deleted

Definition at line 159 of file class.ilObjRoleFolder.php.

References $rbacadmin, $rbacreview, $tree, ilObject::getRefId(), and isDeleted().

        {
                global $rbacreview, $rbacadmin, $tree;

                $local_roles = $rbacreview->getRolesOfRoleFolder($this->getRefId());
                        
                if (count($local_roles) == 0)
                {
                        $rbacadmin->revokePermission($this->getRefId());
                        
                        if ($tree_id = $this->isDeleted())
                        {
                                $deleted_tree = new ilTree ($tree_id,- (int) $tree_id);
                                $deleted_tree->deleteTree($deleted_tree->getNodeData($this->getRefId()));                               
                        }
                        else
                        {
                                $tree->deleteTree($tree->getNodeData($this->getRefId()));
                        }

                        $this->delete();
                        
                        return true;
                }
                
                return false;
        }

Here is the call graph for this function:

ilObjRoleFolder::read ( a_force_db = false  ) 

read object data from db into object

Parameters:
boolean public

Reimplemented from ilObject.

Definition at line 49 of file class.ilObjRoleFolder.php.

References ilObject::getId(), ilObject::setDescription(), and ilObject::setTitle().

        {
                parent::read();
                
                if ($this->getId() != ROLE_FOLDER_ID)
                {
                        $this->setDescription($this->lng->txt("obj_".$this->getType()."_local_desc").$this->getTitle().$this->getDescription());
                        $this->setTitle($this->lng->txt("obj_".$this->getType()."_local"));

                }
        }

Here is the call graph for this function:


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