ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilObjAuthSettingsGUI Class Reference

@ilCtrl_Calls ilObjAuthSettingsGUI: ilPermissionGUI, ilRegistrationSettingsGUI, ilLDAPSettingsGUI @ilCtrl_Calls ilObjAuthSettingsGUI: ilAuthShibbolethSettingsGUI, ilCASSettingsGUI @ilCtrl_Calls ilObjAuthSettingsGUI: ilSamlSettingsGUI, ilOpenIdConnectSettingsGUI @ilCtrl_Calls ilObjAuthSettingsGUI: ilObjectContentStyleSettingsGUI More...

+ Inheritance diagram for ilObjAuthSettingsGUI:
+ Collaboration diagram for ilObjAuthSettingsGUI:

Public Member Functions

 __construct ($a_data, int $a_id, bool $a_call_by_reference, bool $a_prepare_output=true)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 cancelObject ()
 cancel action and go back to previous page More...
 
 setAuthModeObject ()
 
 editSOAPObject ()
 
 testSoapAuthConnectionObject ()
 
 saveSOAPObject ()
 
 editScriptObject ()
 
 saveScriptObject ()
 
 executeCommand ()
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 setSubTabs (string $a_tab)
 
 apacheAuthSettingsObject (?StandardForm $form=null)
 
 saveApacheSettingsObject ()
 
 registrationSettingsObject ()
 
