ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5
ilDidacticTemplateLocalRoleAction Class Reference

represents a creation of local roles action More...

+ Inheritance diagram for ilDidacticTemplateLocalRoleAction:
+ Collaboration diagram for ilDidacticTemplateLocalRoleAction:

Public Member Functions

 __construct ($a_action_id=0)
 Constructor. More...
 
 getType ()
 Get action type. More...
 
 setRoleTemplateId ($a_role_template_id)
 Set role template id. More...
 
 getRoleTemplateId ()
 get role template id More...
 
 apply ()
 Apply action. More...
 
 revert ()
 Revert action. More...
 
 save ()
 Create new action. More...
 
 delete ()
 Delete ilDB $ilDB. More...
 
 toXml (ilXmlWriter $writer)
 Write xml of template action. More...
 
 read ()
 Read db entry ilDB $ilDB. More...
 
- Public Member Functions inherited from ilDidacticTemplateAction
 __construct ($action_id=0)
 Constructor. More...
 
 getActionId ()
 Get action id. More...
 
 setActionId ($a_action_id)
 Set action id. More...
 
 setType ($a_type_id)
 Set type id. More...
 
 setTemplateId ($a_id)
 Set template id. More...
 
 getTemplateId ()
 Get template id. More...
 
 setRefId ($a_ref_id)
 Set ref id of target object. More...
 
 getRefId ()
 Get ref id of target object. More...
 
 save ()
 write action to db overwrite for filling additional db fields More...
 
 delete ()
 Delete didactic template action overwrite for filling additional db fields. More...
 
 read ()
 ilDB $ilDB More...
 
 getType ()
 Get type of template. More...
 
 apply ()
 Apply action. More...
 
 revert ()
 Implement everthing that is necessary to revert a didactic template. More...
 
 __clone ()
 Clone method. More...
 
 toXml (ilXmlWriter $writer)
 Write xml for export. More...
 

Private Attributes

 $role_template_id = 0
 

Additional Inherited Members

- Data Fields inherited from ilDidacticTemplateAction
const TYPE_LOCAL_POLICY = 1
 
const TYPE_LOCAL_ROLE = 2
 
const TYPE_BLOCK_ROLE = 3
 
const FILTER_SOURCE_TITLE = 1
 
const FILTER_SOURCE_OBJ_ID = 2
 
const PATTERN_PARENT_TYPE = 'action'
 
- Protected Member Functions inherited from ilDidacticTemplateAction
 initSourceObject ()
 Init the source object. More...
 
 filterRoles (ilObject $source)
 Filter roles. More...
 

Detailed Description

represents a creation of local roles action

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

Definition at line 12 of file class.ilDidacticTemplateLocalRoleAction.php.

Constructor & Destructor Documentation

◆ __construct()

ilDidacticTemplateLocalRoleAction::__construct (   $a_action_id = 0)

Constructor.

Parameters
int$a_action_id

Definition at line 21 of file class.ilDidacticTemplateLocalRoleAction.php.

22  {
23  parent::__construct($a_action_id);
24  }

Member Function Documentation

◆ apply()

ilDidacticTemplateLocalRoleAction::apply ( )

Apply action.

Definition at line 56 of file class.ilDidacticTemplateLocalRoleAction.php.

References ilObject\_lookupDescription(), ilObject\_lookupTitle(), ilLoggerFactory\getLogger(), ilDidacticTemplateAction\getRefId(), getRoleTemplateId(), and ilDidacticTemplateAction\initSourceObject().

57  {
58  global $rbacreview, $rbacadmin;
59 
60  $source = $this->initSourceObject();
61 
62  // Check if role folder already exists
63 
64  // Create role
65 
66  include_once './Services/AccessControl/classes/class.ilObjRole.php';
67  $role = new ilObjRole();
68  $role->setTitle(ilObject::_lookupTitle($this->getRoleTemplateId()). '_' . $this->getRefId());
69  $role->setDescription(ilObject::_lookupDescription($this->getRoleTemplateId()));
70  $role->create();
71  $rbacadmin->assignRoleToFolder($role->getId(),$source->getRefId(),"y");
72 
73  ilLoggerFactory::getLogger('otpl')->info('Using rolt: '.$this->getRoleTemplateId().' with title "'.ilObject::_lookupTitle($this->getRoleTemplateId().'". '));
74 
75  // Copy template permissions
76 
77  ilLoggerFactory::getLogger('otpl')->debug(
78  'Copy role template permissions '.
79  'tpl_id: '.$this->getRoleTemplateId().' '.
80  'parent: '.ROLE_FOLDER_ID.' '.
81  'role_id: '.$role->getId().' '.
82  'role_parent: '.$source->getRefId()
83  );
84 
85 
86  $rbacadmin->copyRoleTemplatePermissions(
87  $this->getRoleTemplateId(),
88  ROLE_FOLDER_ID,
89  $source->getRefId(),
90  $role->getId(),
91  true
92  );
93 
94  // Set permissions
95  $ops = $rbacreview->getOperationsOfRole($role->getId(),$source->getType(),$source->getRefId());
96  $rbacadmin->grantPermission($role->getId(),$ops,$source->getRefId());
97 
98  return true;
99  }
Class ilObjRole.
static _lookupTitle($a_id)
lookup object title
static _lookupDescription($a_id)
lookup object description
getRefId()
Get ref id of target object.
initSourceObject()
Init the source object.
static getLogger($a_component_id)
Get component logger.
+ Here is the call graph for this function:

◆ delete()

ilDidacticTemplateLocalRoleAction::delete ( )

