ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilObjOrgUnitGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
5
29{
30 const TAB_POSITIONS = 'positions';
31 const TAB_ORGU_TYPES = 'orgu_types';
32 const TAB_SETTINGS = "settings";
33 const TAB_STAFF = 'orgu_staff';
34 const TAB_GLOBAL_SETTINGS = 'global_settings';
35 const TAB_EXPORT = 'export';
36 const TAB_VIEW_CONTENT = 'view_content';
40 public $ctrl;
44 public $tpl;
48 public $tabs_gui;
52 protected $ilAccess;
56 protected $toolbar;
60 protected $ilLocator;
64 public $tree;
68 public $object;
72 protected $ilLog;
76 public $ilias;
77 const CMD_EDIT_SETTINGS = 'editSettings';
78
79
80 public function __construct()
81 {
82 global $DIC;
83 $tpl = $DIC['tpl'];
84 $ilCtrl = $DIC['ilCtrl'];
85 $ilAccess = $DIC['ilAccess'];
86 $ilToolbar = $DIC['ilToolbar'];
87 $ilLocator = $DIC['ilLocator'];
88 $tree = $DIC['tree'];
89 $lng = $DIC['lng'];
90 $ilLog = $DIC['ilLog'];
91 $ilias = $DIC['ilias'];
92 parent::__construct(array(), $_GET["ref_id"], true, false);
93
94 $this->tpl = $tpl;
95 $this->ctrl = $ilCtrl;
96 $this->ilAccess = $ilAccess;
97 $this->ilLocator = $ilLocator;
98 $this->tree = $tree;
99 $this->toolbar = $ilToolbar;
100 $this->ilLog = $ilLog;
101 $this->ilias = $ilias;
102 $this->type = 'orgu';
103
104 $lng->loadLanguageModule("orgu");
105 $this->tpl->addCss('./Modules/OrgUnit/templates/default/orgu.css');
106
107 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(OrgUnitToolProvider::SHOW_ORGU_TREE, true);
108 }
109
115 public function executeCommand()
116 {
117 $cmd = $this->ctrl->getCmd();
118 $next_class = $this->ctrl->getNextClass($this);
119 parent::prepareOutput();
120
121 switch ($next_class) {
122 case 'ilorgunitglobalsettingsgui':
123 $this->tabs_gui->activateTab(self::TAB_GLOBAL_SETTINGS);
124 $global_settings = new ilOrgUnitGlobalSettingsGUI();
125 $this->ctrl->forwardCommand($global_settings);
126 break;
127 case "illocalusergui":
129 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
130 $this->ctrl->redirect($this);
131 }
132 $this->tabs_gui->activateTab('administrate_users');
133 $ilLocalUserGUI = new ilLocalUserGUI($this);
134 $this->ctrl->forwardCommand($ilLocalUserGUI);
135 break;
136 case "ilorgunitsimpleimportgui":
137 $this->tabs_gui->activateTab("view");
138 $this->setContentSubTabs();
139 $this->tabs_gui->setSubTabActive('import');
140 $ilOrgUnitSimpleImportGUI = new ilOrgUnitSimpleImportGUI($this);
141 $this->ctrl->forwardCommand($ilOrgUnitSimpleImportGUI);
142 break;
143 case "ilorgunitsimpleuserimportgui":
144 $ilOrgUnitSimpleUserImportGUI = new ilOrgUnitSimpleUserImportGUI($this);
145 $this->ctrl->forwardCommand($ilOrgUnitSimpleUserImportGUI);
146 break;
147 case "ilorgunitstaffgui":
148 case "ilrepositorysearchgui":
149 $this->tabs_gui->activateTab(self::TAB_STAFF);
150 $ilOrgUnitStaffGUI = new ilOrgUnitStaffGUI($this);
151 $this->ctrl->forwardCommand($ilOrgUnitStaffGUI);
152 break;
153 case "ilobjusergui":
154 switch ($cmd) {
155 case "create":
156 $ilObjUserGUI = new ilObjUserGUI("", (int) $_GET['ref_id'], true, false);
157 $ilObjUserGUI->setCreationMode(true);
158 $this->ctrl->forwardCommand($ilObjUserGUI);
159 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
160 break;
161 case "save":
162 $ilObjUserGUI = new ilObjUserGUI("", $_GET['ref_id'], true, false);
163 $ilObjUserGUI->setCreationMode(true);
164 $this->ctrl->forwardCommand($ilObjUserGUI);
165 $this->tabs_gui->clearTargets();
166 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
167 break;
168 case "view":
169 case "update":
170 $ilObjUserGUI = new ilObjUserGUI("", (int) $_GET['obj_id'], false, false);
171 $ilObjUserGUI->setCreationMode(false);
172 $this->ctrl->forwardCommand($ilObjUserGUI);
173 $this->tabs_gui->clearTargets();
174 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
175 break;
176 case "cancel":
177 $this->ctrl->redirectByClass("illocalusergui", "index");
178 break;
179 }
180 break;
181 case "ilobjuserfoldergui":
182 switch ($cmd) {
183 case "view":
184 $this->ctrl->redirectByClass("illocalusergui", "index");
185 break;
186 default:
187 $ilObjUserFolderGUI = new ilObjUserFolderGUI("", (int) $_GET['ref_id'], true, false);
188 $ilObjUserFolderGUI->setUserOwnerId((int) $_GET['ref_id']);
189 $ilObjUserFolderGUI->setCreationMode(true);
190 $this->ctrl->forwardCommand($ilObjUserFolderGUI);
191 $this->tabs_gui->clearTargets();
192 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTargetByClass("illocalusergui", 'index'));
193 break;
194 }
195 break;
196 case "ilinfoscreengui":
197 $this->tabs_gui->activateTab("info_short");
198 if (!$this->ilAccess->checkAccess("read", "", $this->ref_id) and !$this->ilAccess->checkAccess("visible", "", $this->ref_id)) {
199 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->MESSAGE);
200 }
201 $info = new ilInfoScreenGUI($this);
202 $amd_gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_INFO, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
203 $amd_gui->setInfoObject($info);
204 $amd_gui->parse();
205 $this->ctrl->forwardCommand($info);
206 break;
207 case 'ilpermissiongui':
208 $this->tabs_gui->activateTab('perm_settings');
209 $ilPermissionGUI = new ilPermissionGUI($this);
210 $this->ctrl->forwardCommand($ilPermissionGUI);
211 break;
212 case "ilcommonactiondispatchergui":
214 $this->ctrl->forwardCommand($gui);
215 break;
216 case 'illearningprogressgui':
217 case 'illplistofprogressgui':
218 $this->tabs_gui->clearTargets();
219 $this->tabs_gui->setBackTarget($this->lng->txt('backto_staff'), $this->ctrl->getLinkTargetByClass(ilOrgUnitUserAssignmentGUI::class, ilOrgUnitUserAssignmentGUI::CMD_INDEX));
220 if (!ilObjOrgUnitAccess::_checkAccessToUserLearningProgress($this->object->getRefid(), $_GET['obj_id'])) {
221 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
222 $this->ctrl->redirectByClass("ilOrgUnitStaffGUI", "showStaff");
223 }
224 $this->ctrl->saveParameterByClass("illearningprogressgui", "obj_id");
225 $this->ctrl->saveParameterByClass("illearningprogressgui", "recursive");
227 $this->ctrl->forwardCommand($new_gui);
228 break;
229 case 'ilorgunitexportgui':
230 if (!ilObjOrgUnitAccess::_checkAccessExport((int) $_GET['ref_id'])) {
231 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
232 $this->ctrl->redirect($this);
233 }
234 $this->tabs_gui->activateTab(self::TAB_EXPORT);;
235 $ilOrgUnitExportGUI = new ilOrgUnitExportGUI($this);
236 $ilOrgUnitExportGUI->addFormat('xml');
237 $this->ctrl->forwardCommand($ilOrgUnitExportGUI);
238 break;
239 case strtolower(ilTranslationGUI::class):
240 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
241 $this->setSubTabsSettings('edit_translations');
242 $ilTranslationGui = new ilTranslationGUI($this);
243 $this->ctrl->forwardCommand($ilTranslationGui);
244 break;
245 case strtolower(ilOrgUnitTypeGUI::class):
246 $this->tabs_gui->activateTab(self::TAB_ORGU_TYPES);
247 $types_gui = new ilOrgUnitTypeGUI($this);
248 $this->ctrl->forwardCommand($types_gui);
249 break;
250 case strtolower(ilOrgUnitPositionGUI::class):
251 $this->tabs_gui->activateTab(self::TAB_POSITIONS);
252 $types_gui = new ilOrgUnitPositionGUI($this);
253 $this->ctrl->forwardCommand($types_gui);
254 break;
255 case strtolower(ilOrgUnitUserAssignmentGUI::class):
256 $this->tabs_gui->activateTab(self::TAB_STAFF);
257 $ilOrgUnitUserAssignmentGUI = new ilOrgUnitUserAssignmentGUI();
258 $this->ctrl->forwardCommand($ilOrgUnitUserAssignmentGUI);
259 break;
260 case strtolower(ilPropertyFormGUI::class):
261 /*
262 * Only used for async loading of the repository tree in custom md
263 * internal links (see #24875). This is necessary since OrgUnits don't
264 * use ilObjectMetaDataGUI.
265 */
266 $form = $this->initAdvancedSettingsForm();
267 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
268 $gui->setPropertyForm($form);
269 $gui->parse();
270 $this->ctrl->forwardCommand($form);
271 break;
272 default:
273 $this->tabs_gui->activateTab(self::TAB_VIEW_CONTENT);
274 switch ($cmd) {
275 case '':
276 case 'view':
277 case 'render':
278 case 'cancel':
279 case 'cancelDelete':
280 $this->view();
281 break;
282 case 'performPaste':
283 case 'paste':
284 $this->performPaste();
285 break;
286 case 'performPasteIntoMultipleObjects':
288 break;
289 case 'keepObjectsInClipboard':
291 break;
292 case 'create':
293 parent::createObject();
294 break;
295 case 'save':
296 parent::saveObject();
297 break;
298 case 'delete':
299 $this->tabs_gui->clearTargets();
300 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
301 $this->deleteObject();
302 break;
303 case 'confirmedDelete':
304 $this->confirmedDeleteObject();
305 break;
306 case 'cut':
307 $this->tabs_gui->clearTargets();
308 $this->tabs_gui->setBackTarget($this->lng->txt("back"), $this->ctrl->getLinkTarget($this));
309 parent::cutObject();
310 break;
311 case 'clear':
312 parent::clearObject();
313 break;
314 case 'enableAdministrationPanel':
315 parent::enableAdministrationPanelObject();
316 break;
317 case 'disableAdministrationPanel':
318 parent::disableAdministrationPanelObject();
319 break;
320 case 'getAsynchItemList':
321 parent::getAsynchItemListObject();
322 break;
324 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
325 $this->setSubTabsSettings('edit_settings');
326 $this->editSettings();
327 break;
328 case 'updateSettings':
329 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
330 $this->setSubTabsSettings('edit_settings');
331 $this->updateSettings();
332 break;
333 case 'editAdvancedSettings':
334 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
335 $this->setSubTabsSettings('edit_advanced_settings');
336 $this->editAdvancedSettings();
337 break;
338 case 'updateAdvancedSettings':
339 $this->tabs_gui->activateTab(self::TAB_SETTINGS);
340 $this->setSubTabsSettings('edit_advanced_settings');
341 $this->updateAdvancedSettings();
342 break;
343 case 'importFile':
344 $this->importFileObject();
345 break;
346 case 'cancelMoveLink':
347 $this->cancelMoveLinkObject();
348 break;
349 }
350 break;
351 }
352 }
353
354
358 protected function afterSave(ilObject $a_new_object)
359 {
360 ilUtil::sendSuccess($this->lng->txt("object_added"), true);
361 $this->ctrl->setParameter($this, "ref_id", $a_new_object->getRefId());
362 ilUtil::redirect($this->getReturnLocation("save", $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS, "", false, false)));
363 }
364
365
366 public function view()
367 {
368 if (!$this->rbacsystem->checkAccess("read", $_GET["ref_id"])) {
369 if ($this->rbacsystem->checkAccess("visible", $_GET["ref_id"])) {
370 ilUtil::sendFailure($this->lng->txt("msg_no_perm_read"));
371 $this->ctrl->redirectByClass('ilinfoscreengui', '');
372 }
373
374 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"), $this->ilias->error_obj->WARNING);
375 }
376
377 parent::renderObject();
378 $this->tabs_gui->activateTab(self::TAB_VIEW_CONTENT);
379 $this->tabs_gui->removeSubTab("page_editor");
380 $this->tabs_gui->removeSubTab("ordering"); // Mantis 0014728
381 }
382
383
394 protected function initCreationForms($a_new_type)
395 {
396 $forms = array(
397 self::CFORM_NEW => $this->initCreateForm($a_new_type),
398 self::CFORM_IMPORT => $this->initImportForm($a_new_type),
399 );
400
401 return $forms;
402 }
403
404
405 public function showPossibleSubObjects()
406 {
407 $gui = new ilObjectAddNewItemGUI($this->object->getRefId());
409 //$gui->setCreationUrl("ilias.php?ref_id=" . $_GET["ref_id"] . "&admin_mode=settings&cmd=create&baseClass=ilAdministrationGUI&cmdClass=ilobjorgunitgui");
410 $gui->setCreationUrl($this->ctrl->getLinkTarget($this, 'create'));
411 $gui->render();
412 }
413
414
418 public function setTitleAndDescription()
419 {
420 # all possible create permissions
421 parent::setTitleAndDescription();
422 if ($this->object->getTitle() == "__OrgUnitAdministration") {
423 $this->tpl->setTitle($this->lng->txt("objs_orgu"));
424 $this->tpl->setDescription($this->lng->txt("objs_orgu"));
425 }
426
427 // Check for custom icon of type
428 if ($this->ilias->getSetting('custom_icons')) {
429 $icons_cache = ilObjOrgUnit::getIconsCache();
430 $icon_file = (isset($icons_cache[$this->object->getId()])) ? $icons_cache[$this->object->getId()] : '';
431 if ($icon_file) {
432 $this->tpl->setTitleIcon($icon_file, $this->lng->txt("obj_" . $this->object->getType()));
433 }
434 }
435 }
436
437
441 protected function addAdminLocatorItems($a_do_not_add_object = false)
442 {
443 $path = $this->tree->getPathFull($_GET["ref_id"], ilObjOrgUnit::getRootOrgRefId());
444 // add item for each node on path
445 foreach ((array) $path as $key => $row) {
446 if ($row["title"] == "__OrgUnitAdministration") {
447 $row["title"] = $this->lng->txt("objs_orgu");
448 }
449 $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $row["child"]);
450 $this->ilLocator->addItem($row["title"], $this->ctrl->getLinkTargetByClass("ilobjorgunitgui", "view"), ilFrameTargetInfo::_getFrame("MainContent"), $row["child"]);
451 $this->ctrl->setParameterByClass("ilobjorgunitgui", "ref_id", $_GET["ref_id"]);
452 }
453 }
454
455
460 protected function redirectToRefId($a_ref_id, $a_cmd = "")
461 {
462 $obj_type = ilObject::_lookupType($a_ref_id, true);
463 if ($obj_type != "orgu") {
464 parent::redirectToRefId($a_ref_id, $a_cmd);
465 } else {
466 $this->ctrl->setParameterByClass("ilObjOrgUnitGUI", "ref_id", $a_ref_id);
467 $this->ctrl->redirectByClass("ilObjOrgUnitGUI", $a_cmd);
468 }
469 }
470
471
475 public function getTabs()
476 {
477 $read_access_ref_id = $this->rbacsystem->checkAccess('visible,read', $this->object->getRefId());
478 if ($read_access_ref_id) {
479 $this->tabs_gui->addTab(self::TAB_VIEW_CONTENT, $this->lng->txt("content"), $this->ctrl->getLinkTarget($this, ""));
480 $this->tabs_gui->addTab("info_short", "Info", $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"));
481 }
482
483 // Tabs for OrgUnits exclusive root!
484 if ($this->object->getRefId() != ilObjOrgUnit::getRootOrgRefId()) {
485 if (ilObjOrgUnitAccess::_checkAccessStaff($this->object->getRefId())) {
486 // $this->tabs_gui->addTab('legacy_staff', 'legacy_staff', $this->ctrl->getLinkTargetByClass("ilOrgUnitStaffGUI", "showStaff"));
487 $this->tabs_gui->addTab(self::TAB_STAFF, $this->lng->txt(self::TAB_STAFF), $this->ctrl->getLinkTargetByClass(ilOrgUnitUserAssignmentGUI::class, ilOrgUnitUserAssignmentGUI::CMD_INDEX));
488 }
489 if (ilObjOrgUnitAccess::_checkAccessSettings($this->object->getRefId())) {
490 $this->tabs_gui->addTab(self::TAB_SETTINGS, $this->lng->txt(self::TAB_SETTINGS), $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS));
491 }
492 if (ilObjOrgUnitAccess::_checkAccessAdministrateUsers($this->object->getRefId())) {
493 $this->tabs_gui->addTab("administrate_users", $this->lng->txt("administrate_users"), $this->ctrl->getLinkTargetByClass("ilLocalUserGUI", "index"));
494 }
495 }
496
497 if (ilObjOrgUnitAccess::_checkAccessSettings($this->object->getRefId())) {
498 if ($this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
499 $this->tabs_gui->addTab(self::TAB_GLOBAL_SETTINGS, $this->lng->txt('settings'), $this->ctrl->getLinkTargetByClass(ilOrgUnitGlobalSettingsGUI::class));
500 }
501 $this->tabs_gui->addTab(self::TAB_EXPORT, $this->lng->txt(self::TAB_EXPORT), $this->ctrl->getLinkTargetByClass(ilOrgUnitExportGUI::class));
502
503 // Add OrgUnit types and positions tabs
504 if ($this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
505 $this->tabs_gui->addTab(self::TAB_ORGU_TYPES, $this->lng->txt(self::TAB_ORGU_TYPES), $this->ctrl->getLinkTargetByClass(ilOrgUnitTypeGUI::class));
506 $this->tabs_gui->addTab(self::TAB_POSITIONS, $this->lng->txt(self::TAB_POSITIONS), $this->ctrl->getLinkTargetByClass(ilOrgUnitPositionGUI::class));
507 }
508 }
509 parent::getTabs();
510 }
511
512
516 protected function setSubTabsSettings($active_tab_id)
517 {
518 $next_class = $this->ctrl->getNextClass($this);
519 $cmd = $this->ctrl->getCmd();
520 $this->tabs_gui->addSubTab('edit_settings', $this->lng->txt(self::TAB_SETTINGS), $this->ctrl->getLinkTarget($this, self::CMD_EDIT_SETTINGS));
521 $this->tabs_gui->addSubTab("edit_translations", $this->lng->txt("obj_multilinguality"), $this->ctrl->getLinkTargetByClass("iltranslationgui", "editTranslations"));
522
523 $ilOrgUnitType = $this->object->getOrgUnitType();
524 if ($ilOrgUnitType instanceof ilOrgUnitType) {
525 if (count($ilOrgUnitType->getAssignedAdvancedMDRecords(true))) {
526 $this->tabs_gui->addSubTab('edit_advanced_settings', $this->lng->txt('orgu_adv_settings'), $this->ctrl->getLinkTarget($this, 'editAdvancedSettings'));
527 }
528 }
529
530 $this->tabs_gui->setSubTabActive($active_tab_id);
531 switch ($next_class) {
532 case 'iltranslationgui':
533 $this->tabs_gui->setSubTabActive("edit_translations");
534 break;
535 case '':
536 switch ($cmd) {
538 $this->tabs_gui->setSubTabActive('edit_settings');
539 break;
540 case 'editAdvancedSettings':
541 case 'updateAdvancedSettings':
542 $this->tabs_gui->setSubTabActive('edit_advanced_settings');
543 break;
544 }
545 break;
546 }
547
548 return;
549 }
550
551
555 public function setContentSubTabs()
556 {
558 //only display the import tab at the first level
559 if ($this->rbacsystem->checkAccess("create_orgu", $_GET["ref_id"]) and $this->object->getRefId() == ilObjOrgUnit::getRootOrgRefId()) {
560 $this->tabs_gui->addSubTab("import", $this->lng->txt("import"), $this->ctrl->getLinkTargetByClass("ilOrgUnitSimpleImportGUI", "chooseImport"));
561 }
562 }
563
564
570 protected function initAdvancedSettingsForm()
571 {
572 $form = new ilPropertyFormGUI();
573 $form->setFormAction($this->ctrl->getFormAction($this));
574 $form->addCommandButton('updateAdvancedSettings', $this->lng->txt('save'));
575 $form->addCommandButton(self::CMD_EDIT_SETTINGS, $this->lng->txt('cancel'));
576
577 return $form;
578 }
579
580
584 protected function editAdvancedSettings()
585 {
586 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
587 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
588 $this->ctrl->redirect($this);
589 }
590 $form = $this->initAdvancedSettingsForm();
591 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
592 $gui->setPropertyForm($form);
593 $gui->parse();
594 $this->tpl->setContent($form->getHTML());
595 }
596
597
601 protected function updateAdvancedSettings()
602 {
603 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
604 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
605 $this->ctrl->redirect($this);
606 }
607 $form = $this->initAdvancedSettingsForm();
608 $gui = new ilAdvancedMDRecordGUI(ilAdvancedMDRecordGUI::MODE_EDITOR, 'orgu', $this->object->getId(), 'orgu_type', $this->object->getOrgUnitTypeId());
609 $gui->setPropertyForm($form);
610 $form->checkInput();
611 $gui->parse();
612 if ($gui->importEditFormPostValues()) {
613 $gui->writeEditForm();
614 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
615 $this->ctrl->redirect($this, 'editAdvancedSettings');
616 } else {
617 $this->tpl->setContent($form->getHTML());
618 }
619 }
620
621
622 public function editSettings()
623 {
624 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
625 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
626 $this->ctrl->redirect($this);
627 }
628 $form = new ilObjOrgUnitSettingsFormGUI($this, $this->object);
629 $this->tpl->setContent($form->getHTML());
630 }
631
632
633 public function updateSettings()
634 {
635 if (!$this->ilAccess->checkAccess("write", "", $this->ref_id)) {
636 ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
637 $this->ctrl->redirect($this);
638 }
639 $form = new ilObjOrgUnitSettingsFormGUI($this, $this->object);
640 if ($form->saveObject()) {
641 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
642 $this->ctrl->redirect($this, self::CMD_EDIT_SETTINGS);
643 } else {
644 $this->tpl->setContent($form->getHTML());
645 }
646 }
647
648
652 public function showAdministrationPanel()
653 {
654 parent::showAdministrationPanel();
655 global $DIC;
656 //an ugly encapsulation violation in order to remove the "verknüpfen"/"link" and copy button.
658 if (!$toolbar = $DIC->ui()->mainTemplate()->admin_panel_commands_toolbar) {
659 return;
660 }
661 if (is_array($toolbar->items)) {
662 foreach ($toolbar->items as $key => $item) {
663 if ($item["cmd"] == "link" || $item["cmd"] == "copy"
664 || $item["cmd"] == "download"
665 ) {
666 unset($toolbar->items[$key]);
667 }
668 }
669 }
670 }
671
672
673 public static function _goto($ref_id)
674 {
675 global $DIC;
676 $ilCtrl = $DIC['ilCtrl'];
677 $ilCtrl->initBaseClass("ilAdministrationGUI");
678 $ilCtrl->setParameterByClass("ilObjOrgUnitGUI", "ref_id", $ref_id);
679 $ilCtrl->setParameterByClass("ilObjOrgUnitGUI", "admin_mode", self::TAB_SETTINGS);
680 $ilCtrl->setParameterByClass("IlObjPluginDispatchGUI", "admin_mode", self::TAB_SETTINGS);
681 $ilCtrl->redirectByClass(array("ilAdministrationGUI", "ilObjOrgUnitGUI"), "view");
682 }
683
684
685 protected function getTreeSelectorGUI($cmd)
686 {
687 global $DIC;
688 $tree = $DIC['tree'];
689 $explorer = new ilOrgUnitExplorerGUI("rep_exp_sel", $this, "showPasteTree", $tree);
690 $explorer->setAjax(false);
691 $explorer->setSelectMode('nodes[]', false);
692
693 return $explorer;
694 }
695
696
700 public function getAdminTabs()
701 {
702 $this->getTabs();
703 }
704
705
709 public function performPaste()
710 {
711 if (!in_array($_SESSION['clipboard']['cmd'], array('cut'))) {
712 $message = __METHOD__ . ": cmd was not 'cut' ; may be a hack attempt!";
713 $this->ilias->raiseError($message, $this->ilias->error_obj->WARNING);
714 }
715 if ($_SESSION['clipboard']['cmd'] == 'cut') {
716 if (isset($_GET['ref_id']) && (int) $_GET['ref_id']) {
717 $this->pasteObject();
718 }
719 }
720 $this->ctrl->returnToParent($this);
721 }
722
723
727 public function doUserAutoCompleteObject()
728 {
729 }
730
731 //
732 // METHODS for local user administration.
733 //
738 public function &__initTableGUI()
739 {
740 return parent::__initTableGUI();
741 }
742
747 public function confirmedDeleteObject()
748 {
749 global $DIC;
750
751 $ids = filter_input(INPUT_POST, 'id', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
752 if (count($ids) > 0) {
754 ilUtil::sendSuccess($DIC->language()->txt("info_deleted"), true);
755 }
756 $this->ctrl->returnToParent($this);
757 }
758
759
766 public function deleteObject($a_error = false)
767 {
768 $ilCtrl = $this->ctrl;
769 require_once("./Services/Repository/classes/class.ilRepUtilGUI.php");
770 $ru = new ilRepUtilGUI($this);
771
772 $arr_ref_ids = [];
773 //Delete via Manage (more than one)
774 if (is_array($_POST['id']) && count($_POST['id']) > 0) {
775 $arr_ref_ids = $_POST['id'];
776 } elseif ($_GET['item_ref_id'] > 0) {
777 $arr_ref_ids = [$_GET['item_ref_id']];
778 }
779
780 if (!$ru->showDeleteConfirmation($arr_ref_ids, false)) {
781 $ilCtrl->returnToParent($this);
782 }
783 }
784
785
790 public function __setTableGUIBasicData(&$tbl, &$result_set, $a_from = "")
791 {
792 return parent::__setTableGUIBasicData($tbl, $result_set, $a_from);
793 }
794
795
796 public function cancelMoveLinkObject()
797 {
798 global $DIC;
799 $parent_ref_id = $_SESSION["clipboard"]["parent"];
800 unset($_SESSION['clipboard']);
801 $DIC->ctrl()->setParameter($this, 'ref_id', $parent_ref_id);
802 $DIC->ctrl()->redirect($this);
803 }
804}
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
Class ilAccessHandler.
checkAccess($a_permission, $a_cmd, $a_ref_id, $a_type="", $a_obj_id="", $a_tree_id="")
check access for an object (provide $a_type and $a_obj_id if available for better performance)
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilContainerGUI.
addStandardContainerSubTabs($a_include_view=true)
Add standar container subtabs for view, manage, oderdering and text/media editor link.
pasteObject()
paste object from clipboard to current place Depending on the chosen command the object(s) are linked...
keepObjectsInClipboardObject()
Keep objects in the clipboard.
showAdministrationPanel()
show administration panel
static _getFrame($a_class, $a_type='')
Get content frame name.
Class ilInfoScreenGUI.
Class ilObjUserTrackingGUI.
Class ilLocalUserGUI.
logging
Definition: class.ilLog.php:19
static _checkAccessToUserLearningProgress($ref_id, $usr_id)
static _checkAccessStaff($ref_id)
static _checkAccessExport(int $ref_id)
static _checkAccessSettings(int $ref_id)
static _checkAccessAdministrateUsers($ref_id)
Class ilObjOrgUnit GUI class.
confirmedDeleteObject()
confirmed deletion of org units -> org units are deleted immediately, without putting them to the tra...
__setTableGUIBasicData(&$tbl, &$result_set, $a_from="")
redirectToRefId($a_ref_id, $a_cmd="")
afterSave(ilObject $a_new_object)
@inheritDoc
updateAdvancedSettings()
Update Advanced Metadata.
setContentSubTabs()
Set content sub tabs.
setTitleAndDescription()
called by prepare output
editAdvancedSettings()
Edit Advanced Metadata.
cancelMoveLinkObject()
Cancel move|link empty clipboard and return to parent.
addAdminLocatorItems($a_do_not_add_object=false)
showPossibleSubObjects()
show possible sub objects selection list
performPaste()
@description Prepare $_POST for the generic method performPasteIntoMultipleObjectsObject
setSubTabsSettings($active_tab_id)
deleteObject($a_error=false)
Display deletion confirmation screen for Org Units.
initCreationForms($a_new_type)
initCreationForms
initAdvancedSettingsForm()
Initialize the form for editing advanced meta data.
Class ilObjOrgUnitSettingsFormGUI.
static getRootOrgRefId()
Class ilObjUserFolderGUI.
Class ilObjUserGUI.
Render add new item selector.
initImportForm($a_new_type)
Init object import form.
importFileObject($parent_id=null, $a_catch_errors=true)
Import.
initCreateForm($a_new_type)
Init object creation form.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
Class ilObject Basic functions for all objects.
getRefId()
get reference id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
Class ilOrgUnitExplorerGUI.
Class ilOrgUnitExportGUI.
Class ilOrgUnitPositionGUI.
Class ilOrgUnitSimpleImportGUI.
Class ilOrgUnitSimpleUserImportGUI.
Class ilOrgUnitStaffGUI.
Class ilOrgUnitTypeGUI.
Class ilOrgUnitType.
Class ilOrgUnitUserAssignmentGUI.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
Repository GUI Utilities.
static removeObjectsFromSystem($a_ref_ids, $a_from_recovery_folder=false)
remove objects from trash bin and all entries therefore every object needs a specific deleteObject() ...
Class ilTranslationGUI.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $DIC
Definition: goto.php:24
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
redirection script todo: (a better solution should control the processing via a xml file)
$message
Definition: xapiexit.php:14