ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilAuthShibbolethSettingsGUI Class Reference

Class ilAuthShibbolethSettingsGUI. More...

+ Collaboration diagram for ilAuthShibbolethSettingsGUI:

Public Member Functions

 __construct ($a_auth_ref_id)
 
 executeCommand ()
 Execute Command. More...
 
 settings ()
 
 save ()
 
 addRoleAutoCompleteObject ()
 Add Member for autoComplete. More...
 

Protected Member Functions

 roleAssignment ()
 
 parseRulesTable ()
 
 confirmDeleteRules ()
 Confirm delete rules. More...
 
 deleteRules ()
 delete role assignment rule More...
 
 initFormRoleAssignment ($a_mode='default')
 
 addRoleAssignmentRule ()
 
 editRoleAssignment ()
 Edit Role Assignment. More...
 
 updateRoleAssignmentRule ()
 
 chooseRole ()
 
 saveRoleSelection ()
 
 setSubTabs ()
 

Private Member Functions

 loadRule ($a_rule_id=0)
 
 getRuleValues ()
 
 checkInput ($a_rule_id=0)
 
 showLocalRoleSelection ()
 
 hasActiveRoleAssignmentPlugins ()
 Check if plugin is active. More...
 
 prepareRoleSelect ($a_as_select=true)
 

Private Attributes

 $ctrl
 
 $ilias
 
 $tabs_gui
 
 $lng
 
 $tpl
 
 $ref_id
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilAuthShibbolethSettingsGUI::__construct (   $a_auth_ref_id)
Parameters

return \ilAuthShibbolethSettingsGUI

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

49 {
50 global $DIC;
51 $lng = $DIC['lng'];
52 $ilCtrl = $DIC['ilCtrl'];
53 $tpl = $DIC['tpl'];
54 $ilTabs = $DIC['ilTabs'];
55 $ilias = $DIC['ilias'];
56 $this->ctrl = $ilCtrl;
57 $this->tabs_gui = $ilTabs;
58 $this->lng = $lng;
59 $this->lng->loadLanguageModule('shib');
60 $this->ilias = $ilias;
61 $this->tpl = $tpl;
62 $this->ref_id = $a_auth_ref_id;
63 $this->obj_id = ilObject::_lookupObjId($this->ref_id);
64 }
static _lookupObjId($a_id)
global $ilCtrl
Definition: ilias.php:18
redirection script todo: (a better solution should control the processing via a xml file)
$DIC
Definition: xapitoken.php:46

References $DIC, $ilCtrl, $ilias, $lng, $tpl, and ilObject\_lookupObjId().

+ Here is the call graph for this function:

Member Function Documentation

◆ addRoleAssignmentRule()

ilAuthShibbolethSettingsGUI::addRoleAssignmentRule ( )
protected

Definition at line 522 of file class.ilAuthShibbolethSettingsGUI.php.

523 {
524 global $DIC;
525 $ilAccess = $DIC['ilAccess'];
526 $ilErr = $DIC['ilErr'];
527 if (!$ilAccess->checkAccess('write', '', $this->ref_id)) {
528 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
529 $this->roleAssignment();
530
531 return false;
532 }
533 $this->initFormRoleAssignment();
534 if (!$this->form->checkInput() or ($err = $this->checkInput())) {
535 if ($err) {
536 ilUtil::sendFailure($this->lng->txt($err));
537 }
538 $this->tabs_gui->setSubTabActive('shib_role_assignment');
539 $this->form->setValuesByPost();
540 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.shib_role_assignment.html', 'Services/AuthShibboleth');
541 $this->tpl->setVariable('NEW_RULE_TABLE', $this->form->getHTML());
542 if (strlen($html = $this->parseRulesTable())) {
543 $this->tpl->setVariable('RULE_TABLE', $html);
544 }
545
546 return true;
547 }
548 // Redirects if required
549 $this->showLocalRoleSelection();
550 $this->rule->add();
551 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
552 $this->roleAssignment();
553
554 return true;
555 }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$ilErr
Definition: raiseError.php:18

References $DIC, $ilErr, checkInput(), initFormRoleAssignment(), parseRulesTable(), roleAssignment(), ilUtil\sendFailure(), and showLocalRoleSelection().

+ Here is the call graph for this function:

◆ addRoleAutoCompleteObject()

ilAuthShibbolethSettingsGUI::addRoleAutoCompleteObject ( )

Add Member for autoComplete.

Definition at line 515 of file class.ilAuthShibbolethSettingsGUI.php.

516 {
517 include_once("./Services/Form/classes/class.ilRoleAutoCompleteInputGUI.php");
519 }
static echoAutoCompleteList()
Static asynchronous default auto complete function.

References ilRoleAutoCompleteInputGUI\echoAutoCompleteList().

+ Here is the call graph for this function:

◆ checkInput()

ilAuthShibbolethSettingsGUI::checkInput (   $a_rule_id = 0)
private

Definition at line 673 of file class.ilAuthShibbolethSettingsGUI.php.

674 {
675 $this->loadRule($a_rule_id);
676
677 return $this->rule->validate();
678 }

References loadRule().

Referenced by addRoleAssignmentRule(), and updateRoleAssignmentRule().

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