Delete ilDB $ilDB.

Returns
bool

Definition at line 135 of file class.ilDidacticTemplateLocalRoleAction.php.

References $ilDB, $query, and ilDidacticTemplateAction\getActionId().

136  {
137  global $ilDB;
138 
139  parent::delete();
140 
141  $query = 'DELETE FROM didactic_tpl_alr '.
142  'WHERE action_id = '.$ilDB->quote($this->getActionId(),'integer');
143  $ilDB->manipulate($query);
144 
145  return true;
146  }
global $ilDB
+ Here is the call graph for this function:

◆ getRoleTemplateId()

ilDidacticTemplateLocalRoleAction::getRoleTemplateId ( )

get role template id

Returns
int

Definition at line 48 of file class.ilDidacticTemplateLocalRoleAction.php.

References $role_template_id.

Referenced by apply(), save(), and toXml().

+ Here is the caller graph for this function:

◆ getType()

ilDidacticTemplateLocalRoleAction::getType ( )

Get action type.

Returns
int

Definition at line 30 of file class.ilDidacticTemplateLocalRoleAction.php.

31  {
32  return self::TYPE_LOCAL_ROLE;
33  }

◆ read()

ilDidacticTemplateLocalRoleAction::read ( )

Read db entry ilDB $ilDB.

Returns
bool

Definition at line 181 of file class.ilDidacticTemplateLocalRoleAction.php.

References $ilDB, $query, $res, $row, DB_FETCHMODE_OBJECT, ilDidacticTemplateAction\getActionId(), and setRoleTemplateId().

182  {
183  global $ilDB;
184 
185  parent::read();
186 
187  $query = 'SELECT * FROM didactic_tpl_alr '.
188  'WHERE action_id = '.$ilDB->quote($this->getActionId(),'integer');
189  $res = $ilDB->query($query);
190  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
191  {
192  $this->setRoleTemplateId($row->role_template_id);
193  }
194  return true;
195  }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
setRoleTemplateId($a_role_template_id)
Set role template id.
global $ilDB
+ Here is the call graph for this function:

◆ revert()

ilDidacticTemplateLocalRoleAction::revert ( )

Revert action.

Definition at line 104 of file class.ilDidacticTemplateLocalRoleAction.php.

105  {
106  // @todo: revert could delete the generated local role. But on the other hand all users
107  // assigned to this local role would be deassigned. E.g. if course or group membership
108  // is handled by didactic templates, all members would get lost.
109  }

◆ save()

ilDidacticTemplateLocalRoleAction::save ( )

Create new action.

Definition at line 114 of file class.ilDidacticTemplateLocalRoleAction.php.

References $ilDB, $query, $res, ilDidacticTemplateAction\getActionId(), and getRoleTemplateId().

115  {
116  global $ilDB;
117 
118  parent::save();
119 
120  $query = 'INSERT INTO didactic_tpl_alr (action_id,role_template_id) '.
121  'VALUES ( '.
122  $ilDB->quote($this->getActionId(),'integer').', '.
123  $ilDB->quote($this->getRoleTemplateId(),'integer').' '.
124  ') ';
125  $res = $ilDB->manipulate($query);
126 
127  return true;
128  }
global $ilDB
+ Here is the call graph for this function:

◆ setRoleTemplateId()

ilDidacticTemplateLocalRoleAction::setRoleTemplateId (   $a_role_template_id)

Set role template id.

Parameters
int$a_role_template_id

Definition at line 39 of file class.ilDidacticTemplateLocalRoleAction.php.

Referenced by read().

40  {
41  $this->role_template_id = $a_role_template_id;
42  }
+ Here is the caller graph for this function:

◆ toXml()

ilDidacticTemplateLocalRoleAction::toXml ( ilXmlWriter  $writer)

Write xml of template action.

Parameters
ilXmlWriter$writer

Definition at line 152 of file class.ilDidacticTemplateLocalRoleAction.php.

References ilObject\_lookupType(), ilXmlWriter\appendXML(), getRoleTemplateId(), ilRoleXmlExport\MODE_DTPL, ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

153  {
154  $writer->xmlStartTag('localRoleAction');
155 
156 
157  $il_id = 'il_'.IL_INST_ID.'_'.ilObject::_lookupType($this->getRoleTemplateId()).'_'.$this->getRoleTemplateId();
158 
159  $writer->xmlStartTag(
160  'roleTemplate',
161  array(
162  'id' => $il_id
163  )
164  );
165 
166  include_once './Services/AccessControl/classes/class.ilRoleXmlExport.php';
167  $exp = new ilRoleXmlExport();
168  $exp->setMode(ilRoleXmlExport::MODE_DTPL);
169  $exp->addRole($this->getRoleTemplateId(), ROLE_FOLDER_ID);
170  $exp->write();
171  $writer->appendXML($exp->xmlDumpMem(FALSE));
172  $writer->xmlEndTag('roleTemplate');
173  $writer->xmlEndTag('localRoleAction');
174  }
xmlStartTag($tag, $attrs=NULL, $empty=FALSE, $encode=TRUE, $escape=TRUE)
Writes a starttag.
xmlEndTag($tag)
Writes an endtag.
static _lookupType($a_id, $a_reference=false)
lookup object type
Xml export of roles and role templates.
appendXML($a_str)
append xml string to document
+ Here is the call graph for this function:

Field Documentation

◆ $role_template_id

ilDidacticTemplateLocalRoleAction::$role_template_id = 0
private

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

Referenced by getRoleTemplateId().


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