- Public Member Functions inherited from ilObjectGUI
 getRefId ()
 
 setAdminMode (string $mode)
 
 getAdminMode ()
 
 getObject ()
 
 executeCommand ()
 
 withReferences ()
 determines whether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode (bool $mode=true)
 If true, a creation screen is displayed the current [ref_id] does belong to the parent class The mode is determined in ilRepositoryGUI. More...
 
 getCreationMode ()
 
 prepareOutput (bool $show_sub_objects=true)
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelObject ()
 cancel action and go back to previous page More...
 
 createObject ()
 create new object form More...
 
 editAvailabilityPeriodObject ()
 
 saveAvailabilityPeriodObject ()
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 
 getDidacticTemplateVar (string $type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $obj, ?int $parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 
 addExternalEditFormCustom (ilPropertyFormGUI $form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction (string $cmd, string $default_form_action="")
 Get form action for command (command is method name without "Object", e.g. More...
 
 isVisible (int $ref_id, string $type)
 
 viewObject ()
 viewObject container presentation for "administration -> repository, trash, permissions" More...
 
 deleteObject (bool $error=false)
 Display deletion confirmation screen. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
- Public Member Functions inherited from ILIAS\Object\ImplementsCreationCallback
 callCreationCallback (\ilObject $object, \ilObjectDefinition $obj_definition, int $requested_crtcb)
 

Protected Member Functions

 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 
 assignObject ()
 
 setTitleAndDescription ()
 
 createActionDispatcherGUI ()
 
 initHeaderAction (?string $sub_type=null, ?int $sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction (?ilObjectListGUI $list_gui=null)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 setTabs ()
 set admin tabs More...
 
 setAdminTabs ()
 set admin tabs More...
 
 setLocator ()
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator (bool $omit=true)
 
 addAdminLocatorItems (bool $do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 getCreationFormsHTML (StandardForm|ilPropertyFormGUI|array $form)
 
 getTitleForCreationFormPage ()
 
 getCreationFormTitle ()
 
 initCreateForm (string $new_type)
 
 didacticTemplatesToForm ()
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 
 retrieveAdditionalDidacticTemplateOptions ()
 
 addAdoptContentLinkToToolbar ()
 
 addImportButtonToToolbar ()
 
 addAvailabilityPeriodButtonToToolbar (ilToolbarGUI $toolbar)
 
 parseDidacticTemplateVar (string $var, string $type)
 
 afterSave (ilObject $new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 routeImportCmdObject ()
 
 importFile (string $file_to_import, string $path_to_uploaded_file_in_temp_dir)
 
 deleteUploadedImportFile (string $path_to_uploaded_file_in_temp_dir)
 
 afterImport (ilObject $new_object)
 Post (successful) object import hook. More...
 
 setFormAction (string $cmd, string $form_action)
 
 getReturnLocation (string $cmd, string $default_location="")
 Get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation (string $cmd, string $location)
 set specific return location for command More...
 
 getTargetFrame (string $cmd, string $default_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame (string $cmd, string $target_frame)
 Set specific target frame for command. More...
 
 showPossibleSubObjects ()
 show possible sub objects (pull down menu) More...
 
 getTabs ()
 @abstract overwrite in derived GUI class of your object type More...
 
 redirectToRefId (int $ref_id, string $cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current ["ref_id"] value of the request More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 checkPermission (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 checkPermissionBool (string $perm, string $cmd="", string $type="", ?int $ref_id=null)
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 getCreatableObjectTypes ()
 
 buildAddNewItemElements (array $subtypes, string $create_target_class=ilRepositoryGUI::class, ?int $redirect_target_ref_id=null,)
 
 buildGroup (string $create_target_class, array $obj_types_in_group, string $title, array $subtypes)
 

Private Member Functions

 authSettingsObject (?ILIAS\UI\Component\Input\Container\Form\Form $auth_mode_determination_form=null, ?ILIAS\UI\Component\Input\Container\Form\Form $registration_role_mapping_form=null)
 
 buildRegistrationRoleMappingForm ()
 
 updateRegistrationRoleMappingObject ()
 
 buildAuthModeDeterminationForm ()
 
 updateAuthModeDeterminationObject ()
 
 buildSOAPForm (string $submit_action)
 
 buildSOAPTestForm (string $submit_action)
 
 getAuthModeTitle ()
 
 validateApacheAuthAllowedDomains (string $text)
 

Private Attributes

const string CMD_SHOW_APACHE_SETTINGS = 'apacheAuthSettings'
 
const string CMD_SAVE_APACHE_SETTINGS = 'saveApacheSettings'
 
const string PROP_AUTH_MODE_KIND = 'kind'
 
const string PROP_AUTH_MODE_SEQUENCE = 'sequence'
 
ilLogger $logger
 
GUIService $content_style_gui
 

Additional Inherited Members

- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot (bool $raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode (int $ref_id, string $cmd="")
 
static _gotoSharedWorkspaceNode (int $wsp_id)
 
- Data Fields inherited from ilObjectGUI
const ADMIN_MODE_NONE = ""
 
const ADMIN_MODE_SETTINGS = "settings"
 
const ADMIN_MODE_REPOSITORY = "repository"
 
const UPLOAD_TYPE_LOCAL = 1
 
const UPLOAD_TYPE_UPLOAD_DIRECTORY = 2
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 
const SUPPORTED_IMPORT_MIME_TYPES = [MimeType::APPLICATION__ZIP, MimeType::APPLICATION__X_ZIP_COMPRESSED]
 
- Protected Attributes inherited from ilObjectGUI
ILIAS Notes Service $notes_service
 
GlobalHttpState $http
 
ServerRequestInterface $request
 
ilLocatorGUI $locator
 
ilObjUser $user
 
ilAccessHandler $access
 
ilSetting $settings
 
ilToolbarGUI $toolbar
 
ilRbacAdmin $rbac_admin
 
ilRbacSystem $rbac_system
 
ilRbacReview $rbac_review
 
ilObjectService $object_service
 
ilObjectDefinition $obj_definition
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilCtrl $ctrl
 
ilErrorHandling $error
 
ilLanguage $lng
 
ilTabsGUI $tabs_gui
 
ILIAS $ilias
 
ArrayBasedRequestWrapper $post_wrapper
 
RequestWrapper $request_wrapper
 
Refinery $refinery
 
ilFavouritesManager $favourites
 
CustomIconFactory $custom_icon_factory
 
UIFactory $ui_factory
 
UIRenderer $ui_renderer
 
Filesystem $temp_file_system
 
ilObject $object = null
 
bool $creation_mode = false
 
 $data
 
int $id
 
bool $call_by_reference = false
 
bool $prepare_output
 
int $ref_id
 
int $obj_id
 
int $maxcount
 
array $form_action = []
 
array $return_location = []
 
array $target_frame = []
 
string $tmp_import_dir
 
string $sub_objects = ""
 
bool $omit_locator = false
 
string $type = ""
 
string $admin_mode = self::ADMIN_MODE_NONE
 
int $requested_ref_id = 0
 
int $requested_crtptrefid = 0
 
int $requested_crtcb = 0
 
string $requested_new_type = ""
 
string $link_params
 
string $html = ""
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjAuthSettingsGUI::__construct (   $a_data,
int  $a_id,
bool  $a_call_by_reference,
bool  $a_prepare_output = true 
)

Definition at line 44 of file class.ilObjAuthSettingsGUI.php.

45 {
46 $this->type = 'auth';
47 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
48
49 global $DIC;
50 $this->logger = $DIC->logger()->auth();
51
52 $this->lng->loadLanguageModule('registration');
53 $this->lng->loadLanguageModule('auth');
54 $this->lng->loadLanguageModule('content');
55 $this->content_style_gui = $DIC->contentStyle()->gui();
56 }
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\GlobalScreen\Provider\__construct(), ILIAS\Repository\lng(), and ILIAS\Repository\logger().

+ Here is the call graph for this function:

Member Function Documentation

◆ apacheAuthSettingsObject()

ilObjAuthSettingsGUI::apacheAuthSettingsObject ( ?StandardForm  $form = null)

Definition at line 1064 of file class.ilObjAuthSettingsGUI.php.

1064 : void
1065 {
1066 $this->tabs_gui->setTabActive('apache_auth_settings');
1067
1068 if (!$form) {
1069 $settings = new ilSetting('apache_auth');
1070 $settingsMap = $settings->getAll();
1071
1072 $path = ILIAS_DATA_DIR . '/' . CLIENT_ID . '/apache_auth_allowed_domains.txt';
1073 if (file_exists($path) && is_readable($path)) {
1074 $settingsMap['apache_auth_domains'] = file_get_contents($path);
1075 }
1076
1077 $form = (new ApacheAuthSettingsForm(
1078 $this->ref_id,
1079 $this,
1080 self::CMD_SHOW_APACHE_SETTINGS,
1081 self::CMD_SAVE_APACHE_SETTINGS,
1082 $settingsMap
1083 ))->buildForm();
1084
1085 }
1086
1087 $this->tpl->setContent($this->ui_renderer->render([
1088 $this->ui_factory->item()->standard($this->lng->txt('apache_settings')),
1089 $form
1090 ]));
1091 }
ilSetting $settings
ILIAS Setting Class.
const CLIENT_ID
Definition: constants.php:41
const ILIAS_DATA_DIR
Definition: constants.php:44
$path
Definition: ltiservices.php:30

References $path, CLIENT_ID, and ILIAS_DATA_DIR.

◆ authSettingsObject()

ilObjAuthSettingsGUI::authSettingsObject ( ?ILIAS\UI\Component\Input\Container\Form\Form  $auth_mode_determination_form = null,
?ILIAS\UI\Component\Input\Container\Form\Form  $registration_role_mapping_form = null 
)
private

Definition at line 63 of file class.ilObjAuthSettingsGUI.php.

66 : void {
67 if (!$this->rbac_system->checkAccess('visible,read', $this->object->getRefId())) {
68 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
69 }
70
71 $this->tabs_gui->setTabActive('authentication_settings');
72 $this->setSubTabs('authSettings');
73 $this->tabs_gui->setSubTabActive('auth_settings');
74
75 $generalSettingsTpl = new ilTemplate('tpl.auth_general.html', true, true, 'components/ILIAS/Authentication');
76
77 $generalSettingsTpl->setVariable('FORMACTION', $this->ctrl->getFormAction($this));
78
79 $generalSettingsTpl->setVariable('TXT_AUTH_MODE', $this->lng->txt('auth_mode'));
80 $generalSettingsTpl->setVariable('TXT_AUTH_DEFAULT', $this->lng->txt('default'));
81 $generalSettingsTpl->setVariable('TXT_AUTH_ACTIVE', $this->lng->txt('active'));
82 $generalSettingsTpl->setVariable('TXT_AUTH_NUM_USERS', $this->lng->txt('num_users'));
83
84 $generalSettingsTpl->setVariable('TXT_LOCAL', $this->lng->txt('auth_local'));
85 $generalSettingsTpl->setVariable('TXT_LDAP', $this->lng->txt('auth_ldap'));
86 $generalSettingsTpl->setVariable('TXT_SHIB', $this->lng->txt('auth_shib'));
87
88 $generalSettingsTpl->setVariable('TXT_SCRIPT', $this->lng->txt('auth_script'));
89
90 $generalSettingsTpl->setVariable('TXT_APACHE', $this->lng->txt('auth_apache'));
91
93 $auth_modes = ilAuthUtils::_getAllAuthModes();
94 $valid_modes = [
101 ];
102
103 $icon_ok = $this->ui_renderer->render(
104 $this->ui_factory->symbol()->icon()->custom(
105 ilUtil::getImagePath('standard/icon_ok.svg'),
106 $this->lng->txt('enabled')
107 )
108 );
109 $icon_not_ok = $this->ui_renderer->render(
110 $this->ui_factory->symbol()->icon()->custom(
111 ilUtil::getImagePath('standard/icon_not_ok.svg'),
112 $this->lng->txt('disabled')
113 )
114 );
115
116 $this->logger->debug(print_r($auth_modes, true));
117 foreach ($auth_modes as $mode => $mode_name) {
118 if (!in_array($mode, $valid_modes, true) && !ilLDAPServer::isAuthModeLDAP(
119 (string) $mode
120 ) && !ilSamlIdp::isAuthModeSaml((string) $mode)) {
121 continue;
122 }
123
124 $generalSettingsTpl->setCurrentBlock('auth_mode');
125
126 if (ilLDAPServer::isAuthModeLDAP((string) $mode)) {
128 $generalSettingsTpl->setVariable('AUTH_NAME', $server->getName());
129 $generalSettingsTpl->setVariable('AUTH_ACTIVE', $server->isActive() ? $icon_ok : $icon_not_ok);
130 } elseif (ilSamlIdp::isAuthModeSaml((string) $mode)) {
132 $generalSettingsTpl->setVariable('AUTH_NAME', $idp->getEntityId());
133 $generalSettingsTpl->setVariable('AUTH_ACTIVE', $idp->isActive() ? $icon_ok : $icon_not_ok);
134 } elseif ($mode === ilAuthUtils::AUTH_OPENID_CONNECT) {
135 $generalSettingsTpl->setVariable('AUTH_NAME', $this->lng->txt('auth_' . $mode_name));
136 $generalSettingsTpl->setVariable(
137 'AUTH_ACTIVE',
138 ilOpenIdConnectSettings::getInstance()->getActive() ? $icon_ok : $icon_not_ok
139 );
140 } else {
141 $generalSettingsTpl->setVariable('AUTH_NAME', $this->lng->txt('auth_' . $mode_name));
142 $generalSettingsTpl->setVariable(
143 'AUTH_ACTIVE',
144 $this->ilias->getSetting(
145 $mode_name . '_active'
146 ) || (int) $mode === ilAuthUtils::AUTH_LOCAL ? $icon_ok : $icon_not_ok
147 );
148 }
149
150 $auth_cnt_mode = $auth_cnt[$mode_name] ?? 0;
151 if ($this->settings->get('auth_mode') === (string) $mode) {
152 $generalSettingsTpl->setVariable('AUTH_CHECKED', 'checked="checked"');
153 $auth_cnt_default = $auth_cnt['default'] ?? 0;
154 $generalSettingsTpl->setVariable(
155 'AUTH_USER_NUM',
156 ((int) $auth_cnt_mode + $auth_cnt_default) . ' (' . $this->lng->txt('auth_per_default') .
157 ': ' . $auth_cnt_default . ')'
158 );
159 } else {
160 $generalSettingsTpl->setVariable(
161 'AUTH_USER_NUM',
162 (int) $auth_cnt_mode
163 );
164 }
165 $generalSettingsTpl->setVariable('AUTH_ID', $mode_name);
166 $generalSettingsTpl->setVariable('AUTH_VAL', $mode);
167 $generalSettingsTpl->parseCurrentBlock();
168 }
169
170 $generalSettingsTpl->setVariable('TXT_CONFIGURE', $this->lng->txt('auth_configure'));
171
172 if ($this->rbac_system->checkAccess('write', $this->object->getRefId())) {
173 $generalSettingsTpl->setVariable('TXT_AUTH_REMARK', $this->lng->txt('auth_remark_non_local_auth'));
174 $generalSettingsTpl->setCurrentBlock('auth_mode_submit');
175 $generalSettingsTpl->setVariable('TXT_SUBMIT', $this->lng->txt('save'));
176 $generalSettingsTpl->setVariable('CMD_SUBMIT', 'setAuthMode');
177 $generalSettingsTpl->parseCurrentBlock();
178 }
179
180 $page_content = [
181 $this->ui_factory->panel()->standard(
182 $this->lng->txt('auth_select'),
183 $this->ui_factory->legacy()->content(implode('', [
184 $this->ui_renderer->render($this->ui_factory->messageBox()->info(
185 $this->lng->txt('auth_mode_default_change_info')
186 )),
187 $generalSettingsTpl->get()
188 ])),
189 )
190 ];
191
192 $auth_mode_determination_form = $auth_mode_determination_form ?? $this->buildAuthModeDeterminationForm();
193 if ($auth_mode_determination_form !== null) {
194 $page_content[] = $this->ui_factory->panel()->standard(
195 $this->lng->txt('auth_auth_mode_determination'),
196 $auth_mode_determination_form
197 );
198 }
199
200 $page_content[] = $this->ui_factory->panel()->standard(
201 $this->lng->txt('auth_active_roles'),
202 $registration_role_mapping_form ?? $this->buildRegistrationRoleMappingForm()
203 );
204
205 $this->tpl->setContent(
206 $this->ui_renderer->render($page_content)
207 );
208 }
const int AUTH_SHIBBOLETH
const int AUTH_LOCAL
const int AUTH_LDAP
const int AUTH_SAML
const int AUTH_APACHE
const int AUTH_OPENID_CONNECT
static _getAllAuthModes()
static getInstanceByServerId(int $a_server_id)
Get instance by server id.
static getServerIdByAuthMode(string $a_auth_mode)
Get auth id by auth mode.
static isAuthModeLDAP(string $a_auth_mode)
Check if user auth mode is LDAP.
static _getNumberOfUsersPerAuthMode()
get number of users per auth mode
static getIdpIdByAuthMode(string $a_auth_mode)
static isAuthModeSaml(string $a_auth_mode)
static getInstanceByIdpId(int $a_idp_id)
special template class to simplify handling of ITX/PEAR
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
Class ilObjForumAdministration.
$server
Definition: shib_login.php:28

References ILIAS\Repository\lng().

Referenced by viewObject().

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

◆ buildAuthModeDeterminationForm()

ilObjAuthSettingsGUI::buildAuthModeDeterminationForm ( )
private

Definition at line 318 of file class.ilObjAuthSettingsGUI.php.

319 {
321 if ($det->getCountActiveAuthModes() <= 1) {
322 return null;
323 }
324
325 $disabled_fields = !$this->rbac_system->checkAccess('write', $this->object->getRefId());
326
327 $automatic_options = [];
328 $counter = 1;
329 $auth_sequenced = $det->getAuthModeSequence();
330 foreach ($auth_sequenced as $auth_mode) {
331 $text = '';
332 switch ($auth_mode) {
333 case ilLDAPServer::isAuthModeLDAP((string) $auth_mode):
334 $auth_id = ilLDAPServer::getServerIdByAuthMode($auth_mode);
336 $text = $server->getName();
337 break;
339 $text = $this->lng->txt('auth_local');
340 break;
342 $text = $this->lng->txt('auth_soap');
343 break;
345 $text = $this->lng->txt('auth_apache');
346 break;
347 default:
348 foreach (ilAuthUtils::getAuthPlugins() as $pl) {
349 $option = $pl->getMultipleAuthModeOptions($auth_mode);
350 $text = $option[$auth_mode]['txt'];
351 }
352 break;
353 }
354
355 $automatic_options['m' . $auth_mode] = $this->ui_factory
356 ->input()
357 ->field()
358 ->numeric($text)
359 ->withDedicatedName('m' . $auth_mode)
360 ->withValue($counter++)
361 ->withDisabled($disabled_fields);
362 }
363
364 $options = [
365 (string) ilAuthModeDetermination::TYPE_MANUAL => $this->ui_factory
366 ->input()
367 ->field()
368 ->group(
369 [],
370 $this->lng->txt('auth_by_user')
371 )
372 ->withDedicatedName((string) ilAuthModeDetermination::TYPE_MANUAL)
373 ->withDisabled($disabled_fields),
374 (string) ilAuthModeDetermination::TYPE_AUTOMATIC => $this->ui_factory
375 ->input()
376 ->field()
377 ->group(
378 $automatic_options,
379 $this->lng->txt('auth_automatic')
380 )
381 ->withDedicatedName((string) ilAuthModeDetermination::TYPE_AUTOMATIC)
382 ->withDisabled($disabled_fields)
383 ];
384
385 $sections = [
386 self::PROP_AUTH_MODE_KIND => $this->ui_factory
387 ->input()
388 ->field()
389 ->switchableGroup(
390 $options,
391 $this->lng->txt('auth_kind_determination'),
392 $this->lng->txt('auth_mode_determination_info')
393 )
394 ->withDedicatedName(self::PROP_AUTH_MODE_KIND)
395 ->withValue((string) $det->getKind())
396 ->withDisabled($disabled_fields)
397 ->withRequired(true)
398 ];
399
400 return $this->ui_factory
401 ->input()
402 ->container()
403 ->form()
404 ->standard($this->ctrl->getFormAction($this, 'updateAuthModeDetermination'), $sections)
405 ->withDedicatedName('auth_mode_determination')
406 ->withAdditionalTransformation(
407 $this->refinery->custom()->transformation(function ($value): array {
408 $auth_mode_kind = (int) ($value[self::PROP_AUTH_MODE_KIND][0] ?? ilAuthModeDetermination::TYPE_MANUAL);
409 $sequence = [];
410 if ($auth_mode_kind === ilAuthModeDetermination::TYPE_AUTOMATIC) {
411 $sequence = (array) ($value[self::PROP_AUTH_MODE_KIND][1] ?? []);
412 }
413
414 $merged_values = array_merge(
415 [
416 self::PROP_AUTH_MODE_KIND => $auth_mode_kind,
417 ],
418 [
419 self::PROP_AUTH_MODE_SEQUENCE => $sequence
420 ]
421 );
422
423 return $merged_values;
424 })
425 );
426 }
static getAuthPlugins()
const int AUTH_SOAP
This describes commonalities between all forms.
Definition: Form.php:33
$counter

References $counter, $server, ilAuthModeDetermination\_getInstance(), ilAuthUtils\AUTH_APACHE, ilAuthUtils\AUTH_LOCAL, ilAuthUtils\AUTH_SOAP, ILIAS\Repository\ctrl(), ilAuthUtils\getAuthPlugins(), ilLDAPServer\getInstanceByServerId(), ilLDAPServer\getServerIdByAuthMode(), ILIAS\Repository\int(), ilLDAPServer\isAuthModeLDAP(), ILIAS\Repository\lng(), ILIAS\Repository\object(), ILIAS\Repository\refinery(), ilAuthModeDetermination\TYPE_AUTOMATIC, and ilAuthModeDetermination\TYPE_MANUAL.

+ Here is the call graph for this function:

◆ buildRegistrationRoleMappingForm()

ilObjAuthSettingsGUI::buildRegistrationRoleMappingForm ( )
private

Definition at line 210 of file class.ilObjAuthSettingsGUI.php.

211 {
212 $disabled_fields = !$this->rbac_system->checkAccess('write', $this->object->getRefId());
213
214 $fields = [];
216
217 $excluded_auth_names = ['default', 'saml', 'shibboleth', 'ldap', 'apache', 'ecs', 'openid'];
218 // do not list auth modes with external login screen
219 // even not default, because it can easily be set to
220 // a non-working auth mode
221 $active_auth_modes = array_filter(
223 static fn(string $auth_name): bool => in_array($auth_name, $excluded_auth_names, true),
224 ARRAY_FILTER_USE_KEY
225 );
226
227 foreach ($reg_roles as $role) {
228 $options = [];
229 $value = null;
230 foreach ($active_auth_modes as $auth_name => $auth_key) {
231 if ($auth_name === 'default') {
232 $name = $this->lng->txt('auth_' . $auth_name) . ' (' . $this->lng->txt(
233 'auth_' . ilAuthUtils::_getAuthModeName($auth_key)
234 ) . ')';
235 } elseif ($id = ilLDAPServer::getServerIdByAuthMode((string) $auth_key)) {
237 $name = $server->getName();
238 } elseif ($id = ilSamlIdp::getIdpIdByAuthMode((string) $auth_key)) {
240 $name = $idp->getEntityId();
241 } else {
242 $name = $this->lng->txt('auth_' . $auth_name);
243 }
244
245 $options[$auth_name] = $name;
246
247 if ($role['auth_mode'] === $auth_name) {
248 $value = $auth_name;
249 }
250 }
251
252 if ($options === []) {
253 continue;
254 }
255
256 $value = $value ?? ilAuthUtils::AUTH_LOCAL;
257
258 $fields['r_' . $role['id']] = $this->ui_factory
259 ->input()
260 ->field()
261 ->select(
262 $role['title'],
263 $options,
264 $this->lng->txt('auth_role_auth_mode')
265 )
266 ->withRequired(true)
267 ->withValue($value)
268 ->withDedicatedName('r_' . $role['id'])
269 ->withDisabled($disabled_fields);
270 }
271
272 return $this->ui_factory
273 ->input()
274 ->container()
275 ->form()
276 ->standard($this->ctrl->getFormAction($this, 'updateRegistrationRoleMapping'), $fields)
277 ->withDedicatedName('registration_role_mapping');
278 }
static _getActiveAuthModes()
static _getAuthModeName($a_auth_key)
static _lookupRegisterAllowed()
get all roles that are activated in user registration

References $id, $server, ilAuthUtils\_getActiveAuthModes(), ilAuthUtils\_getAuthModeName(), ilObjRole\_lookupRegisterAllowed(), ilAuthUtils\AUTH_LOCAL, ILIAS\Repository\ctrl(), ilSamlIdp\getIdpIdByAuthMode(), ilSamlIdp\getInstanceByIdpId(), ilLDAPServer\getInstanceByServerId(), ilLDAPServer\getServerIdByAuthMode(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ buildSOAPForm()

ilObjAuthSettingsGUI::buildSOAPForm ( string  $submit_action)
private

Definition at line 558 of file class.ilObjAuthSettingsGUI.php.

561 $role_list = $this->rbac_review->getRolesByFilter(2, $this->object->getId());
562 $roles = [];
563
564 foreach ($role_list as $role) {
565 $roles[$role['obj_id']] = $role['title'];
566 }
567
568 $active = $this->ui_factory
569 ->input()
570 ->field()
571 ->checkbox($this->lng->txt('active'))
572 ->withValue((bool) $this->settings->get('soap_auth_active', ''));
573
574 $server = $this->ui_factory
575 ->input()
576 ->field()
577 ->text(
578 $this->lng->txt('server'),
579 $this->lng->txt('auth_soap_server_desc')
580 )
581 ->withMaxLength(256)
582 ->withRequired(true)
583 ->withValue($this->settings->get('soap_auth_server', ''));
584
585 $port = $this->ui_factory
586 ->input()
587 ->field()
588 ->numeric(
589 $this->lng->txt('port'),
590 $this->lng->txt('auth_soap_port_desc')
591 )
592 ->withAdditionalTransformation($this->refinery->int()->isGreaterThan(0))
593 ->withAdditionalTransformation(
594 $this->refinery->int()->isLessThan(65536)
595 )
596 ->withValue((int) $this->settings->get('soap_auth_port', '0'));
597
598 $use_https = $this->ui_factory
599 ->input()
600 ->field()
601 ->checkbox($this->lng->txt('auth_soap_use_https'))
602 ->withValue((bool) $this->settings->get('soap_auth_use_https', ''));
603
604 $uri = $this->ui_factory
605 ->input()
606 ->field()
607 ->text(
608 $this->lng->txt('uri'),
609 $this->lng->txt('auth_soap_uri_desc')
610 )
611 ->withMaxLength(256)
612 ->withValue($this->settings->get('soap_auth_uri', ''));
613
614 $namespace = $this->ui_factory
615 ->input()
616 ->field()
617 ->text(
618 $this->lng->txt('auth_soap_namespace'),
619 $this->lng->txt('auth_soap_namespace_desc')
620 )
621 ->withMaxLength(256)
622 ->withValue($this->settings->get('soap_auth_namespace', ''));
623
624 $dotnet = $this->ui_factory
625 ->input()
626 ->field()
627 ->checkbox($this->lng->txt('auth_soap_use_dotnet'))
628 ->withValue((bool) $this->settings->get('soap_auth_use_dotnet', ''));
629
630 $createuser = $this->ui_factory
631 ->input()
632 ->field()
633 ->checkbox(
634 $this->lng->txt('auth_create_users'),
635 $this->lng->txt('auth_soap_create_users_desc')
636 )
637 ->withValue((bool) $this->settings->get('soap_auth_create_users', ''));
638
639 $sendmail = $this->ui_factory
640 ->input()
641 ->field()
642 ->checkbox(
643 $this->lng->txt('user_send_new_account_mail'),
644 $this->lng->txt('auth_new_account_mail_desc')
645 )
646 ->withValue((bool) $this->settings->get('soap_auth_account_mail', ''));
647
648 $defaultrole = $this->ui_factory
649 ->input()
650 ->field()
651 ->select(
652 $this->lng->txt('auth_user_default_role'),
653 $roles,
654 $this->lng->txt('auth_soap_user_default_role_desc')
655 )
656 ->withValue($this->settings->get('soap_auth_user_default_role', '4'))
657 ->withAdditionalTransformation($this->refinery->int()->isGreaterThan(0));
658
659 $allowlocal = $this->ui_factory
660 ->input()
661 ->field()
662 ->checkbox(
663 $this->lng->txt('auth_allow_local'),
664 $this->lng->txt('auth_soap_allow_local_desc')
665 )
666 ->withValue((bool) $this->settings->get('soap_auth_user_default_role', ''));
667
668 $form = $this->ui_factory->input()->container()->form()->standard(
669 $submit_action,
670 [
671 'active' => $active,
672 'server' => $server,
673 'port' => $port,
674 'use_https' => $use_https,
675 'uri' => $uri,
676 'namespace' => $namespace,
677 'dotnet' => $dotnet,
678 'createuser' => $createuser,
679 'sendmail' => $sendmail,
680 'defaultrole' => $defaultrole,
681 'allowlocal' => $allowlocal
682 ]
683 );
684 return $form;
685 }
if($err=$client->getError()) $namespace

◆ buildSOAPTestForm()

ilObjAuthSettingsGUI::buildSOAPTestForm ( string  $submit_action)
private

Definition at line 687 of file class.ilObjAuthSettingsGUI.php.

690 $ext_uid = $this->ui_factory->input()->field()->text(
691 'ext_uid'
692 );
693 $soap_pw = $this->ui_factory->input()->field()->text(
694 'soap_pw'
695 );
696 $new_user = $this->ui_factory->input()->field()
697 ->checkbox('new_user');
698 return $this->ui_factory->input()->container()->form()->standard(
699 $submit_action,
700 [
701 'ext_uid' => $ext_uid,
702 'soap_pw' => $soap_pw,
703 'new_user' => $new_user
704 ]
705 )->withSubmitLabel('Send');
706 }
$soap_pw
$ext_uid
$new_user

◆ cancelObject()

ilObjAuthSettingsGUI::cancelObject ( )

cancel action and go back to previous page

Reimplemented from ilObjectGUI.

Definition at line 483 of file class.ilObjAuthSettingsGUI.php.

483 : void
484 {
485 $this->ctrl->redirect($this, 'authSettings');
486 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ editScriptObject()

ilObjAuthSettingsGUI::editScriptObject ( )

Definition at line 780 of file class.ilObjAuthSettingsGUI.php.

780 : void
781 {
782 if (!$this->rbac_system->checkAccess('write', $this->object->getRefId())) {
783 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
784 }
785
786 if ($_SESSION['error_post_vars']) {
787 $this->tpl->setVariable('AUTH_SCRIPT_NAME', $_SESSION['error_post_vars']['auth_script']['name']);
788 } else {
789 $settings = $this->ilias->getAllSettings();
790
791 $this->tpl->setVariable('AUTH_SCRIPT_NAME', $settings['auth_script_name']);
792 }
793
794 $this->tabs_gui->setTabActive('auth_script');
795
796 $this->tpl->addBlockFile(
797 'ADM_CONTENT',
798 'adm_content',
799 'tpl.auth_script.html',
800 'components/ILIAS/Authentication'
801 );
802
803 $this->tpl->setVariable('FORMACTION', $this->ctrl->getFormAction($this));
804 $this->tpl->setVariable('COLSPAN', 3);
805 $this->tpl->setVariable('TXT_AUTH_SCRIPT_TITLE', $this->lng->txt('auth_script_configure'));
806 $this->tpl->setVariable('TXT_OPTIONS', $this->lng->txt('options'));
807 $this->tpl->setVariable('TXT_AUTH_SCRIPT_NAME', $this->lng->txt('auth_script_name'));
808
809 $this->tpl->setVariable('TXT_REQUIRED_FLD', $this->lng->txt('required_field'));
810 $this->tpl->setVariable('TXT_CANCEL', $this->lng->txt('cancel'));
811 $this->tpl->setVariable('TXT_SUBMIT', $this->lng->txt('save'));
812 $this->tpl->setVariable('CMD_SUBMIT', 'saveScript');
813 }

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ editSOAPObject()

ilObjAuthSettingsGUI::editSOAPObject ( )

Definition at line 708 of file class.ilObjAuthSettingsGUI.php.

708 : void
709 {
710 if (!$this->rbac_system->checkAccess('read', $this->object->getRefId())) {
711 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
712 }
713
714 $soap_form = $this->buildSOAPForm($this->ctrl->getFormAction($this, 'saveSOAP'));
715 $test_form = $this->buildSOAPTestForm($this->ctrl->getFormAction($this, 'testSoapAuthConnection'));
716
717 $this->tabs_gui->setTabActive('auth_soap');
718 $panel = $this->ui_factory->panel()->standard('SOAP', [$soap_form, $test_form]);
719 $this->tpl->setContent($this->ui_renderer->render($panel));
720 }
buildSOAPTestForm(string $submit_action)
buildSOAPForm(string $submit_action)

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ executeCommand()

ilObjAuthSettingsGUI::executeCommand ( )

Reimplemented from ilObjectGUI.

Definition at line 845 of file class.ilObjAuthSettingsGUI.php.

845 : void
846 {
847 $next_class = $this->ctrl->getNextClass($this) ?? '';
848 $cmd = $this->ctrl->getCmd() ?? '';
849 $this->prepareOutput();
850
851 if (!$this->rbac_system->checkAccess('visible,read', $this->object->getRefId())) {
852 $this->error->raiseError($this->lng->txt('msg_no_perm_read'), $this->error->WARNING);
853 }
854
855 switch ($next_class) {
856 case 'ilopenidconnectsettingsgui':
857 $this->tabs_gui->activateTab('auth_oidconnect');
858
859 $oid = new ilOpenIdConnectSettingsGUI($this->object->getRefId());
860 $this->ctrl->forwardCommand($oid);
861 break;
862
863 case 'ilsamlsettingsgui':
864 $this->tabs_gui->setTabActive('auth_saml');
865
866 $os = new ilSamlSettingsGUI($this->object->getRefId());
867 $this->ctrl->forwardCommand($os);
868 break;
869
870 case 'ilregistrationsettingsgui':
871 $this->tabs_gui->setTabActive('registration_settings');
872
873 $registration_gui = new ilRegistrationSettingsGUI();
874 $this->ctrl->forwardCommand($registration_gui);
875 break;
876
877 case 'ilpermissiongui':
878 $this->tabs_gui->setTabActive('perm_settings');
879
880 $perm_gui = new ilPermissionGUI($this);
881 $this->ctrl->forwardCommand($perm_gui);
882 break;
883
884 case 'illdapsettingsgui':
885 $this->tabs_gui->setTabActive('auth_ldap');
886
887 $ldap_settings_gui = new ilLDAPSettingsGUI($this->object->getRefId());
888 $this->ctrl->forwardCommand($ldap_settings_gui);
889 break;
890
891 case 'ilauthshibbolethsettingsgui':
892 $this->tabs_gui->setTabActive('auth_shib');
893
894 $shib_settings_gui = new ilAuthShibbolethSettingsGUI($this->object->getRefId());
895 $this->ctrl->forwardCommand($shib_settings_gui);
896 break;
897
898 case strtolower(ilAuthPageEditorGUI::class):
899 $this->setSubTabs('authSettings');
900 $this->tabs_gui->setTabActive('authentication_settings');
901 $this->tabs_gui->setSubTabActive('auth_login_editor');
902
903 $lpe = new ilAuthPageEditorGUI($this->object->getRefId());
904 $this->ctrl->forwardCommand($lpe);
905 break;
906
907 case strtolower(ilObjectContentStyleSettingsGUI::class):
908 $this->checkPermission('write');
909 $this->setTitleAndDescription();
910 $this->setSubTabs('authSettings');
911 $this->tabs_gui->activateTab('authentication_settings');
912 $this->tabs_gui->activateSubTab('style');
913
914 $settings_gui = $this->content_style_gui
915 ->objectSettingsGUIForRefId(
916 null,
917 $this->object->getRefId()
918 );
919 $this->ctrl->forwardCommand($settings_gui);
920 break;
921
922 case strtolower(ilAuthLogoutBehaviourGUI::class):
923 $this->setSubTabs('authSettings');
924 $this->tabs_gui->setTabActive('authentication_settings');
925 $this->tabs_gui->setSubTabActive('logout_behaviour');
926
927 $gui = new ilAuthLogoutBehaviourGUI();
928 $this->ctrl->forwardCommand($gui);
929 break;
930
931 default:
932 if (!$cmd) {
933 $cmd = 'authSettings';
934 }
935 $cmd .= 'Object';
936 $this->$cmd();
937
938 break;
939 }
940 }
error(string $a_errmsg)
@ilCtrl_isCalledBy ilAuthLogoutBehaviourGUI: ilObjAuthSettingsGUI @ilCtrl_Calls ilAuthLogoutBehaviour...
@ilCtrl_isCalledBy ilAuthPageEditorGUI: ilObjAuthSettingsGUI @ilCtrl_Calls ilAuthPageEditorGUI: ilLog...
Class ilAuthShibbolethSettingsGUI.
checkPermission(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
prepareOutput(bool $show_sub_objects=true)
Class ilRegistrationSettingsGUI.

References ILIAS\Repository\ctrl(), error(), ILIAS\Repository\lng(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ getAdminTabs()

ilObjAuthSettingsGUI::getAdminTabs ( )

administration tabs show only permissions and trash folder

Reimplemented from ilObjectGUI.

Definition at line 942 of file class.ilObjAuthSettingsGUI.php.

942 : void
943 {
944 $this->getTabs();
945 }
getTabs()
@abstract overwrite in derived GUI class of your object type

◆ getAuthModeTitle()

ilObjAuthSettingsGUI::getAuthModeTitle ( )
private

Definition at line 832 of file class.ilObjAuthSettingsGUI.php.

832 : string
833 {
834 return match ((int) $this->ilias->getSetting('auth_mode')) {
835 ilAuthUtils::AUTH_LOCAL => $this->lng->txt('auth_local'),
836 ilAuthUtils::AUTH_LDAP => $this->lng->txt('auth_ldap'),
837 ilAuthUtils::AUTH_SHIBBOLETH => $this->lng->txt('auth_shib'),
838 ilAuthUtils::AUTH_SAML => $this->lng->txt('auth_saml'),
839 ilAuthUtils::AUTH_SCRIPT => $this->lng->txt('auth_script'),
840 ilAuthUtils::AUTH_APACHE => $this->lng->txt('auth_apache'),
841 default => $this->lng->txt('unknown'),
842 };
843 }
const int AUTH_SCRIPT

References ilAuthUtils\AUTH_LOCAL, ilAuthUtils\AUTH_SCRIPT, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getTabs()

ilObjAuthSettingsGUI::getTabs ( )
protected

@abstract overwrite in derived GUI class of your object type

Reimplemented from ilObjectGUI.

Definition at line 947 of file class.ilObjAuthSettingsGUI.php.

947 : void
948 {
949 $this->ctrl->setParameter($this, 'ref_id', $this->object->getRefId());
950
951 if ($this->rbac_system->checkAccess('visible,read', $this->object->getRefId())) {
952 $this->tabs_gui->addTarget(
953 'authentication_settings',
954 $this->ctrl->getLinkTarget($this, 'authSettings'),
955 '',
956 '',
957 ''
958 );
959
960 $this->tabs_gui->addTarget(
961 'registration_settings',
962 $this->ctrl->getLinkTargetByClass('ilregistrationsettingsgui', 'view')
963 );
964
965 $this->tabs_gui->addTarget(
966 'auth_ldap',
967 $this->ctrl->getLinkTargetByClass('illdapsettingsgui', 'serverList'),
968 '',
969 '',
970 ''
971 );
972
973 $this->tabs_gui->addTarget(
974 'auth_shib',
975 $this->ctrl->getLinkTargetByClass('ilauthshibbolethsettingsgui', 'settings')
976 );
977
978 $this->tabs_gui->addTarget(
979 'auth_soap',
980 $this->ctrl->getLinkTarget($this, 'editSOAP'),
981 '',
982 '',
983 ''
984 );
985
986 $this->tabs_gui->addTarget(
987 'apache_auth_settings',
988 $this->ctrl->getLinkTarget($this, self::CMD_SHOW_APACHE_SETTINGS),
989 '',
990 '',
991 ''
992 );
993
994 $this->tabs_gui->addTarget(
995 'auth_saml',
996 $this->ctrl->getLinkTargetByClass('ilsamlsettingsgui', ilSamlSettingsGUI::DEFAULT_CMD),
997 '',
998 '',
999 ''
1000 );
1001
1002 $this->tabs_gui->addTab(
1003 'auth_oidconnect',
1004 $this->lng->txt('auth_oidconnect'),
1005 $this->ctrl->getLinkTargetByClass('ilopenidconnectsettingsgui')
1006 );
1007 }
1008
1009 if ($this->rbac_system->checkAccess('edit_permission', $this->object->getRefId())) {
1010 $this->tabs_gui->addTarget(
1011 'perm_settings',
1012 $this->ctrl->getLinkTargetByClass([get_class($this), 'ilpermissiongui'], 'perm'),
1013 ['perm', 'info', 'owner'],
1014 'ilpermissiongui'
1015 );
1016 }
1017 }

References ILIAS\Repository\ctrl(), ilSamlSettingsGUI\DEFAULT_CMD, ILIAS\Repository\lng(), and ILIAS\Repository\object().

+ Here is the call graph for this function:

◆ registrationSettingsObject()

ilObjAuthSettingsGUI::registrationSettingsObject ( )

Definition at line 1173 of file class.ilObjAuthSettingsGUI.php.

1173 : void
1174 {
1175 $registration_gui = new ilRegistrationSettingsGUI();
1176 $this->ctrl->redirect($registration_gui);
1177 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ saveApacheSettingsObject()

ilObjAuthSettingsGUI::saveApacheSettingsObject ( )

Definition at line 1093 of file class.ilObjAuthSettingsGUI.php.

1093 : void
1094 {
1095 $form = (new ApacheAuthSettingsForm(
1096 $this->ref_id,
1097 $this,
1098 self::CMD_SHOW_APACHE_SETTINGS,
1099 self::CMD_SAVE_APACHE_SETTINGS
1100 ))->buildForm()->withRequest($this->http->request());
1101 if (!$form->getError()) {
1102 $data = $form->getData();
1103
1104 $settings = new ilSetting('apache_auth');
1105
1106 $fields = [
1107 'apache_auth_indicator_name',
1108 'apache_auth_indicator_value',
1109 'apache_enable_auth',
1110 'apache_enable_local',
1111 'apache_local_autocreate',
1112 'apache_enable_ldap',
1113 'apache_auth_username_config_type',
1114 'apache_auth_username_direct_mapping_fieldname',
1115 'apache_default_role',
1116 'apache_auth_target_override_login_page',
1117 'apache_auth_enable_override_login_page',
1118 'apache_auth_authenticate_on_login_page',
1119 'apache_ldap_sid'
1120 ];
1121
1122 foreach ($fields as $field) {
1123 $value = match ($field) {
1124 'apache_enable_auth',
1125 'apache_auth_enable_override_login_page',
1126 'apache_auth_username_config',
1127 'apache_auth_security',
1128 'apache_enable_ldap' => (bool) ($data[$field] ?? false),
1129 'apache_auth_username_config_type' => $data['apache_auth_username_config'][$field][0] ?? 1,
1130 'apache_auth_target_override_login_page' => $data['apache_auth_enable_override_login_page'][$field] ?? '',
1131 'apache_auth_username_direct_mapping_fieldname' => $data['apache_auth_username_config']['apache_auth_username_config_type'][1][$field] ?? '',
1132 'apache_auth_domains' => $data['apache_auth_security'][$field] ?? '',
1133 'apache_local_autocreate' => (bool) ($data['apache_enable_auth'][$field] ?? false),
1134 'apache_default_role' => $data['apache_enable_auth']['apache_local_autocreate'][$field] ?? 4,
1135 'apache_ldap_sid' => $data['apache_enable_ldap'][$field] ?? '',
1136 default => $data[$field],
1137 };
1138
1139 $settings->set(
1140 $field,
1141 ilUtil::stripSlashes(trim((string) ($value === false ? '0' : $value)))
1142 );
1143 }
1144
1145 if ($data[$field] ?? false) {
1146 $this->ilias->setSetting('apache_active', '1');
1147 } else {
1148 $this->ilias->setSetting('apache_active', '0');
1149 if ($this->ilias->getSetting('auth_mode', '0') === ilAuthUtils::AUTH_APACHE) {
1150 $this->ilias->setSetting('auth_mode', (string) ilAuthUtils::AUTH_LOCAL);
1151 }
1152 }
1153
1154 $allowed_domains = $this->validateApacheAuthAllowedDomains($data['apache_auth_security']['apache_auth_domains'] ?? '');
1155 file_put_contents(ILIAS_DATA_DIR . '/' . CLIENT_ID . '/apache_auth_allowed_domains.txt', $allowed_domains);
1156
1157 $this->tpl->setOnScreenMessage(
1158 $this->tpl::MESSAGE_TYPE_SUCCESS,
1159 $this->lng->txt('apache_settings_changed_success'),
1160 true
1161 );
1162 $this->ctrl->redirect($this, self::CMD_SHOW_APACHE_SETTINGS);
1163 }
1164
1165 $this->ctrl->redirect($this, self::CMD_SHOW_APACHE_SETTINGS);
1166 }
set(string $a_key, string $a_val)
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static http()
Fetches the global http state from ILIAS.

References $data, ilAuthUtils\AUTH_APACHE, ilAuthUtils\AUTH_LOCAL, CLIENT_ID, ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS_DATA_DIR, ILIAS\Repository\lng(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ saveScriptObject()

ilObjAuthSettingsGUI::saveScriptObject ( )

Definition at line 815 of file class.ilObjAuthSettingsGUI.php.

815 : void
816 {
817 if (!$_POST['auth_script']['name']) {
818 $this->ilias->raiseError($this->lng->txt('fill_out_all_required_fields'), $this->ilias->error_obj->MESSAGE);
819 }
820
821 $this->ilias->setSetting('auth_script_name', $_POST['auth_script']['name']);
822 $this->ilias->setSetting('auth_mode', (string) ilAuthUtils::AUTH_SCRIPT);
823
824 $this->tpl->setOnScreenMessage(
825 'success',
826 $this->lng->txt('auth_mode_changed_to') . ' ' . $this->getAuthModeTitle(),
827 true
828 );
829 $this->ctrl->redirect($this, 'editScript');
830 }
$_POST['cmd']
Definition: lti.php:27

References $_POST, ilAuthUtils\AUTH_SCRIPT, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ saveSOAPObject()

ilObjAuthSettingsGUI::saveSOAPObject ( )

Definition at line 745 of file class.ilObjAuthSettingsGUI.php.

745 : void
746 {
747 if (!$this->rbac_system->checkAccess('write', $this->object->getRefId())) {
748 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
749 }
750
751 $soap_form = $this->buildSOAPForm($this->ctrl->getFormAction($this, 'saveSOAP'));
752 $test_form = $this->buildSOAPTestForm($this->ctrl->getFormAction($this, 'testSoapAuthConnection'));
753 if ($this->request->getMethod() === 'POST') {
754 $soap_form = $soap_form->withRequest($this->request);
755 $result = $soap_form->getData();
756 if ($result !== null) {
757 $this->settings->set('soap_auth_active', (string) $result['active']);
758 $this->settings->set('soap_auth_server', $result['server']);
759 $this->settings->set('soap_auth_port', (string) $result['port']);
760 $this->settings->set('soap_auth_use_https', (string) $result['use_https']);
761 $this->settings->set('soap_auth_uri', $result['uri']);
762 $this->settings->set('soap_auth_namespace', $result['namespace']);
763 $this->settings->set('soap_auth_use_dotnet', (string) $result['dotnet']);
764 $this->settings->set('soap_auth_create_users', (string) $result['createuser']);
765 $this->settings->set('soap_auth_account_mail', (string) $result['sendmail']);
766 $this->settings->set('soap_auth_user_default_role', (string) $result['defaultrole']);
767 $this->settings->set('soap_auth_allow_local', (string) $result['allowlocal']);
768
769 $this->tpl->setOnScreenMessage('success', $this->lng->txt('auth_soap_settings_saved'), true);
770 $this->logger->info('data' . print_r($result, true));
771 $this->ctrl->redirect($this, 'editSOAP');
772 }
773 }
774
775 $this->tabs_gui->setTabActive('auth_soap');
776 $panel = $this->ui_factory->panel()->standard('SOAP', [$soap_form, $test_form]);
777 $this->tpl->setContent($this->ui_renderer->render($panel));
778 }

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), and ILIAS\Repository\settings().

+ Here is the call graph for this function:

◆ setAuthModeObject()

ilObjAuthSettingsGUI::setAuthModeObject ( )

Definition at line 488 of file class.ilObjAuthSettingsGUI.php.

488 : void
489 {
490 if (!$this->rbac_system->checkAccess('write', $this->object->getRefId())) {
491 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
492 }
493 $this->logger->debug('auth mode available:' . $this->request_wrapper->has('auth_mode'));
494
495 if (!$this->http->wrapper()->post()->has('auth_mode')) {
496 $this->ilias->raiseError($this->lng->txt('auth_err_no_mode_selected'), $this->ilias->error_obj->MESSAGE);
497 }
498 $new_auth_mode = $this->http->wrapper()->post()->retrieve('auth_mode', $this->refinery->to()->string());
499 $this->logger->debug('auth mode:' . $new_auth_mode);
500 $current_auth_mode = $this->settings->get('auth_mode', '');
501 if ($new_auth_mode === $current_auth_mode) {
502 $this->tpl->setOnScreenMessage(
503 'info',
504 $this->lng->txt('auth_mode') . ': ' . $this->getAuthModeTitle() . ' ' . $this->lng->txt(
505 'auth_mode_not_changed'
506 ),
507 true
508 );
509 $this->ctrl->redirect($this, 'authSettings');
510 }
511
512 switch ((int) $new_auth_mode) {
514 break;
515
516 // @fix changed from AUTH_SHIB > is not defined
518 if ($this->object->checkAuthSHIB() !== true) {
519 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('auth_shib_not_configured'), true);
521 $this->getReturnLocation(
522 'authSettings',
523 $this->ctrl->getLinkTargetByClass(
524 ilAuthShibbolethSettingsGUI::class,
525 'settings',
526 '',
527 false,
528 false
529 )
530 )
531 );
532 }
533 break;
534
536 if ($this->object->checkAuthScript() !== true) {
537 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('auth_script_not_configured'), true);
539 $this->getReturnLocation(
540 'authSettings',
541 $this->ctrl->getLinkTarget($this, 'editScript', '', false, false)
542 )
543 );
544 }
545 break;
546 }
547
548 $this->ilias->setSetting('auth_mode', $new_auth_mode);
549
550 $this->tpl->setOnScreenMessage(
551 'success',
552 $this->lng->txt('auth_default_mode_changed_to') . ' ' . $this->getAuthModeTitle(),
553 true
554 );
555 $this->ctrl->redirect($this, 'authSettings');
556 }
getReturnLocation(string $cmd, string $default_location="")
Get return location for command (command is method name without "Object", e.g.
static redirect(string $a_script)

References ilAuthUtils\AUTH_SAML, ilAuthUtils\AUTH_SCRIPT, ilAuthUtils\AUTH_SHIBBOLETH, ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), ILIAS\Repository\object(), ilUtil\redirect(), ILIAS\Repository\refinery(), and ILIAS\Repository\settings().

+ Here is the call graph for this function:

◆ setSubTabs()

ilObjAuthSettingsGUI::setSubTabs ( string  $a_tab)

Definition at line 1019 of file class.ilObjAuthSettingsGUI.php.

1019 : void
1020 {
1021 $this->lng->loadLanguageModule('auth');
1022
1023 if ($a_tab === 'authSettings' && $this->access->checkAccess('write', '', $this->object->getRefId())) {
1024 $this->tabs_gui->addSubTabTarget(
1025 'auth_settings',
1026 $this->ctrl->getLinkTarget($this, 'authSettings'),
1027 ''
1028 );
1029
1030 foreach (AuthPageEditorContext::cases() as $auth_ipe_context) {
1031 $this->ctrl->setParameterByClass(
1032 ilAuthPageEditorGUI::class,
1034 $auth_ipe_context->value
1035 );
1036 $this->tabs_gui->addSubTabTarget(
1037 $auth_ipe_context->tabIdentifier(),
1038 $this->ctrl->getLinkTargetByClass(
1039 ilAuthPageEditorGUI::class,
1041 )
1042 );
1043 $this->ctrl->setParameterByClass(
1044 ilAuthPageEditorGUI::class,
1046 null
1047 );
1048 }
1049
1050 $this->tabs_gui->addSubTabTarget(
1051 'logout_behaviour',
1052 $this->ctrl->getLinkTargetByClass(ilAuthLogoutBehaviourGUI::class, ''),
1053 ''
1054 );
1055
1056 $this->tabs_gui->addSubTab(
1057 'style',
1058 $this->lng->txt('cont_style'),
1059 $this->ctrl->getLinkTargetByClass(ilObjectContentStyleSettingsGUI::class)
1060 );
1061 }
1062 }
final const string CONTEXT_HTTP_PARAM
final const string DEFAULT_COMMAND

References ILIAS\Repository\access(), ilAuthPageEditorGUI\CONTEXT_HTTP_PARAM, ILIAS\Repository\ctrl(), ilAuthPageEditorGUI\DEFAULT_COMMAND, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ testSoapAuthConnectionObject()

ilObjAuthSettingsGUI::testSoapAuthConnectionObject ( )

Definition at line 722 of file class.ilObjAuthSettingsGUI.php.

722 : void
723 {
724 if (!$this->rbac_system->checkAccess('read', $this->object->getRefId())) {
725 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
726 }
727
728 $soap_form = $this->buildSOAPForm($this->ctrl->getFormAction($this, 'saveSOAP'));
729 $test_form = $this->buildSOAPTestForm($this->ctrl->getFormAction($this, 'testSoapAuthConnection'));
730 $panel_content = [$soap_form, $test_form];
731 if ($this->request->getMethod() === 'POST') {
732 $test_form = $test_form->withRequest($this->request);
733 $result = $test_form->getData();
734 if ($result !== null) {
735 $panel_content[] = $this->ui_factory->legacy()->content(
736 ilSOAPAuth::testConnection($result['ext_uid'], $result['soap_pw'], $result['new_user'])
737 );
738 }
739 }
740 $this->tabs_gui->setTabActive('auth_soap');
741 $panel = $this->ui_factory->panel()->standard('SOAP', $panel_content);
742 $this->tpl->setContent($this->ui_renderer->render($panel));
743 }

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ updateAuthModeDeterminationObject()

ilObjAuthSettingsGUI::updateAuthModeDeterminationObject ( )
private

Definition at line 428 of file class.ilObjAuthSettingsGUI.php.

428 : void
429 {
430 if (!$this->rbac_system->checkAccess('write', $this->object->getRefId())) {
431 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
432 }
433
434 $form = $this->buildAuthModeDeterminationForm();
435 if ($form === null) {
436 $this->authSettingsObject();
437 return;
438 }
439
440 $form_valid = false;
441 $form_data = null;
442 if ($this->http->request()->getMethod() === 'POST') {
443 $form = $form->withRequest($this->http->request());
444 $form_data = $form->getData();
445 $form_valid = $form_data !== null;
446 }
447
448 if (!$form_valid) {
449 $this->tpl->setOnScreenMessage(
450 $this->tpl::MESSAGE_TYPE_FAILURE,
451 $this->lng->txt('err_wrong_login')
452 );
453 $this->authSettingsObject($form);
454 return;
455 }
456
458 $kind = (int) $form_data[self::PROP_AUTH_MODE_KIND];
459 $det->setKind($kind);
461 $sequence = $form_data[self::PROP_AUTH_MODE_SEQUENCE];
462 $this->logger->debug('pos mode:' . print_r($sequence, true));
463 asort($sequence, SORT_NUMERIC);
464 $this->logger->debug('pos mode:' . print_r($sequence, true));
465 $counter = 0;
466 $position = [];
467 foreach (array_keys($sequence) as $auth_mode) {
468 $position[$counter++] = substr($auth_mode, 1);
469 }
470 $this->logger->debug('position mode:' . print_r($position, true));
471 $det->setAuthModeSequence($position);
472 }
473 $det->save();
474
475 $this->tpl->setOnScreenMessage(
476 $this->tpl::MESSAGE_TYPE_SUCCESS,
477 $this->lng->txt('settings_saved'),
478 true
479 );
480 $this->ctrl->redirect($this, 'authSettings');
481 }
authSettingsObject(?ILIAS\UI\Component\Input\Container\Form\Form $auth_mode_determination_form=null, ?ILIAS\UI\Component\Input\Container\Form\Form $registration_role_mapping_form=null)

References $counter, ilAuthModeDetermination\_getInstance(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), ILIAS\Repository\int(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), and ilAuthModeDetermination\TYPE_AUTOMATIC.

+ Here is the call graph for this function:

◆ updateRegistrationRoleMappingObject()

ilObjAuthSettingsGUI::updateRegistrationRoleMappingObject ( )
private

Definition at line 280 of file class.ilObjAuthSettingsGUI.php.

280 : void
281 {
282 if (!$this->rbac_system->checkAccess('write', $this->object->getRefId())) {
283 $this->ilias->raiseError($this->lng->txt('permission_denied'), $this->ilias->error_obj->MESSAGE);
284 }
285
286 $form = $this->buildRegistrationRoleMappingForm();
287 $form_valid = false;
288 $form_data = null;
289 if ($this->http->request()->getMethod() === 'POST') {
290 $form = $form->withRequest($this->http->request());
291 $form_data = $form->getData();
292 $form_valid = $form_data !== null;
293 }
294
295 if (!$form_valid) {
296 $this->tpl->setOnScreenMessage(
297 $this->tpl::MESSAGE_TYPE_FAILURE,
298 $this->lng->txt('err_wrong_login')
299 );
300 $this->authSettingsObject(null, $form);
301 return;
302 }
303
304 $f_object = [];
305 foreach ($form_data as $role_id => $auth_mode) {
306 $f_object[substr($role_id, 2)] = $auth_mode;
307 }
309
310 $this->tpl->setOnScreenMessage(
311 $this->tpl::MESSAGE_TYPE_SUCCESS,
312 $this->lng->txt('auth_mode_roles_changed'),
313 true
314 );
315 $this->ctrl->redirect($this, 'authSettings');
316 }
static _updateAuthMode(array $a_roles)

References ilObjRole\_updateAuthMode(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ validateApacheAuthAllowedDomains()

ilObjAuthSettingsGUI::validateApacheAuthAllowedDomains ( string  $text)
private

Definition at line 1168 of file class.ilObjAuthSettingsGUI.php.

1168 : string
1169 {
1170 return implode("\n", preg_split("/[\r\n]+/", $text));
1171 }

◆ viewObject()

ilObjAuthSettingsGUI::viewObject ( )

viewObject container presentation for "administration -> repository, trash, permissions"

Reimplemented from ilObjectGUI.

Definition at line 58 of file class.ilObjAuthSettingsGUI.php.

58 : void
59 {
60 $this->authSettingsObject();
61 }

References authSettingsObject().

+ Here is the call graph for this function:

Field Documentation

◆ $content_style_gui

GUIService ilObjAuthSettingsGUI::$content_style_gui
private

Definition at line 42 of file class.ilObjAuthSettingsGUI.php.

◆ $logger

ilLogger ilObjAuthSettingsGUI::$logger
private

Definition at line 40 of file class.ilObjAuthSettingsGUI.php.

◆ CMD_SAVE_APACHE_SETTINGS

const string ilObjAuthSettingsGUI::CMD_SAVE_APACHE_SETTINGS = 'saveApacheSettings'
private

Definition at line 36 of file class.ilObjAuthSettingsGUI.php.

◆ CMD_SHOW_APACHE_SETTINGS

const string ilObjAuthSettingsGUI::CMD_SHOW_APACHE_SETTINGS = 'apacheAuthSettings'
private

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

◆ PROP_AUTH_MODE_KIND

const string ilObjAuthSettingsGUI::PROP_AUTH_MODE_KIND = 'kind'
private

Definition at line 37 of file class.ilObjAuthSettingsGUI.php.

◆ PROP_AUTH_MODE_SEQUENCE

const string ilObjAuthSettingsGUI::PROP_AUTH_MODE_SEQUENCE = 'sequence'
private

Definition at line 38 of file class.ilObjAuthSettingsGUI.php.


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