◆ chooseRole()

ilAuthShibbolethSettingsGUI::chooseRole ( )
protected

Definition at line 698 of file class.ilAuthShibbolethSettingsGUI.php.

699 {
700 $this->tabs_gui->setSubTabActive('shib_role_assignment');
701 include_once './Services/Search/classes/class.ilQueryParser.php';
702 $parser = new ilQueryParser($_SESSION['shib_role_ass']['search']);
703 $parser->setMinWordLength(1, true);
704 $parser->setCombination(QP_COMBINATION_AND);
705 $parser->parse();
706 include_once 'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
707 $object_search = new ilLikeObjectSearch($parser);
708 $object_search->setFilter(array( 'role' ));
709 $res = $object_search->performSearch();
710 $entries = $res->getEntries();
711 include_once './Services/AccessControl/classes/class.ilRoleSelectionTableGUI.php';
712 $table = new ilRoleSelectionTableGUI($this, 'chooseRole');
713 $table->setTitle($this->lng->txt('shib_role_selection'));
714 $table->addMultiCommand('saveRoleSelection', $this->lng->txt('shib_choose_role'));
715 $table->addCommandButton('roleAssignment', $this->lng->txt('cancel'));
716 $table->parse($entries);
717 $this->tpl->setContent($table->getHTML());
718
719 return true;
720 }
$parser
Definition: BPMN2Parser.php:23
$_SESSION["AccountId"]
const QP_COMBINATION_AND
foreach($_POST as $key=> $value) $res

References $_SESSION, $parser, $res, and QP_COMBINATION_AND.

◆ confirmDeleteRules()

ilAuthShibbolethSettingsGUI::confirmDeleteRules ( )
protected

Confirm delete rules.

@access public

Parameters

Definition at line 383 of file class.ilAuthShibbolethSettingsGUI.php.

384 {
385 if (!is_array($_POST['rule_ids'])) {
386 ilUtil::sendFailure($this->lng->txt('select_one'));
387 $this->roleAssignment();
388
389 return false;
390 }
391 $this->tabs_gui->setSubTabActive('shib_role_assignment');
392 include_once("Services/Utilities/classes/class.ilConfirmationGUI.php");
393 $c_gui = new ilConfirmationGUI();
394 // set confirm/cancel commands
395 $c_gui->setFormAction($this->ctrl->getFormAction($this, "deleteRules"));
396 $c_gui->setHeaderText($this->lng->txt("shib_confirm_del_role_ass"));
397 $c_gui->setCancel($this->lng->txt("cancel"), "roleAssignment");
398 $c_gui->setConfirm($this->lng->txt("confirm"), "deleteRules");
399 // add items to delete
400 include_once('Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRule.php');
401 foreach ($_POST["rule_ids"] as $rule_id) {
402 $rule = new ilShibbolethRoleAssignmentRule($rule_id);
403 $info = ilObject::_lookupTitle($rule->getRoleId());
404 $info .= " (";
405 $info .= $rule->conditionToString();
406 $info .= ')';
407 $c_gui->addItem('rule_ids[]', $rule_id, $info);
408 }
409 $this->tpl->setContent($c_gui->getHTML());
410 }
$_POST["username"]
Confirmation screen class.
static _lookupTitle($a_id)
lookup object title

