19 declare(strict_types=1);
47 protected \ILIAS\HTTP\Services
$http;
60 $this->tpl = $DIC->ui()->mainTemplate();
61 $this->
ctrl = $DIC->ctrl();
62 $this->
access = $DIC->access();
63 $this->rbacsystem = $DIC->rbac()->system();
64 $this->rbacreview = $DIC->rbac()->review();
65 $this->error = $DIC[
'ilErr'];
66 $this->
tabs = $DIC->tabs();
67 $this->
toolbar = $DIC->toolbar();
69 $this->
lng = $DIC->language();
70 $this->
lng->loadLanguageModule(
'administration');
71 $this->
lng->loadLanguageModule(
'registration');
72 $this->
lng->loadLanguageModule(
'user');
75 $this->
http = $DIC->http();
82 if ($this->
http->wrapper()->query()->has(
'ref_id')) {
83 return $this->
http->wrapper()->query()->retrieve(
93 $next_class = $this->
ctrl->getNextClass($this);
94 $cmd = $this->
ctrl->getCmd();
95 switch ($next_class) {
108 $this->error->raiseError($this->
lng->txt(
'msg_no_perm_read'), $this->error->WARNING);
114 return $this->
access->checkAccess($a_permission,
'', $this->ref_id);
117 public function setSubTabs(
string $activeTab =
'registration_settings'): void
119 $this->
tabs->addSubTab(
120 "registration_settings",
121 $this->
lng->txt(
"registration_tab_settings"),
122 $this->
ctrl->getLinkTarget($this,
'view')
124 $this->
tabs->addSubTab(
125 "registration_codes",
126 $this->
lng->txt(
"registration_tab_codes"),
127 $this->
ctrl->getLinkTarget($this,
'listCodes')
129 $this->
tabs->activateSubTab($activeTab);
136 $form_gui->
setTitle($this->
lng->txt(
'reg_settings_header'));
140 $this->
lng->txt(
'reg_disabled'),
144 $option->setInfo($this->
lng->txt(
'reg_direct_info'));
146 $this->
lng->txt(
'reg_allow_codes'),
149 $cd->
setInfo($this->
lng->txt(
'reg_allow_codes_info'));
150 $option->addSubItem($cd);
151 $reg_type->addOption($option);
153 $option->setInfo($this->
lng->txt(
'reg_approve_info'));
155 $this->
lng->txt(
'reg_allow_codes'),
158 $cd->
setInfo($this->
lng->txt(
'reg_allow_codes_info'));
159 $option->addSubItem($cd);
160 $reg_type->addOption($option);
162 $this->
lng->txt(
'reg_type_confirmation'),
165 $option->setInfo($this->
lng->txt(
'reg_type_confirmation_info'));
166 $lt =
new ilNumberInputGUI($this->
lng->txt(
'reg_confirmation_hash_life_time'),
'reg_hash_life_time');
168 $lt->setMaxLength(6);
170 $lt->setRequired(
true);
171 $lt->setInfo($this->
lng->txt(
'reg_confirmation_hash_life_time_info'));
172 $lt->setSuffix($this->
lng->txt(
'seconds'));
173 $option->addSubItem($lt);
175 $this->
lng->txt(
'reg_allow_codes'),
178 $cd->
setInfo($this->
lng->txt(
'reg_allow_codes_info'));
179 $option->addSubItem($cd);
180 $reg_type->addOption($option);
182 $this->
lng->txt(
'registration_reg_type_codes'),
185 $option->setInfo($this->
lng->txt(
'registration_reg_type_codes_info'));
186 $reg_type->addOption($option);
191 $pwd_gen->setInfo($this->
lng->txt(
'reg_info_pwd'));
194 $approver =
new ilTextInputGUI($this->
lng->txt(
'reg_notification'),
'reg_approver');
195 $approver->setSize(32);
196 $approver->setMaxLength(50);
197 $approver->setInfo($this->
lng->txt(
'reg_notification_info'));
203 $edit = $this->
ctrl->getLinkTarget($this,
'editRoles');
206 $roles->addOption($option);
209 $edit = $this->
ctrl->getLinkTarget($this,
'editEmailAssignments');
212 $roles->addOption($option);
213 $roles->setInfo($this->
lng->txt(
'registration_codes_override_global_info'));
219 $edit = $this->
ctrl->getLinkTarget($this,
'editRoleAccessLimitations');
221 $list->setInfo($this->
lng->txt(
'registration_codes_override_global_info'));
222 $limit->addSubItem($list);
225 $domains =
new ilTextInputGUI($this->
lng->txt(
'reg_allowed_domains'),
'reg_allowed_domains');
226 $domains->setInfo($this->
lng->txt(
'reg_allowed_domains_info'));
229 if ($this->rbacsystem->checkAccess(
"write", $this->ref_id)) {
238 if ($this->registration_settings->roleSelectionEnabled()) {
240 } elseif ($this->registration_settings->automaticRoleAssignmentEnabled()) {
246 'reg_type' => $this->registration_settings->getRegistrationType(),
247 'reg_hash_life_time' => $this->registration_settings->getRegistrationHashLifetime(),
248 'reg_pwd' => $this->registration_settings->passwordGenerationEnabled(),
249 'reg_approver' => $this->registration_settings->getApproveRecipientLogins(),
250 'reg_role_type' => $role_type,
251 'reg_access_limitation' => $this->registration_settings->getAccessLimitation(),
252 'reg_allowed_domains' => implode(
';', $this->registration_settings->getAllowedDomains())
255 $allow_codes = $this->registration_settings->getAllowCodes();
256 $reg_type = $this->registration_settings->getRegistrationType();
257 if ($allow_codes && in_array($reg_type, [
262 $values[
'reg_codes_' . $reg_type] =
true;
277 $this->
lng->txt(
'registration_user_new_account_mail'),
278 $this->
ctrl->getLinkTargetByClass(
280 ilAdministrationGUI::class,
281 ilObjUserFolderGUI::class
286 $this->
ctrl->setParameterByClass(ilObjUserFolderGUI::class,
'ref_id',
$_GET[
'ref_id']);
291 $this->tpl->setContent($form->getHTML());
299 $res = $form->checkInput();
300 $this->registration_settings->setRegistrationType((
int) $form->getInput(
'reg_type'));
301 $this->registration_settings->setPasswordGenerationStatus((
bool) $form->getInput(
'reg_pwd'));
302 $this->registration_settings->setApproveRecipientLogins($form->getInput(
'reg_approver'));
303 $this->registration_settings->setRoleType((
int) $form->getInput(
'reg_role_type'));
304 $this->registration_settings->setAccessLimitation((
bool) $form->getInput(
'reg_access_limitation'));
305 $this->registration_settings->setAllowedDomains((
string) $form->getInput(
'reg_allowed_domains'));
307 $allow_codes =
false;
308 $reg_type = (
int) $form->getInput(
'reg_type');
309 if (in_array($reg_type, [
314 $allow_codes = (bool) $form->getInput(
'reg_codes_' . $reg_type);
316 $this->registration_settings->setAllowCodes($allow_codes);
318 $hash_life_time = $form->getInput(
'reg_hash_life_time');
319 if (!preg_match(
'/^([0]|([1-9][0-9]*))([\.,][0-9]+)?$/', (
string) $hash_life_time)) {
322 $this->registration_settings->setRegistrationHashLifetime(max(
323 (
int) $hash_life_time,
328 if ($error_code = $this->registration_settings->validate()) {
329 switch ($error_code) {
331 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'reg_unknown_recipients') .
' ' . $this->registration_settings->getUnknown());
336 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'reg_approve_needs_recipient') .
' ' . $this->registration_settings->getUnknown());
343 $this->registration_settings->save();
344 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'saved_successfully'));
352 $role_form->setFormAction($this->
ctrl->getFormAction($this,
'save'));
353 $role_form->setTitle($this->
lng->txt(
'reg_selectable_roles'));
357 foreach ($this->rbacreview->getGlobalRoles() as $role) {
362 $role_option->setValue((
string) $role);
363 $roles->addOption($role_option);
367 $roles->setUseValuesAsKeys(
true);
368 $roles->setValue($allowed_roles);
369 $role_form->addItem($roles);
372 $role_form->addCommandButton(
"updateRoles", $this->
lng->txt(
"save"));
374 $role_form->addCommandButton(
"view", $this->
lng->txt(
"cancel"));
381 $this->
tabs->clearTargets();
382 $this->
tabs->setBackTarget(
383 $this->
lng->txt(
"registration_settings"),
384 $this->
ctrl->getLinkTarget($this,
"view")
389 $this->tpl->setContent($form->getHTML());
396 if ($form->checkInput()) {
397 $roles = (array) $form->getInput(
'roles');
398 if (count($roles) < 1) {
399 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_last_role_for_registration'));
403 foreach ($this->rbacreview->getGlobalRoles() as $role) {
405 $role_obj->setAllowRegister(isset($roles[$role]) && (
int) $roles[$role] === 1);
410 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'saved_successfully'));
418 $this->
tabs->clearTargets();
419 $this->
tabs->setBackTarget(
420 $this->
lng->txt(
"registration_settings"),
421 $this->
ctrl->getLinkTarget($this,
"view")
426 $this->tpl->setContent($form->getHTML());
432 $role_assignment_form->setFormAction($this->
ctrl->getFormAction($this));
433 $role_assignment_form->setTitle($this->
lng->txt(
'reg_email_role_assignment'));
435 $global_roles = [
"" => $this->
lng->txt(
"links_select_one")];
436 foreach ($this->rbacreview->getGlobalRoles() as $role_id) {
444 $domains = $this->assignments_obj->getDomainsByRole($role_id);
447 $domain->setMulti(
true);
448 $domain->setValidationRegexp(
"/^@.*\.[a-zA-Z]{1,4}$/");
449 if (!empty($domains)) {
450 $domain->setValue($domains[0]);
451 $domain->setMultiValues($domains);
452 $role_assignments->setChecked(
true);
455 $role_assignments->addSubItem($domain);
456 $role_assignment_form->addItem($role_assignments);
460 $default_role->setPostVar(
"default_role");
461 $default_role->setOptions($global_roles);
462 $default_role->setValue($this->assignments_obj->getDefaultRole());
463 $default_role->setRequired(
true);
464 $role_assignment_form->addItem($default_role);
466 $role_assignment_form->addCommandButton(
"saveAssignment", $this->
lng->txt(
"save"));
467 $role_assignment_form->addCommandButton(
"view", $this->
lng->txt(
"cancel"));
469 return $role_assignment_form;
477 $this->
tabs->clearTargets();
478 $this->
tabs->setBackTarget(
479 $this->
lng->txt(
"registration_settings"),
480 $this->
ctrl->getLinkTarget($this,
"view")
483 if (null === $form) {
486 $this->tpl->setContent($form->getHTML());
492 $form->setFormAction($this->
ctrl->getFormAction($this));
493 $form->setTitle($this->
lng->txt(
'reg_role_access_limitations'));
497 $op_unlimited =
new ilRadioOption($this->
lng->txt(
'reg_access_limitation_mode_unlimited'),
"unlimited");
499 $op_absolute =
new ilRadioOption($this->
lng->txt(
'reg_access_limitation_mode_absolute'),
"absolute");
501 date(
"d.m.Y", $this->access_limitations_obj->getAbsolute($role[
'id'])),
505 $date->setDate($absolute_date);
508 $op_relative =
new ilRadioOption($this->
lng->txt(
'reg_access_limitation_mode_relative'),
"relative");
510 $duration->setShowMinutes(
false);
511 $duration->setShowHours(
false);
512 $duration->setShowDays(
true);
513 $duration->setShowMonths(
true);
514 $duration->setDays($this->access_limitations_obj->getRelative($role[
'id'],
'd'));
515 $duration->setMonths($this->access_limitations_obj->getRelative($role[
'id'],
'm'));
518 $role_access->addOption($op_unlimited);
519 $role_access->addOption($op_absolute);
520 $role_access->addOption($op_relative);
521 $role_access->setValue(
522 $this->access_limitations_obj->getMode(
524 ) ===
'null' ?
'unlimited' : $this->access_limitations_obj->getMode($role[
'id'])
527 $form->addItem($role_access);
530 $form->addCommandButton(
"saveRoleAccessLimitations", $this->
lng->txt(
"save"));
531 $form->addCommandButton(
"view", $this->
lng->txt(
"cancel"));
541 $is_valid = $form->checkInput();
542 $form->setValuesByPost();
548 $assignments_by_domain = [];
549 $problems_domains_by_field_id = [];
550 foreach ($this->rbacreview->getGlobalRoles() as $role_id) {
555 $role_assigned_input = $form->getInput(
"role_assigned_$role_id");
556 if (!$role_assigned_input) {
560 $domain_input = $form->getInput(
"domain_$role_id");
561 foreach ($domain_input as $domain) {
562 if (!is_string($domain) || $domain ===
'') {
566 if (isset($assignments_by_domain[$domain])) {
567 if (!isset($problems_domains_by_field_id[
"role_assigned_$role_id"])) {
568 $problems_domains_by_field_id[
"role_assigned_$role_id"] = [];
571 $problems_domains_by_field_id[
"domain_$role_id"][$domain] = $domain;
575 $assignments_by_domain[$domain] = $role_id;
579 if ($problems_domains_by_field_id !== []) {
580 foreach ($problems_domains_by_field_id as $field_id => $domains) {
581 $domain_string = implode(
', ', $domains);
582 $alert = sprintf($this->
lng->txt(
'reg_domain_already_assigned_p'), $domain_string);
583 if (count($domains) === 1) {
584 $alert = sprintf($this->
lng->txt(
'reg_domain_already_assigned_s'), $domain_string);
586 $form->getItemByPostVar($field_id)->setAlert($alert);
589 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'form_input_not_valid'));
594 $this->assignments_obj->deleteAll();
597 foreach ($assignments_by_domain as $domain => $role_id) {
598 $this->assignments_obj->setDomain($counter, $domain);
599 $this->assignments_obj->setRole($counter, $role_id);
602 $default_role = $form->getInput(
"default_role");
603 $this->assignments_obj->setDefaultRole((
int) $default_role);
604 $this->assignments_obj->save();
605 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'));
616 if (!$form->checkInput()) {
617 $form->setValuesByPost();
622 $this->access_limitations_obj->resetAccessLimitations();
624 $mode = $form->getInput(
'role_access_' . $role[
'id']);
625 $this->access_limitations_obj->setMode($mode, $role[
'id']);
627 if ($mode ===
'absolute') {
628 $this->access_limitations_obj->setAbsolute($form->getInput(
'absolute_date_' . $role[
'id']), $role[
'id']);
631 if ($mode ===
'relative') {
632 $this->access_limitations_obj->setRelative($form->getInput(
'duration_' . $role[
'id']), $role[
'id']);
636 if ($err = $this->access_limitations_obj->validate()) {
639 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'reg_access_limitation_missing_mode'));
643 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'reg_access_limitation_out_of_date'));
650 $this->access_limitations_obj->save();
651 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'));
663 $tpl =
new ilTemplate(
'tpl.registration_roles.html',
true,
true,
'Services/Registration');
668 if (is_array($roles) && count($roles)) {
669 foreach ($roles as $role) {
687 $all[] = $role[
'title'];
700 foreach ($this->assignments_obj->getAssignments() as $assignment) {
701 if ($assignment[
'domain'] !==
'' && $assignment[
'role']) {
706 if ((
string) $this->assignments_obj->getDefaultRole() !==
'') {
718 switch ($this->access_limitations_obj->getMode((
int) $role[
'id'])) {
720 $txt_access_value = $this->
lng->txt(
'reg_access_limitation_limited_until');
727 $months = $this->access_limitations_obj->getRelative($role[
'id'],
'm');
728 $days = $this->access_limitations_obj->getRelative($role[
'id'],
'd');
730 $txt_access_value = $this->
lng->txt(
'reg_access_limitation_limited_time') .
" ";
734 $txt_access_value .=
", ";
736 $txt_access_value .=
" " . $this->
lng->txt(
'and') .
" ";
739 $txt_access_value .=
" " . $this->
lng->txt(
'and') .
" ";
743 $txt_access_value .= $months .
" ";
744 $txt_access_value .= ($months === 1) ? $this->
lng->txt(
'month') : $this->
lng->txt(
'months');
747 $txt_access_value .=
" " . $this->
lng->txt(
'and') .
" ";
752 $txt_access_value .= $days .
" ";
753 $txt_access_value .= ($days === 1) ? $this->
lng->txt(
'day') : $this->
lng->txt(
'days');
758 $txt_access_value = $this->
lng->txt(
'reg_access_limitation_none');
762 $all[] = $role[
'title'] .
' (' . $txt_access_value .
')';
771 $this->assignments_obj =
new ilRegistrationRoleAssignments();
778 $this->access_limitations_obj =
new ilRegistrationRoleAccessLimitations();
788 $this->
lng->txt(
"registration_codes_add"),
789 $this->
ctrl->getLinkTarget($this,
"addCodes")
793 $this->tpl->setContent($ctab->getHTML());
799 $this->form_gui->setFormAction($this->
ctrl->getFormAction($this,
'createCodes'));
800 $this->form_gui->setTitle($this->
lng->txt(
'registration_codes_edit_header'));
802 $count =
new ilNumberInputGUI($this->
lng->txt(
'registration_codes_number'),
'reg_codes_number');
804 $count->setMaxLength(4);
805 $count->setMinValue(1);
806 $count->setMaxValue(1000);
807 $count->setRequired(
true);
808 $this->form_gui->addItem($count);
814 $code_type->addOption(
816 $this->
lng->txt(
'registration_codes_type_reg'),
817 (string) self::CODE_TYPE_REGISTRATION,
818 $this->
lng->txt(
'registration_codes_type_reg_info')
821 $code_type->addOption(
823 $this->
lng->txt(
'registration_codes_type_ext'),
824 (string) self::CODE_TYPE_EXTENSION,
825 $this->
lng->txt(
'registration_codes_type_ext_info')
828 $this->form_gui->addItem($code_type);
831 $sec->setTitle($this->
lng->txt(
'registration_codes_roles_title'));
832 $this->form_gui->addItem($sec);
834 $options = [
"" => $this->
lng->txt(
'registration_codes_no_assigned_role')];
835 foreach ($this->rbacreview->getGlobalRoles() as $role_id) {
840 $roles =
new ilSelectInputGUI($this->
lng->txt(
"registration_codes_roles"),
"reg_codes_role");
841 $roles->setInfo($this->
lng->txt(
"registration_codes_override_info"));
842 $roles->setOptions($options);
843 $this->form_gui->addItem($roles);
845 $local =
new ilTextInputGUI($this->
lng->txt(
"registration_codes_roles_local"),
"reg_codes_local");
846 $local->setMulti(
true);
847 $local->setDataSource($this->
ctrl->getLinkTarget($this,
"getLocalRoleAutoComplete",
"",
true));
848 $this->form_gui->addItem($local);
851 $sec->setTitle($this->
lng->txt(
'reg_access_limitations'));
852 $this->form_gui->addItem($sec);
855 $limit->
setInfo($this->
lng->txt(
"registration_codes_override_info"));
856 $this->form_gui->addItem($limit);
858 $opt =
new ilRadioOption($this->
lng->txt(
"registration_codes_roles_limitation_none"),
"none");
859 $limit->addOption($opt);
861 $opt =
new ilRadioOption($this->
lng->txt(
"reg_access_limitation_none"),
"unlimited");
862 $limit->addOption($opt);
864 $opt =
new ilRadioOption($this->
lng->txt(
"reg_access_limitation_mode_absolute"),
"absolute");
865 $limit->addOption($opt);
867 $dt =
new ilDateTimeInputGUI($this->
lng->txt(
"reg_access_limitation_mode_absolute_target"),
"abs_date");
869 $opt->addSubItem($dt);
871 $opt =
new ilRadioOption($this->
lng->txt(
"reg_access_limitation_mode_relative"),
"relative");
872 $limit->addOption($opt);
874 $dur =
new ilDurationInputGUI($this->
lng->txt(
"reg_access_limitation_mode_relative_target"),
"rel_date");
876 $dur->setShowMonths(
true);
877 $dur->setShowDays(
true);
878 $dur->setShowHours(
false);
879 $dur->setShowMinutes(
false);
880 $opt->addSubItem($dur);
882 $this->form_gui->addCommandButton(
'createCodes', $this->
lng->txt(
'create'));
883 $this->form_gui->addCommandButton(
'listCodes', $this->
lng->txt(
'cancel'));
890 $q = $_REQUEST[
"term"];
903 $limit = $this->form_gui->getItemByPostVar(
"reg_limit");
904 $limit->setValue(
"none");
905 $this->tpl->setContent($this->form_gui->getHTML());
914 $valid = $this->form_gui->checkInput();
916 $number = $this->form_gui->getInput(
'reg_codes_number');
917 $role = (
int) $this->form_gui->getInput(
'reg_codes_role');
918 $local = $this->form_gui->getInput(
"reg_codes_local");
920 if (is_array($local)) {
922 foreach (array_unique($local) as $item) {
924 $role_id = $this->rbacreview->roleExists($item);
926 $role_ids[] = $role_id;
930 if (count($role_ids)) {
936 $limit = $this->form_gui->getInput(
"reg_limit");
939 $date_input = $this->form_gui->getItemByPostVar(
"abs_date");
941 if ($date < date(
"Y-m-d")) {
942 $date_input->setAlert($this->
lng->txt(
"form_msg_wrong_date"));
948 $date = $this->form_gui->getInput(
"rel_date");
949 if (!array_sum($date)) {
954 "m" => $date[
"MM"] % 12,
955 "y" => floor($date[
"MM"] / 12)
968 for ($loop = 1; $loop <= $number; $loop++) {
969 $code_types = (array) $this->form_gui->getInput(
'code_type');
977 in_array(self::CODE_TYPE_REGISTRATION, $code_types) ?
true :
false,
978 in_array(self::CODE_TYPE_EXTENSION, $code_types) ?
true :
false 982 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'saved_successfully'),
true);
983 $this->
ctrl->redirect($this,
"listCodes");
985 $this->form_gui->setValuesByPost();
986 $this->tpl->setContent($this->form_gui->getHTML());
995 if ($this->
http->wrapper()->post()->has(
'id')) {
996 $ids = $this->
http->wrapper()->post()->retrieve(
998 $this->
refinery->kindlyTo()->listOf(
1004 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'info_deleted'),
true);
1005 $this->
ctrl->redirect($this,
"listCodes");
1016 if ($this->
http->wrapper()->post()->has(
'id')) {
1017 $ids = $this->
http->wrapper()->post()->retrieve(
1019 $this->
refinery->kindlyTo()->listOf(
1025 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'err_select_one'),
true);
1026 $this->
ctrl->redirect($this,
'listCodes');
1031 $gui->setHeaderText($this->
lng->txt(
"info_delete_sure"));
1032 $gui->setCancel($this->
lng->txt(
"cancel"),
"listCodes");
1033 $gui->setConfirm($this->
lng->txt(
"confirm"),
"deleteCodes");
1034 $gui->setFormAction($this->
ctrl->getFormAction($this,
"deleteCodes"));
1037 foreach (
$data as $code) {
1038 $gui->addItem(
"id[]", $code[
"code_id"], $code[
"code"]);
1040 $this->tpl->setContent($gui->getHTML());
1046 $utab->resetOffset();
1047 $utab->resetFilter();
1055 $utab->resetOffset();
1056 $utab->writeFilterToSession();
1067 $utab->filter[
"code"],
1068 $utab->filter[
"role"] ? (
int)$utab->filter[
"role"] : null,
1069 $utab->filter[
"generated"],
1070 $utab->filter[
"alimit"]
1073 if (count($codes)) {
1075 implode(
"\r\n", $codes),
1076 "ilias_registration_codes_" . date(
"d-m-Y") .
".txt",
1080 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"registration_export_codes_no_data"));
prepareAccessLimitationRoleList()
editRoleAccessLimitations(ilPropertyFormGUI $form=null)
initRoleAccessLimitations()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilRegistrationSettings $registration_settings
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
parseRoleList(array $roles, string $url)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS Refinery Factory $refinery
static _lookupRegisterAllowed()
get all roles that are activated in user registration
static deleteCodes(array $ids)
ilGlobalTemplateInterface $tpl
ilRegistrationRoleAccessLimitations $access_limitations_obj
const CODE_TYPE_REGISTRATION
editRoles(?ilPropertyFormGUI $form=null)
ILIAS HTTP Services $http
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
ilPropertyFormGUI $form_gui
Class class.ilregistrationEmailRoleAssignments.
const REG_HASH_LIFETIME_MIN_VALUE
setVariable(string $variable, $value='')
Sets the given variable to the given value.
static deliverData(string $a_data, string $a_filename, string $mime="application/octet-stream")
initFormValues(ilPropertyFormGUI $formGUI)
static getList(string $a_str)
Get completion list.
getLocalRoleAutoComplete()
checkAccessBool(string $a_permission)
static http()
Fetches the global http state from ILIAS.
static _lookupTitle(int $obj_id)
static loadCodesByIds(array $ids)
prepareAutomaticRoleList()
initEmailAssignmentForm()
const IL_REG_ROLE_UNDEFINED
setSubTabs(string $activeTab='registration_settings')
Class ilRegistrationSettingsGUI.
const IL_REG_ACCESS_LIMITATION_OUT_OF_DATE
TableGUI class for registration codes.
static getCodesForExport(string $filter_code, ?int $filter_role, string $filter_generated, string $filter_access_limitation)
const IL_REG_ACCESS_LIMITATION_MISSING_MODE
Class class.ilRegistrationAccessLimitation.
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
Class ilObjAuthSettingsGUI.
static create(int $role, int $stamp, array $local_roles, ?string $limit, ?string $limit_date, bool $reg_type, bool $ext_type)
Error Handling & global info handling uses PEAR error class.
saveRoleAccessLimitations()
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
const CODE_TYPE_EXTENSION
static _lookupAllowRegister(int $a_role_id)
check whether role is allowed in user registration or not
editEmailAssignments(ilPropertyFormGUI $form=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilRegistrationRoleAssignments $assignments_obj
checkAccess(string $a_permission)