References $_POST, ilObject\_lookupTitle(), roleAssignment(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteRules()

ilAuthShibbolethSettingsGUI::deleteRules ( )
protected

delete role assignment rule

@access public

Definition at line 419 of file class.ilAuthShibbolethSettingsGUI.php.

420 {
421 if (!is_array($_POST['rule_ids'])) {
422 ilUtil::sendFailure($this->lng->txt('select_once'));
423 $this->roleAssignment();
424
425 return false;
426 }
427 include_once('Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRule.php');
428 foreach ($_POST["rule_ids"] as $rule_id) {
429 $rule = new ilShibbolethRoleAssignmentRule($rule_id);
430 $rule->delete();
431 }
432 ilUtil::sendSuccess($this->lng->txt('shib_deleted_rule'));
433 $this->roleAssignment();
434
435 return true;
436 }

References $_POST, roleAssignment(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ editRoleAssignment()

ilAuthShibbolethSettingsGUI::editRoleAssignment ( )
protected

Edit Role Assignment.

Returns

Definition at line 563 of file class.ilAuthShibbolethSettingsGUI.php.

564 {
565 $this->ctrl->setParameter($this, 'rule_id', (int) $_GET['rule_id']);
566 $this->tabs_gui->setSubTabActive('shib_role_assignment');
567 $this->initFormRoleAssignment('update');
568 $this->getRuleValues();
569 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.shib_role_assignment.html', 'Services/AuthShibboleth');
570 $this->tpl->setVariable('NEW_RULE_TABLE', $this->form->getHTML());
571
572 return true;
573 }
$_GET["client_id"]

References $_GET, getRuleValues(), and initFormRoleAssignment().

+ Here is the call graph for this function:

◆ executeCommand()

ilAuthShibbolethSettingsGUI::executeCommand ( )

Execute Command.

Returns
void

Definition at line 72 of file class.ilAuthShibbolethSettingsGUI.php.

73 {
74 global $DIC;
75 $ilAccess = $DIC['ilAccess'];
76 $ilErr = $DIC['ilErr'];
77 $ilCtrl = $DIC['ilCtrl'];
78 $next_class = $this->ctrl->getNextClass($this);
79 $cmd = $this->ctrl->getCmd();
80 if (!$ilAccess->checkAccess('read', '', $this->ref_id)) {
81 $ilErr->raiseError($this->lng->txt('msg_no_perm_read'), $ilErr->WARNING);
82 }
83 if (!$ilAccess->checkAccess('write', '', $this->ref_id) && $cmd != "settings") {
84 ilUtil::sendFailure($this->lng->txt('msg_no_perm_write'), true);
85 $ilCtrl->redirect($this, "settings");
86 }
87 $this->setSubTabs();
88 switch ($next_class) {
89 default:
90 if (!$cmd) {
91 $cmd = "settings";
92 }
93 $this->$cmd();
94 break;
95 }
96
97 return true;
98 }

References $DIC, $ilCtrl, $ilErr, ilUtil\sendFailure(), and setSubTabs().

+ Here is the call graph for this function:

◆ getRuleValues()

ilAuthShibbolethSettingsGUI::getRuleValues ( )
private

Definition at line 645 of file class.ilAuthShibbolethSettingsGUI.php.

646 {
647 global $DIC;
648 $rbacreview = $DIC['rbacreview'];
649 include_once './Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRule.php';
650 $rule = new ilShibbolethRoleAssignmentRule((int) $_GET['rule_id']);
651 $role = $rule->getRoleId();
652 if ($rbacreview->isGlobalRole($role)) {
653 $values['role_name'] = 0;
654 $values['role_id'] = $role;
655 } else {
656 $values['role_name'] = 1;
657 $values['role_search'] = ilObject::_lookupTitle($role);
658 }
659 $values['add_missing'] = (int) $rule->isAddOnUpdateEnabled();
660 $values['remove_deprecated'] = (int) $rule->isRemoveOnUpdateEnabled();
661 $values['attr_name'] = $rule->getName();
662 $values['attr_value'] = $rule->getValue();
663 if (!$rule->isPluginActive()) {
664 $values['kind'] = 1;
665 } else {
666 $values['kind'] = 2;
667 $values['plugin_id'] = $rule->getPluginId();
668 }
669 $this->form->setValuesByArray($values);
670 }

References $_GET, $DIC, and ilObject\_lookupTitle().

Referenced by editRoleAssignment().

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

◆ hasActiveRoleAssignmentPlugins()

ilAuthShibbolethSettingsGUI::hasActiveRoleAssignmentPlugins ( )
private

Check if plugin is active.

Returns

Definition at line 749 of file class.ilAuthShibbolethSettingsGUI.php.

750 {
751 global $DIC;
752 $ilPluginAdmin = $DIC['ilPluginAdmin'];
753
754 return count($ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, 'AuthShibboleth', 'shibhk'));
755 }
const IL_COMP_SERVICE

References $DIC, and IL_COMP_SERVICE.

Referenced by initFormRoleAssignment().

+ Here is the caller graph for this function:

◆ initFormRoleAssignment()

ilAuthShibbolethSettingsGUI::initFormRoleAssignment (   $a_mode = 'default')
protected

Definition at line 439 of file class.ilAuthShibbolethSettingsGUI.php.

440 {
441 include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
442 $this->form = new ilPropertyFormGUI();
443 $this->form->setFormAction($this->ctrl->getFormAction($this, 'cancel'));
444 $this->form->setTitle($this->lng->txt('shib_role_ass_table'));
445 if ($a_mode == 'default') {
446 $this->form->setTitle($this->lng->txt('shib_role_ass_table'));
447 $this->form->addCommandButton('addRoleAssignmentRule', $this->lng->txt('shib_new_rule'));
448 $this->form->addCommandButton('settings', $this->lng->txt('cancel'));
449 } else {
450 $this->form->setTitle($this->lng->txt('shib_update_role_ass_table'));
451 $this->form->addCommandButton('updateRoleAssignmentRule', $this->lng->txt('save'));
452 $this->form->addCommandButton('roleAssignment', $this->lng->txt('cancel'));
453 }
454 // Role selection
455 $role = new ilRadioGroupInputGUI($this->lng->txt('shib_role_name'), 'role_name');
456 $role->setRequired(true);
457 $global = new ilRadioOption($this->lng->txt('shib_global_role'), 0);
458 $role->addOption($global);
459 $role_select = new ilSelectInputGUI('', 'role_id');
460 $role_select->setOptions($this->prepareRoleSelect());
461 $global->addSubItem($role_select);
462 $local = new ilRadioOption($this->lng->txt('shib_local_role'), 1);
463 $role->addOption($local);
464 include_once './Services/Form/classes/class.ilRoleAutoCompleteInputGUI.php';
465 $role_search = new ilRoleAutoCompleteInputGUI('', 'role_search', $this, 'addRoleAutoCompleteObject');
466 $role_search->setSize(40);
467 $local->addSubItem($role_search);
468 include_once './Services/AccessControl/classes/class.ilRoleAutoComplete.php';
469 $role->setInfo($this->lng->txt('shib_role_name_info'));
470 $this->form->addItem($role);
471 // Update options
472 $update = new ilNonEditableValueGUI($this->lng->txt('shib_update_roles'), 'update_roles');
473 $update->setValue($this->lng->txt('shib_check_role_assignment'));
474 $add = new ilCheckboxInputGUI('', 'add_missing');
475 $add->setOptionTitle($this->lng->txt('shib_add_missing'));
476 $add->setValue(1);
477 $update->addSubItem($add);
478 $remove = new ilCheckboxInputGUI('', 'remove_deprecated');
479 $remove->setOptionTitle($this->lng->txt('shib_remove_deprecated'));
480 $remove->setValue(1);
481 $update->addSubItem($remove);
482 $this->form->addItem($update);
483 // Assignment type
484 $kind = new ilRadioGroupInputGUI($this->lng->txt('shib_assignment_type'), 'kind');
485 $kind->setValue(1);
486 $kind->setRequired(true);
487 $attr = new ilRadioOption($this->lng->txt('shib_attribute'), 1);
488 $attr->setInfo($this->lng->txt('shib_attr_info'));
489 $name = new ilTextInputGUI($this->lng->txt('shib_attribute_name'), 'attr_name');
490 $name->setSize(32);
491 $attr->addSubItem($name);
492 $value = new ilTextInputGUI($this->lng->txt('shib_attribute_value'), 'attr_value');
493 $value->setSize(32);
494 $attr->addSubItem($value);
495 $kind->addOption($attr);
496 $pl_active = (bool) $this->hasActiveRoleAssignmentPlugins();
497 $pl = new ilRadioOption($this->lng->txt('shib_plugin'), 2);
498 $pl->setInfo($this->lng->txt('shib_plugin_info'));
499 $pl->setDisabled(!$pl_active);
500 $id = new ilNumberInputGUI($this->lng->txt('shib_plugin_id'), 'plugin_id');
501 $id->setDisabled(!$pl_active);
502 $id->setSize(3);
503 $id->setMaxLength(3);
504 $id->setMaxValue(999);
505 $id->setMinValue(1);
506 $pl->addSubItem($id);
507 $kind->addOption($pl);
508 $this->form->addItem($kind);
509 }
hasActiveRoleAssignmentPlugins()
Check if plugin is active.
This class represents a checkbox property in a property form.
This class represents a non editable value in a property form.
This class represents a number property in a property form.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a role + autocomplete feature form input.
This class represents a selection list property in a property form.
This class represents a text property in a property form.
if($format !==null) $name
Definition: metadata.php:230

References $name, hasActiveRoleAssignmentPlugins(), and prepareRoleSelect().

Referenced by addRoleAssignmentRule(), editRoleAssignment(), roleAssignment(), and updateRoleAssignmentRule().

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

◆ loadRule()

ilAuthShibbolethSettingsGUI::loadRule (   $a_rule_id = 0)
private

Definition at line 608 of file class.ilAuthShibbolethSettingsGUI.php.

609 {
610 include_once('./Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRule.php');
611 $this->rule = new ilShibbolethRoleAssignmentRule($a_rule_id);
612 if ($this->form->getInput('role_name') == 0) {
613 $this->rule->setRoleId($this->form->getInput('role_id'));
614 } elseif ($this->form->getInput('role_search')) {
615 // Search role
616 include_once './Services/Search/classes/class.ilQueryParser.php';
617 $parser = new ilQueryParser($this->form->getInput('role_search'));
618 // TODO: Handle minWordLength
619 $parser->setMinWordLength(1, true);
620 $parser->setCombination(QP_COMBINATION_AND);
621 $parser->parse();
622 include_once 'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
623 $object_search = new ilLikeObjectSearch($parser);
624 $object_search->setFilter(array( 'role' ));
625 $res = $object_search->performSearch();
626 $entries = $res->getEntries();
627 if (count($entries) == 1) {
628 $role = current($entries);
629 $this->rule->setRoleId($role['obj_id']);
630 } elseif (count($entries) > 1) {
631 $this->rule->setRoleId(-1);
632 }
633 }
634 $this->rule->setName($this->form->getInput('attr_name'));
635 $this->rule->setValue($this->form->getInput('attr_value'));
636 $this->rule->enableAddOnUpdate($this->form->getInput('add_missing'));
637 $this->rule->enableRemoveOnUpdate($this->form->getInput('remove_deprecated'));
638 $this->rule->enablePlugin($this->form->getInput('kind') == 2);
639 $this->rule->setPluginId($this->form->getInput('plugin_id'));
640
641 return $this->rule;
642 }

References $parser, $res, and QP_COMBINATION_AND.

Referenced by checkInput().

+ Here is the caller graph for this function:

◆ parseRulesTable()

ilAuthShibbolethSettingsGUI::parseRulesTable ( )
protected

Definition at line 358 of file class.ilAuthShibbolethSettingsGUI.php.

359 {
360 include_once('./Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRules.php');
362 return '';
363 }
364 include_once('./Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentTableGUI.php');
365 $rules_table = new ilShibbolethRoleAssignmentTableGUI($this, 'roleAssignment');
366 $rules_table->setTitle($this->lng->txt('shib_rules_tables'));
367 $rules_table->parse(ilShibbolethRoleAssignmentRules::getAllRules());
368 $rules_table->addMultiCommand("confirmDeleteRules", $this->lng->txt("delete"));
369 $rules_table->setSelectAllCheckbox("rule_id");
370
371 return $rules_table->getHTML();
372 }

References ilShibbolethRoleAssignmentRules\getCountRules().

Referenced by addRoleAssignmentRule(), and roleAssignment().

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

◆ prepareRoleSelect()

ilAuthShibbolethSettingsGUI::prepareRoleSelect (   $a_as_select = true)
private

Definition at line 758 of file class.ilAuthShibbolethSettingsGUI.php.

759 {
760 global $DIC;
761 $rbacreview = $DIC['rbacreview'];
762 $ilObjDataCache = $DIC['ilObjDataCache'];
763 $global_roles = ilUtil::_sortIds($rbacreview->getGlobalRoles(), 'object_data', 'title', 'obj_id');
764 $select[0] = $this->lng->txt('links_select_one');
765 foreach ($global_roles as $role_id) {
766 $select[$role_id] = ilObject::_lookupTitle($role_id);
767 }
768
769 return $select;
770 }
static _sortIds($a_ids, $a_table, $a_field, $a_id_name)
Function that sorts ids by a given table field using WHERE IN E.g: __sort(array(6,...

References $DIC, ilObject\_lookupTitle(), and ilUtil\_sortIds().

Referenced by initFormRoleAssignment().

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

◆ roleAssignment()

ilAuthShibbolethSettingsGUI::roleAssignment ( )
protected

Definition at line 344 of file class.ilAuthShibbolethSettingsGUI.php.

345 {
346 $this->tabs_gui->setSubTabActive('shib_role_assignment');
347 $this->initFormRoleAssignment('default');
348 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.shib_role_assignment.html', 'Services/AuthShibboleth');
349 $this->tpl->setVariable('NEW_RULE_TABLE', $this->form->getHTML());
350 if (strlen($html = $this->parseRulesTable())) {
351 $this->tpl->setVariable('RULE_TABLE', $html);
352 }
353
354 return true;
355 }

References initFormRoleAssignment(), and parseRulesTable().

Referenced by addRoleAssignmentRule(), confirmDeleteRules(), deleteRules(), saveRoleSelection(), and updateRoleAssignmentRule().

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

◆ save()

ilAuthShibbolethSettingsGUI::save ( )

Definition at line 279 of file class.ilAuthShibbolethSettingsGUI.php.

280 {
281 $required = array("login", "hos_type", "firstname", "lastname", "email", "user_default_role", "federation_name");
282 array_walk($required, function (&$item) {
283 if (!$_POST["shib"][$item]) {
284 ilUtil::sendFailure($this->lng->txt("fill_out_all_required_fields"), true);
285 $this->ctrl->redirect($this, 'settings');
286 }
287 });
288
289 // validate api
290 if ($_POST["shib"]["data_conv"] && $_POST["shib"]["data_conv"] != '' && !is_readable($_POST["shib"]["data_conv"])) {
291 ilUtil::sendFailure($this->lng->txt("shib_data_conv_warning"), true);
292 $this->ctrl->redirect($this, 'settings');
293 }
294 // all ok. save settings
295 $shib_settings = array(
296 'shib_login',
297 'shib_title',
298 'shib_firstname',
299 'shib_lastname',
300 'shib_email',
301 'shib_gender',
302 'shib_institution',
303 'shib_department',
304 'shib_zipcode',
305 'shib_city',
306 'shib_country',
307 'shib_street',
308 'shib_phone_office',
309 'shib_phone_home',
310 'shib_phone_mobile',
311 'shib_language',
312 'shib_matriculation'
313 );
314 foreach ($shib_settings as $setting) {
315 $field = str_replace('shib_', '', $setting);
316 if ($_POST["shib"]["update_" . $field] != "1") {
317 $_POST["shib"]["update_" . $field] = "0";
318 }
319 $this->ilias->setSetting($setting, trim($_POST["shib"][$field]));
320 $this->ilias->setSetting("shib_update_" . $field, $_POST["shib"]["update_" . $field]);
321 }
322 if ($_POST["shib"]["active"] != "1") {
323 $this->ilias->setSetting("shib_active", "0");
324 $this->ilias->setSetting("shibboleth_active", "0");
325 } else {
326 $this->ilias->setSetting("shib_active", "1");
327 $this->ilias->setSetting("shibboleth_active", "1");
328 }
329 $this->ilias->setSetting("shib_user_default_role", $_POST["shib"]["user_default_role"]);
330 $this->ilias->setSetting("shib_hos_type", $_POST["shib"]["hos_type"]);
331 $this->ilias->setSetting("shib_federation_name", $_POST["shib"]["federation_name"]);
332 $this->ilias->setSetting("shib_idp_list", $_POST["shib"]["idp_list"]);
333 $this->ilias->setSetting("shib_login_instructions", $_POST["shib"]["login_instructions"]);
334 $this->ilias->setSetting("shib_login_button", $_POST["shib"]["login_button"]);
335 $this->ilias->setSetting("shib_data_conv", $_POST["shib"]["data_conv"]);
336 $this->ilias->setSetting("shib_auth_allow_local", ($_POST['shib']['auth_allow_local'] == '1') ? '1' : '0');
337 $this->ilias->setSetting("shib_activate_new", ($_POST['shib']['activate_new'] == '1') ? '1' : '0');
338
339 ilUtil::sendSuccess($this->lng->txt("shib_settings_saved"), true);
340 $this->ctrl->redirect($this, 'settings');
341 }

References $_POST, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ saveRoleSelection()

ilAuthShibbolethSettingsGUI::saveRoleSelection ( )
protected

Definition at line 723 of file class.ilAuthShibbolethSettingsGUI.php.

724 {
725 $rule = new ilShibbolethRoleAssignmentRule($_SESSION['shib_role_ass']['rule_id']);
726 $rule->setRoleId((int) $_POST['role_id']);
727 $rule->setName($_SESSION['shib_role_ass']['name']);
728 $rule->setValue($_SESSION['shib_role_ass']['value']);
729 $rule->enablePlugin($_SESSION['shib_role_ass']['plugin']);
730 $rule->setPluginId($_SESSION['shib_role_ass']['plugin_id']);
731 $rule->enableAddOnUpdate($_SESSION['shib_role_ass']['add_on_update']);
732 $rule->enableRemoveOnUpdate($_SESSION['shib_role_ass']['remove_on_update']);
733 if ($rule->getRuleId()) {
734 $rule->update();
735 } else {
736 $rule->add();
737 }
738 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
739 unset($_SESSION['shib_role_ass']);
740 $this->roleAssignment();
741 }

References $_POST, $_SESSION, and roleAssignment().

+ Here is the call graph for this function:

◆ setSubTabs()

ilAuthShibbolethSettingsGUI::setSubTabs ( )
protected

Definition at line 773 of file class.ilAuthShibbolethSettingsGUI.php.

774 {
775 global $DIC;
776 $ilSetting = $DIC['ilSetting'];
777 include_once './Services/AuthShibboleth/classes/class.ilShibbolethRoleAssignmentRules.php';
778 if ($ilSetting->get('shib_active') == 0 and ilShibbolethRoleAssignmentRules::getCountRules() == 0) {
779 return false;
780 }
781 // DONE: show sub tabs if there is any role assignment rule
782 $this->tabs_gui->addSubTabTarget('shib_settings', $this->ctrl->getLinkTarget($this, 'settings'));
783 $this->tabs_gui->addSubTabTarget('shib_role_assignment', $this->ctrl->getLinkTarget($this, 'roleAssignment'));
784
785 return true;
786 }
global $ilSetting
Definition: privfeed.php:17

References $DIC, $ilSetting, and ilShibbolethRoleAssignmentRules\getCountRules().

Referenced by executeCommand().

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

◆ settings()

ilAuthShibbolethSettingsGUI::settings ( )

Definition at line 101 of file class.ilAuthShibbolethSettingsGUI.php.

102 {
103 global $DIC;
104 $rbacreview = $DIC['rbacreview'];
105 $this->tabs_gui->setSubTabActive('shib_settings');
106 // set already saved data or default value for port
107 $settings = $this->ilias->getAllSettings();
108 // Compose role list
109 $role_list = $rbacreview->getRolesByFilter(2);
110 $role = array();
111 if (!isset($settings["shib_user_default_role"])) {
112 $settings["shib_user_default_role"] = 4;
113 }
114 if (!isset($settings["shib_idp_list"]) || $settings["shib_idp_list"] == '') {
115 $settings["shib_idp_list"] = "urn:mace:organization1:providerID, Example Organization 1\nurn:mace:organization2:providerID, Example Organization 2, /Shibboleth.sso/WAYF/SWITCHaai";
116 }
117 if (!isset($settings["shib_login_button"]) || $settings["shib_login_button"] == '') {
118 $settings["shib_login_button"] = "templates/default/images/shib_login_button.png";
119 }
120 if (!isset($settings["shib_hos_type"]) || $settings["shib_hos_type"] == '') {
121 $settings["shib_hos_type"] = 'internal_wayf';
122 }
123 foreach ($role_list as $data) {
124 $role[$data["obj_id"]] = $data["title"];
125 }
126 // Set text field content
127 $shib_settings = array(
128 'shib_login',
129 'shib_title',
130 'shib_firstname',
131 'shib_lastname',
132 'shib_email',
133 'shib_gender',
134 'shib_institution',
135 'shib_department',
136 'shib_zipcode',
137 'shib_city',
138 'shib_country',
139 'shib_street',
140 'shib_phone_office',
141 'shib_phone_home',
142 'shib_phone_mobile',
143 'shib_language',
144 'shib_matriculation',
145 );
146 //set PropertyFormGUI
147 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
148 $propertys = new ilPropertyFormGUI();
149 $propertys->setTitle($this->lng->txt("shib"));
150 $propertys->setFormAction($this->ctrl->getFormAction($this, "save"));
151 $propertys->addCommandButton("save", $this->lng->txt("save"));
152 $propertys->addCommandButton("settings", $this->lng->txt("cancel"));
153 //set enable shibboleth support
154 $enable = new ilCheckboxInputGUI();
155 $enable->setTitle($this->lng->txt("shib_active"));
156 $read_me_link = "./Services/AuthShibboleth/README.SHIBBOLETH.txt";
157 $info = "<a href='" . $read_me_link . "' target='_blank'>" . $this->lng->txt("auth_shib_instructions") . "</a>";
158 $enable->setInfo($info);
159 $enable->setPostVar("shib[active]");
160 $enable->setChecked($settings["shib_active"]);
161 //set allow local authentication
162 $local = new ilCheckboxInputGUI();
163 $local->setTitle($this->lng->txt("auth_allow_local"));
164 $local->setPostVar("shib[auth_allow_local]");
165 $local->setChecked($settings['shib_auth_allow_local']);
166 //set user default role
167 $defaultrole = new ilSelectInputGUI();
168 $defaultrole->setTitle($this->lng->txt("shib_user_default_role"));
169 $defaultrole->setPostVar("shib[user_default_role]");
170 $defaultrole->setOptions($role);
171 $defaultrole->setRequired(true);
172 $defaultrole->setValue($settings["shib_user_default_role"]);
173 // Administrator must activate new user accounts
174 $activate_new = new ilCheckboxInputGUI($this->lng->txt("shib_activate_new"), "shib[activate_new]");
175 $activate_new->setInfo($this->lng->txt("shib_activate_new_info"));
176 $activate_new->setChecked($settings["shib_activate_new"]);
177 //set name of federation
178 $name = new ilTextInputGUI();
179 $name->setTitle($this->lng->txt("shib_federation_name"));
180 $name->setPostVar("shib[federation_name]");
181 $name->setSize(40);
182 $name->setMaxLength(50);
183 $name->setRequired(true);
184 $name->setValue(stripslashes($settings["shib_federation_name"]));
185 //set Organize selection group
186 include_once("./Services/Form/classes/class.ilRadioGroupInputGUI.php");
187 include_once("./Services/Form/classes/class.ilRadioOption.php");
188 $organize = new ilRadioGroupInputGUI();
189 $organize->setTitle($this->lng->txt("shib_login_type"));
190 $organize->setPostVar("shib[hos_type]");
191 $organize->setRequired(true);
192 $organize->setValue($settings["shib_hos_type"]);
193 //set 1. option internalwayf
194 $internalwayf = new ilRadioOption();
195 $internalwayf->setTitle($this->lng->txt("shib_login_internal_wayf"));
196 $internalwayf->setValue("internal_wayf");
197 //set 1. option internalwayf textbox idplist
198 $idplist = new ilTextAreaInputGUI();
199 $idplist->setInfo($this->lng->txt("shib_idp_list"));
200 $idplist->setPostVar("shib[idp_list]");
201 $idplist->setRows(3);
202 $idplist->setCols(50);
203 $idplist->setValue($settings["shib_idp_list"]);
204 //set 2. Option externalwayf
205 $externalwayf = new ilRadioOption();
206 $externalwayf->setTitle($this->lng->txt("shib_login_external_wayf"));
207 $externalwayf->setValue("external_wayf");
208 //set 2. Option externalwayf textfield path to login button image
209 $loginbutton = new ilTextInputGUI();
210 $loginbutton->setInfo($this->lng->txt("shib_login_button"));
211 $loginbutton->setPostVar("shib[login_button]");
212 $loginbutton->setSize(50);
213 $loginbutton->setMaxLength(255);
214 $loginbutton->setValue($settings["shib_login_button"]);
215 //set 3. Option embeddedwayf
216 $embeddedwayf = new ilRadioOption();
217 $embeddedwayf->setTitle($this->lng->txt("shib_login_embedded_wayf"));
218 $embeddedwayf->setInfo($this->lng->txt("shib_login_embedded_wayf_description"));
219 $embeddedwayf->setValue("embedded_wayf");
220 //set login instructions
221 $logininstruction = new ilTextAreaInputGUI();
222 $logininstruction->setTitle($this->lng->txt("auth_login_instructions"));
223 $logininstruction->setPostVar("shib[login_instructions]");
224 $logininstruction->setRows(3);
225 $logininstruction->setCols(50);
226 $logininstruction->setValue(stripslashes($settings["shib_login_instructions"]));
227 //set path to data manipulation API
228 $dataconv = new ilTextInputGUI();
229 $dataconv->setTitle($this->lng->txt("shib_data_conv"));
230 $dataconv->setPostVar("shib[data_conv]");
231 $dataconv->setSize(80);
232 $dataconv->setMaxLength(512);
233 $dataconv->setValue($settings["shib_data_conv"]);
234 //field mappings
235 $fields = array();
236 foreach ($shib_settings as $setting) {
237 $field = str_replace('shib_', '', $setting);
238 $textinput = new ilTextInputGUI();
239 $textinput->setTitle($this->lng->txt($setting));
240 $textinput->setPostVar("shib[" . $field . "]");
241 $textinput->setValue($settings[$setting]);
242 $textinput->setSize(40);
243 $textinput->setMaxLength(50);
244 $checkinput = new ilCheckboxInputGUI("");
245 $checkinput->setOptionTitle($this->lng->txt("shib_update"));
246 $checkinput->setPostVar("shib[update_" . $field . "]");
247 $checkinput->setChecked($settings["shib_update_" . $field]);
248 if ($setting == 'shib_login' || $setting == 'shib_firstname'
249 || $setting == 'shib_lastname'
250 || $setting == 'shib_email'
251 ) {
252 $textinput->setRequired(true);
253 }
254 $fields[$setting] = array( "text" => $textinput, "check" => $checkinput );
255 }
256 $propertys->addItem($enable);
257 $propertys->addItem($local);
258 $propertys->addItem($activate_new);
259 $propertys->addItem($defaultrole);
260 $propertys->addItem($name);
261 $internalwayf->addSubItem($idplist);
262 $organize->addOption($internalwayf);
263 $externalwayf->addSubItem($loginbutton);
264 $organize->addOption($externalwayf);
265 $organize->addOption($embeddedwayf);
266 $propertys->addItem($organize);
267 $propertys->addItem($logininstruction);
268 $propertys->addItem($dataconv);
269 foreach ($shib_settings as $setting) {
270 $propertys->addItem($fields[$setting]["text"]);
271 if ($setting != "shib_login") {
272 $propertys->addItem($fields[$setting]["check"]);
273 }
274 }
275 $this->tpl->setContent($propertys->getHTML());
276 }
This class represents a text area property in a property form.
$data
Definition: storeScorm.php:23

References $data, $DIC, and $name.

◆ showLocalRoleSelection()

ilAuthShibbolethSettingsGUI::showLocalRoleSelection ( )
private

Definition at line 681 of file class.ilAuthShibbolethSettingsGUI.php.

682 {
683 if ($this->rule->getRoleId() > 0) {
684 return false;
685 }
686 $_SESSION['shib_role_ass']['rule_id'] = $_REQUEST['rule_id'] ? $_REQUEST['rule_id'] : 0;
687 $_SESSION['shib_role_ass']['search'] = $this->form->getInput('role_search');
688 $_SESSION['shib_role_ass']['add_on_update'] = $this->rule->isAddOnUpdateEnabled();
689 $_SESSION['shib_role_ass']['remove_on_update'] = $this->rule->isRemoveOnUpdateEnabled();
690 $_SESSION['shib_role_ass']['name'] = $this->rule->getName();
691 $_SESSION['shib_role_ass']['value'] = $this->rule->getValue();
692 $_SESSION['shib_role_ass']['plugin'] = $this->rule->isPluginActive();
693 $_SESSION['shib_role_ass']['plugin_id'] = $this->rule->getPluginId();
694 $this->ctrl->redirect($this, 'chooseRole');
695 }

References $_SESSION.

Referenced by addRoleAssignmentRule(), and updateRoleAssignmentRule().

+ Here is the caller graph for this function:

◆ updateRoleAssignmentRule()

ilAuthShibbolethSettingsGUI::updateRoleAssignmentRule ( )
protected

Definition at line 576 of file class.ilAuthShibbolethSettingsGUI.php.

577 {
578 global $DIC;
579 $ilAccess = $DIC['ilAccess'];
580 $ilErr = $DIC['ilErr'];
581 if (!$ilAccess->checkAccess('write', '', $this->ref_id)) {
582 ilUtil::sendFailure($this->lng->txt('permission_denied'), true);
583 $this->roleAssignment();
584
585 return false;
586 }
587 $this->initFormRoleAssignment();
588 if (!$this->form->checkInput() or ($err = $this->checkInput((int) $_REQUEST['rule_id']))) {
589 if ($err) {
590 ilUtil::sendFailure($this->lng->txt($err));
591 }
592 $this->tabs_gui->setSubTabActive('shib_role_assignment');
593 $this->form->setValuesByPost();
594 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.shib_role_assignment.html', 'Services/AuthShibboleth');
595 $this->tpl->setVariable('NEW_RULE_TABLE', $this->form->getHTML());
596
597 return true;
598 }
599 $this->showLocalRoleSelection('update');
600 $this->rule->update();
601 ilUtil::sendSuccess($this->lng->txt('settings_saved'));
602 $this->roleAssignment();
603
604 return true;
605 }

References $DIC, $ilErr, checkInput(), initFormRoleAssignment(), roleAssignment(), ilUtil\sendFailure(), and showLocalRoleSelection().

+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilAuthShibbolethSettingsGUI::$ctrl
private

Definition at line 19 of file class.ilAuthShibbolethSettingsGUI.php.

◆ $ilias

ilAuthShibbolethSettingsGUI::$ilias
private

Definition at line 23 of file class.ilAuthShibbolethSettingsGUI.php.

Referenced by __construct().

◆ $lng

ilAuthShibbolethSettingsGUI::$lng
private

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

Referenced by __construct().

◆ $ref_id

ilAuthShibbolethSettingsGUI::$ref_id
private

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

◆ $tabs_gui

ilAuthShibbolethSettingsGUI::$tabs_gui
private

Definition at line 27 of file class.ilAuthShibbolethSettingsGUI.php.

◆ $tpl

ilAuthShibbolethSettingsGUI::$tpl
private

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

Referenced by __construct().


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