24 require_once
'./Services/Registration/classes/class.ilRegistrationSettings.php';
50 $this->tpl = $DIC[
'tpl'];
51 $this->ctrl = $DIC->ctrl();
52 $this->rbacsystem = $DIC->rbac();
54 $this->lng = $DIC->language();
55 $this->lng->loadLanguageModule(
'administration');
56 $this->lng->loadLanguageModule(
'registration');
57 $this->lng->loadLanguageModule(
'user');
59 $this->ref_id = (int)
$_GET[
'ref_id'];
66 $next_class = $this->ctrl->getNextClass($this);
67 $cmd = $this->ctrl->getCmd();
68 switch ($next_class) {
89 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_read'),
$ilErr->WARNING);
101 $access = $DIC->access();
103 return $access->checkAccess($a_permission,
'', $this->ref_id);
110 public function setSubTabs($activeTab =
'registration_settings')
114 $ilTabs = $DIC[
'ilTabs'];
118 "registration_settings",
119 $lng->txt(
"registration_tab_settings"),
120 $this->ctrl->getLinkTarget($this,
'view')
124 "registration_codes",
125 $lng->txt(
"registration_tab_codes"),
126 $this->ctrl->getLinkTarget($this,
'listCodes')
129 $ilTabs->activateSubTab($activeTab);
135 $this->form_gui->setFormAction($this->ctrl->getFormAction($this,
'save'));
136 $this->form_gui->setTitle($this->lng->txt(
'reg_settings_header'));
141 $option->
setInfo($this->lng->txt(
'reg_direct_info'));
143 $cd->
setInfo($this->lng->txt(
'reg_allow_codes_info'));
144 $option->addSubItem($cd);
145 $reg_type->addOption($option);
147 $option->
setInfo($this->lng->txt(
'reg_approve_info'));
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_type_confirmation_info'));
154 $lt =
new ilNumberInputGUI($this->lng->txt(
'reg_confirmation_hash_life_time'),
'reg_hash_life_time');
156 $lt->setMaxLength(6);
158 $lt->setRequired(
true);
159 $lt->setInfo($this->lng->txt(
'reg_confirmation_hash_life_time_info'));
160 $lt->setSuffix($this->lng->txt(
'seconds'));
161 $option->addSubItem($lt);
163 $cd->
setInfo($this->lng->txt(
'reg_allow_codes_info'));
164 $option->addSubItem($cd);
165 $reg_type->addOption($option);
167 $option->
setInfo($this->lng->txt(
'registration_reg_type_codes_info'));
168 $reg_type->addOption($option);
169 $this->form_gui->addItem($reg_type);
173 $pwd_gen->setInfo($this->lng->txt(
'reg_info_pwd'));
174 $this->form_gui->addItem($pwd_gen);
176 require_once
'Services/Captcha/classes/class.ilCaptchaUtil.php';
177 $cap =
new ilCheckboxInputGUI($this->lng->txt(
'adm_captcha_anonymous_short'),
'activate_captcha_anonym');
178 $cap->
setInfo($this->lng->txt(
'adm_captcha_anonymous_reg'));
181 $cap->setAlert(ilCaptchaUtil::getPreconditionsMessage());
183 $this->form_gui->addItem($cap);
185 $approver =
new ilTextInputGUI($this->lng->txt(
'reg_notification'),
'reg_approver');
186 $approver->setSize(32);
187 $approver->setMaxLength(50);
188 $approver->setInfo($this->lng->txt(
'reg_notification_info'));
189 $this->form_gui->addItem($approver);
194 $edit = $this->ctrl->getLinkTarget($this,
'editRoles');
197 $roles->addOption($option);
200 $edit = $this->ctrl->getLinkTarget($this,
'editEmailAssignments');
203 $roles->addOption($option);
204 $roles->setInfo($this->lng->txt(
'registration_codes_override_global_info'));
205 $this->form_gui->addItem($roles);
207 $limit =
new ilCheckboxInputGUI($this->lng->txt(
'reg_access_limitations'),
'reg_access_limitation');
210 $edit = $this->ctrl->getLinkTarget($this,
'editRoleAccessLimitations');
212 $list->
setInfo($this->lng->txt(
'registration_codes_override_global_info'));
213 $limit->addSubItem($list);
214 $this->form_gui->addItem($limit);
216 $domains =
new ilTextInputGUI($this->lng->txt(
'reg_allowed_domains'),
'reg_allowed_domains');
217 $domains->setInfo($this->lng->txt(
'reg_allowed_domains_info'));
218 $this->form_gui->addItem($domains);
220 if ($this->rbacsystem->system()->checkAccess(
"write", $this->ref_id)) {
221 $this->form_gui->addCommandButton(
'save', $this->lng->txt(
'save'));
227 if ($this->registration_settings->roleSelectionEnabled()) {
229 } elseif ($this->registration_settings->automaticRoleAssignmentEnabled()) {
233 require_once
'Services/Captcha/classes/class.ilCaptchaUtil.php';
235 'reg_type' => $this->registration_settings->getRegistrationType(),
236 'reg_hash_life_time' => (int) $this->registration_settings->getRegistrationHashLifetime(),
237 'reg_pwd' => $this->registration_settings->passwordGenerationEnabled(),
238 'reg_approver' => $this->registration_settings->getApproveRecipientLogins(),
239 'reg_role_type' => $role_type,
240 'reg_access_limitation' => $this->registration_settings->getAccessLimitation(),
241 'reg_allowed_domains' => implode(
';', $this->registration_settings->getAllowedDomains()),
242 'activate_captcha_anonym' => ilCaptchaUtil::isActiveForRegistration()
245 $allow_codes = $this->registration_settings->getAllowCodes();
246 $reg_type = $this->registration_settings->getRegistrationType();
248 $values[
'reg_codes_' . $reg_type] =
true;
251 $this->form_gui->setValuesByArray($values);
257 if (!$DIC->rbac()->system()->checkAccess(
"visible,read", $this->ref_id)) {
258 $DIC[
'ilErr']->raiseError($this->lng->txt(
"msg_no_perm_read"), $DIC[
'ilErr']->MESSAGE);
264 $this->ctrl->setParameterByClass(
"ilobjuserfoldergui",
"ref_id",
USER_FOLDER_ID);
265 if ($DIC->rbac()->system()->checkAccess(
"write", $this->ref_id)) {
266 $DIC->toolbar()->addButton($this->lng->txt(
'registration_user_new_account_mail'), $this->ctrl->getLinkTargetByClass(array(
267 "iladministrationgui",
269 ),
"newAccountMail"));
270 $this->ctrl->setParameterByClass(
"ilobjuserfoldergui",
"ref_id",
$_GET[
"ref_id"]);
275 $this->tpl->setContent($this->form_gui->getHTML());
282 $ilAccess = $DIC[
'ilAccess'];
285 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
286 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
289 $this->registration_settings->setRegistrationType((
int)
$_POST[
'reg_type']);
290 $this->registration_settings->setPasswordGenerationStatus((
int) $_POST[
'reg_pwd']);
291 $this->registration_settings->setApproveRecipientLogins(
ilUtil::stripSlashes($_POST[
'reg_approver']));
292 $this->registration_settings->setRoleType((
int) $_POST[
'reg_role_type']);
293 $this->registration_settings->setAccessLimitation((
int) $_POST[
'reg_access_limitation']);
294 $this->registration_settings->setAllowedDomains($_POST[
'reg_allowed_domains']);
296 $allow_codes =
false;
298 $allow_codes = (bool) $_POST[
'reg_codes_' . (
int) $_POST[
'reg_type']];
300 $this->registration_settings->setAllowCodes($allow_codes);
302 if (!preg_match(
'/^([0]|([1-9][0-9]*))([\.,][0-9][0-9]*)?$/', (
int) $_POST[
'reg_hash_life_time'])) {
308 if ($error_code = $this->registration_settings->validate()) {
309 switch ($error_code) {
312 ilUtil::sendFailure($this->lng->txt(
'reg_unknown_recipients') .
' ' . $this->registration_settings->getUnknown());
318 ilUtil::sendFailure($this->lng->txt(
'reg_approve_needs_recipient') .
' ' . $this->registration_settings->getUnknown());
325 require_once
'Services/Captcha/classes/class.ilCaptchaUtil.php';
326 ilCaptchaUtil::setActiveForRegistration((
bool) $_POST[
'activate_captcha_anonym']);
328 $this->registration_settings->save();
329 ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'));
337 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
341 $ilAccess = $DIC[
'ilAccess'];
343 $ilTabs = $DIC[
'ilTabs'];
345 $rbacreview = $DIC[
'rbacreview'];
347 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
348 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
351 $ilTabs->clearTargets();
352 $ilTabs->setBackTarget(
353 $this->lng->txt(
"registration_settings"),
354 $ilCtrl->getLinkTarget($this,
"view")
358 $role_form->setFormAction($this->ctrl->getFormAction($this,
'save'));
359 $role_form->setTitle($this->lng->txt(
'reg_selectable_roles'));
361 $roles = new \ilCheckboxGroupInputGUI($this->lng->txt(
'reg_available_roles'),
'roles');
362 $allowed_roles = array();
363 foreach ($rbacreview->getGlobalRoles() as $role) {
364 if ($role == SYSTEM_ROLE_ID or $role == ANONYMOUS_ROLE_ID) {
368 $role_option->setValue($role);
369 $roles->addOption($role_option);
374 $roles->setUseValuesAsKeys(
true);
375 $roles->setValue($allowed_roles);
376 $role_form->addItem($roles);
379 if ($this->rbacsystem->system()->checkAccess(
"write", $this->ref_id)) {
380 $role_form->addCommandButton(
"updateRoles", $this->lng->txt(
"save"));
382 $role_form->addCommandButton(
"view", $this->lng->txt(
"cancel"));
385 $this->tpl->setContent($role_form->getHTML());
392 $ilAccess = $DIC[
'ilAccess'];
394 $rbacreview = $DIC[
'rbacreview'];
396 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
397 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
400 if (count(
$_POST[
'roles']) < 1) {
406 foreach ($rbacreview->getGlobalRoles() as $role) {
408 $role_obj->setAllowRegister(
$_POST[
'roles'][$role] ? 1 : 0);
413 ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'));
423 $ilAccess = $DIC[
'ilAccess'];
425 $ilTabs = $DIC[
'ilTabs'];
428 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
429 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
432 $ilTabs->clearTargets();
433 $ilTabs->setBackTarget(
434 $this->lng->txt(
"registration_settings"),
435 $ilCtrl->getLinkTarget($this,
"view")
442 $this->tpl->setContent($form->getHTML());
449 $rbacreview = $DIC[
'rbacreview'];
452 $role_assignment_form->setFormAction($this->ctrl->getFormAction($this));
453 $role_assignment_form->setTitle($this->lng->txt(
'reg_email_role_assignment'));
455 $global_roles = [
"" => $this->lng->txt(
"links_select_one")];
456 foreach ($rbacreview->getGlobalRoles() as $role_id) {
457 if ($role_id == ANONYMOUS_ROLE_ID) {
464 $domains = $this->assignments_obj->getDomainsByRole($role_id);
466 $domain =
new ilTextInputGUI($this->lng->txt(
'reg_domain'),
"domain_$role_id");
467 $domain->setMulti(
true);
468 $domain->setValidationRegexp(
"/^@.*\.[a-zA-Z]{1,4}$/");
469 if (!empty($domains)) {
470 $domain->setValue($domains[0]);
471 $domain->setMultiValues($domains);
472 $role_assignments->setChecked(
true);
475 $role_assignments->addSubItem($domain);
476 $role_assignment_form->addItem($role_assignments);
480 $default_role->setPostVar(
"default_role");
481 $default_role->setOptions($global_roles);
482 $default_role->setValue($this->assignments_obj->getDefaultRole());
483 $default_role->setRequired(
true);
484 $role_assignment_form->addItem($default_role);
486 $role_assignment_form->addCommandButton(
"saveAssignment", $this->lng->txt(
"save"));
487 $role_assignment_form->addCommandButton(
"view", $this->lng->txt(
"cancel"));
489 return $role_assignment_form;
497 $ilAccess = $DIC[
'ilAccess'];
499 $rbacreview = $DIC[
'rbacreview'];
501 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
502 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
507 $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.reg_role_access_limitations.html',
'Services/Registration');
509 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
510 $this->tpl->setVariable(
"TXT_REG_ROLE_ACCESS_LIMITATIONS",
$lng->txt(
'reg_role_access_limitations'));
511 $this->tpl->setVariable(
"TXT_ROLE",
$lng->txt(
'obj_role'));
512 $this->tpl->setVariable(
"TXT_ACCESS_LIMITATION_MODE",
$lng->txt(
'reg_access_limitation_mode'));
514 $this->tpl->setVariable(
"BTN_SAVE",
$lng->txt(
'save'));
515 $this->tpl->setVariable(
"BTN_CANCEL",
$lng->txt(
'cancel'));
518 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
521 $this->tpl->setCurrentBlock(
"roles");
523 $this->tpl->setVariable(
"ROLE_ID", $role[
'id']);
524 $this->tpl->setVariable(
"ROLE_TITLE", $role[
'title']);
526 $this->tpl->setVariable(
"CSS_DISPLAY_ABSOLUTE", ($this->access_limitations_obj->getMode($role[
'id']) ==
'absolute') ?
'inline' :
'none');
527 $this->tpl->setVariable(
"CSS_DISPLAY_RELATIVE", ($this->access_limitations_obj->getMode($role[
'id']) ==
'relative') ?
'inline' :
'none');
528 $this->tpl->setVariable(
"CSS_DISPLAY_UNLIMITED", ($this->access_limitations_obj->getMode($role[
'id']) ==
'unlimited') ?
'inline' :
'none');
529 $this->tpl->setVariable(
"TXT_ACCESS_LIMITATION_UNLIMITED",
$lng->txt(
'reg_access_limitation_none'));
531 $date = $this->
__prepareDateSelect($this->access_limitations_obj->getAbsolute($role[
'id']));
532 $this->tpl->setVariable(
"SEL_ACCESS_LIMITATION_ABSOLUTE",
ilUtil::makeDateSelect(
'access_limitation_absolute_' . $role[
'id'], $date[
'y'], $date[
'm'], $date[
'd'],
'2007'));
534 $this->tpl->setVariable(
"TXT_DAYS",
$lng->txt(
'days'));
535 $this->tpl->setVariable(
"TXT_MONTHS",
$lng->txt(
'months'));
536 $this->tpl->setVariable(
"TXT_YEARS",
$lng->txt(
'years'));
538 $this->tpl->setVariable(
"DAYS", $this->access_limitations_obj->getRelative($role[
'id'],
'd'));
539 $this->tpl->setVariable(
"MONTHS", $this->access_limitations_obj->getRelative($role[
'id'],
'm'));
540 $this->tpl->setVariable(
"YEARS", $this->access_limitations_obj->getRelative($role[
'id'],
'y'));
541 $this->tpl->parseCurrentBlock();
549 $ilAccess = $DIC[
'ilAccess'];
551 $rbacreview = $DIC[
'rbacreview'];
553 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
554 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
560 if (!$form->checkInput()) {
561 $form->setValuesByPost();
566 $this->assignments_obj->deleteAll();
569 foreach ($rbacreview->getGlobalRoles() as $role_id) {
570 if ($role_id == ANONYMOUS_ROLE_ID) {
574 $domain_input = $form->getInput(
"domain_$role_id");
575 $role_assigned_input = $form->getInput(
"role_assigned_$role_id");
578 if (!empty($role_assigned_input)) {
579 foreach ($domain_input as $domain) {
580 if (!empty($domain)) {
589 $default_role = $form->getInput(
"default_role");
590 $this->assignments_obj->setDefaultRole((
int) $default_role);
592 $this->assignments_obj->save();
593 ilUtil::sendSuccess($this->lng->txt(
'settings_saved'));
602 $ilAccess = $DIC[
'ilAccess'];
604 $rbacreview = $DIC[
'rbacreview'];
606 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
607 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
612 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
614 $this->access_limitations_obj->resetAccessLimitations();
616 $this->access_limitations_obj->setMode(
$_POST[
'access_limitation_mode_' . $role[
'id']], $role[
'id']);
617 $this->access_limitations_obj->setAbsolute(
$_POST[
'access_limitation_absolute_' . $role[
'id']], $role[
'id']);
618 $this->access_limitations_obj->setRelative(
$_POST[
'access_limitation_relative_' . $role[
'id']], $role[
'id']);
621 if ($err = $this->access_limitations_obj->validate()) {
636 $this->access_limitations_obj->save();
637 ilUtil::sendSuccess($this->lng->txt(
'settings_saved'));
644 $tpl =
new ilTemplate(
'tpl.registration_roles.html',
true,
true,
'Services/Registration');
646 $tpl->setVariable(
"EDIT", $this->lng->txt(
"edit"));
647 $tpl->setVariable(
"LINK_EDIT",
$url);
649 if (is_array($roles) &&
sizeof($roles)) {
650 foreach ($roles as $role) {
651 $tpl->setCurrentBlock(
"list_item");
652 $tpl->setVariable(
"LIST_ITEM_ITEM", $role);
653 $tpl->parseCurrentBlock();
656 $tpl->setVariable(
"NONE", $this->lng->txt(
'none'));
664 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
668 $all[] = $role[
'title'];
675 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
679 foreach ($this->assignments_obj->getAssignments() as $assignment) {
680 if (strlen($assignment[
'domain']) and $assignment[
'role']) {
685 if (strlen($this->assignments_obj->getDefaultRole())) {
686 $all[] = $this->lng->txt(
'reg_default') .
' -> ' .
ilObjRole::_lookupTitle($this->assignments_obj->getDefaultRole());
700 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
704 switch ($this->access_limitations_obj->getMode($role[
'id'])) {
706 $txt_access_value =
$lng->txt(
'reg_access_limitation_limited_until');
711 $years = $this->access_limitations_obj->getRelative($role[
'id'],
'y');
712 $months = $this->access_limitations_obj->getRelative($role[
'id'],
'm');
713 $days = $this->access_limitations_obj->getRelative($role[
'id'],
'd');
715 $txt_access_value =
$lng->txt(
'reg_access_limitation_limited_time') .
" ";
718 $txt_access_value .= $years .
" ";
719 $txt_access_value .= ($years == 1) ?
$lng->txt(
'year') :
$lng->txt(
'years');
723 $txt_access_value .=
", ";
725 $txt_access_value .=
" " .
$lng->txt(
'and') .
" ";
728 $txt_access_value .=
" " .
$lng->txt(
'and') .
" ";
733 $txt_access_value .= $months .
" ";
734 $txt_access_value .= ($months == 1) ?
$lng->txt(
'month') :
$lng->txt(
'months');
737 $txt_access_value .=
" " .
$lng->txt(
'and') .
" ";
742 $txt_access_value .= $days .
" ";
743 $txt_access_value .= ($days == 1) ?
$lng->txt(
'day') :
$lng->txt(
'days');
748 $txt_access_value =
$lng->txt(
'reg_access_limitation_none');
752 $all[] = $role[
'title'] .
' (' . $txt_access_value .
')';
760 if (is_object($this->assignments_obj)) {
764 include_once
'Services/Registration/classes/class.ilRegistrationEmailRoleAssignments.php';
771 if (is_object($this->access_limitations_obj)) {
775 include_once
'Services/Registration/classes/class.ilRegistrationRoleAccessLimitations.php';
787 'null' =>
$lng->txt(
'please_choose'),
788 'unlimited' =>
$lng->txt(
'reg_access_limitation_mode_unlimited'),
789 'absolute' =>
$lng->txt(
'reg_access_limitation_mode_absolute'),
790 'relative' =>
$lng->txt(
'reg_access_limitation_mode_relative')
793 $attribs = array(
'onchange' =>
'displayAccessLimitationSelectionForm(document.cmd.access_limitation_mode_' . $a_role_id .
',' . $a_role_id .
')');
795 $selected = $this->access_limitations_obj->getMode($a_role_id);
797 return ilUtil::formSelect($selected,
'access_limitation_mode_' . $a_role_id, $options,
false,
true, 0,
"", $attribs);
803 $a_unix_time = time();
806 return array(
'y' => date(
'Y', $a_unix_time),
807 'm' => date(
'n', $a_unix_time),
808 'd' => date(
'd', $a_unix_time));
819 $DIC->toolbar()->addButton(
820 $this->lng->txt(
"registration_codes_add"),
821 $this->ctrl->getLinkTarget($this,
"addCodes")
825 include_once(
"./Services/Registration/classes/class.ilRegistrationCodesTableGUI.php");
827 $this->tpl->setContent($ctab->getHTML());
834 $rbacreview = $DIC[
'rbacreview'];
835 $ilObjDataCache = $DIC[
'ilObjDataCache'];
838 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
841 $this->form_gui->setFormAction($this->ctrl->getFormAction($this,
'createCodes'));
842 $this->form_gui->setTitle($this->lng->txt(
'registration_codes_edit_header'));
844 $count =
new ilNumberInputGUI($this->lng->txt(
'registration_codes_number'),
'reg_codes_number');
846 $count->setMaxLength(4);
847 $count->setMinValue(1);
848 $count->setMaxValue(1000);
849 $count->setRequired(
true);
850 $this->form_gui->addItem($count);
856 $code_type->addOption(
858 $this->lng->txt(
'registration_codes_type_reg'),
859 self::CODE_TYPE_REGISTRATION,
860 $this->lng->txt(
'registration_codes_type_reg_info')
863 $code_type->addOption(
865 $this->lng->txt(
'registration_codes_type_ext'),
866 self::CODE_TYPE_EXTENSION,
867 $this->lng->txt(
'registration_codes_type_ext_info')
870 $this->form_gui->addItem($code_type);
874 $sec->setTitle($this->lng->txt(
'registration_codes_roles_title'));
875 $this->form_gui->addItem($sec);
877 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
878 $options = array(
"" => $this->lng->txt(
'registration_codes_no_assigned_role'));
879 foreach ($rbacreview->getGlobalRoles() as $role_id) {
880 if (!in_array($role_id, array(SYSTEM_ROLE_ID, ANONYMOUS_ROLE_ID))) {
881 $options[$role_id] = $ilObjDataCache->lookupTitle($role_id);
884 $roles =
new ilSelectInputGUI($this->lng->txt(
"registration_codes_roles"),
"reg_codes_role");
885 $roles->setInfo($this->lng->txt(
"registration_codes_override_info"));
886 $roles->setOptions($options);
887 $this->form_gui->addItem($roles);
889 $local =
new ilTextInputGUI($this->lng->txt(
"registration_codes_roles_local"),
"reg_codes_local");
890 $local->setMulti(
true);
891 $local->setDataSource($this->ctrl->getLinkTarget($this,
"getLocalRoleAutoComplete",
"",
true));
892 $this->form_gui->addItem($local);
896 $sec->setTitle($this->lng->txt(
'reg_access_limitations'));
897 $this->form_gui->addItem($sec);
900 $limit->
setInfo($this->lng->txt(
"registration_codes_override_info"));
901 $this->form_gui->addItem($limit);
903 $opt =
new ilRadioOption($this->lng->txt(
"registration_codes_roles_limitation_none"),
"none");
904 $limit->addOption($opt);
906 $opt =
new ilRadioOption($this->lng->txt(
"reg_access_limitation_none"),
"unlimited");
907 $limit->addOption($opt);
909 $opt =
new ilRadioOption($this->lng->txt(
"reg_access_limitation_mode_absolute"),
"absolute");
910 $limit->addOption($opt);
912 $dt =
new ilDateTimeInputGUI($this->lng->txt(
"reg_access_limitation_mode_absolute_target"),
"abs_date");
914 $opt->addSubItem($dt);
916 $opt =
new ilRadioOption($this->lng->txt(
"reg_access_limitation_mode_relative"),
"relative");
917 $limit->addOption($opt);
919 $dur =
new ilDurationInputGUI($this->lng->txt(
"reg_access_limitation_mode_relative_target"),
"rel_date");
921 $dur->setShowMonths(
true);
922 $dur->setShowDays(
true);
923 $dur->setShowHours(
false);
924 $dur->setShowMinutes(
false);
925 $opt->addSubItem($dur);
927 $this->form_gui->addCommandButton(
'createCodes', $this->lng->txt(
'create'));
928 $this->form_gui->addCommandButton(
'listCodes', $this->lng->txt(
'cancel'));
934 $q = $_REQUEST[
"term"];
935 include_once(
"./Services/AccessControl/classes/class.ilRoleAutoComplete.php");
945 $ilAccess = $DIC[
'ilAccess'];
948 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
949 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
957 $limit = $this->form_gui->getItemByPostVar(
"reg_limit");
958 $limit->setValue(
"none");
960 $this->tpl->setContent($this->form_gui->getHTML());
967 $ilAccess = $DIC[
'ilAccess'];
969 $rbacreview = $DIC[
'rbacreview'];
971 if (!$ilAccess->checkAccess(
'write',
'', $this->ref_id)) {
972 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),
$ilErr->MESSAGE);
978 $valid = $this->form_gui->checkInput();
980 $number = $this->form_gui->getInput(
'reg_codes_number');
981 $role = $this->form_gui->getInput(
'reg_codes_role');
982 $local = $this->form_gui->getInput(
"reg_codes_local");
984 if (is_array($local)) {
986 foreach (array_unique($local) as $item) {
988 $role_id = $rbacreview->roleExists($item);
990 $role_ids[] = $role_id;
994 if (
sizeof($role_ids)) {
1000 $limit = $this->form_gui->getInput(
"reg_limit");
1003 $date_input = $this->form_gui->getItemByPostVar(
"abs_date");
1005 if ($date < date(
"Y-m-d")) {
1006 $date_input->setAlert($this->lng->txt(
"form_msg_wrong_date"));
1012 $date = $this->form_gui->getInput(
"rel_date");
1013 if (!array_sum($date)) {
1018 "m" => $date[
"MM"] % 12,
1019 "y" => floor($date[
"MM"] / 12)
1031 include_once
'./Services/Registration/classes/class.ilRegistrationCode.php';
1034 for ($loop = 1; $loop <= $number; $loop++) {
1035 $code_types = (array) $this->form_gui->getInput(
'code_type');
1043 in_array(self::CODE_TYPE_REGISTRATION, $code_types) ?
true :
false,
1044 in_array(self::CODE_TYPE_EXTENSION, $code_types) ?
true :
false 1048 ilUtil::sendSuccess($this->lng->txt(
'saved_successfully'),
true);
1049 $this->ctrl->redirect($this,
"listCodes");
1051 $this->form_gui->setValuesByPost();
1052 $this->tpl->setContent($this->form_gui->getHtml());
1060 include_once
'./Services/Registration/classes/class.ilRegistrationCode.php';
1063 ilUtil::sendSuccess($this->lng->txt(
'info_deleted'),
true);
1064 $this->ctrl->redirect($this,
"listCodes");
1074 $ilias = $DIC[
'ilias'];
1076 if (!isset(
$_POST[
"id"])) {
1077 $ilErr->raiseError($this->lng->txt(
"no_checkbox"),
$ilErr->MESSAGE);
1082 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
1084 $gui->setHeaderText($this->lng->txt(
"info_delete_sure"));
1085 $gui->setCancel($this->lng->txt(
"cancel"),
"listCodes");
1086 $gui->setConfirm($this->lng->txt(
"confirm"),
"deleteCodes");
1087 $gui->setFormAction($this->ctrl->getFormAction($this,
"deleteCodes"));
1089 include_once
'./Services/Registration/classes/class.ilRegistrationCode.php';
1091 foreach (
$data as $code) {
1092 $gui->addItem(
"id[]", $code[
"code_id"], $code[
"code"]);
1095 $this->tpl->setContent($gui->getHTML());
1100 include_once(
"./Services/Registration/classes/class.ilRegistrationCodesTableGUI.php");
1102 $utab->resetOffset();
1103 $utab->resetFilter();
1110 include_once(
"./Services/Registration/classes/class.ilRegistrationCodesTableGUI.php");
1112 $utab->resetOffset();
1113 $utab->writeFilterToSession();
1122 $ilAccess = $DIC[
'ilAccess'];
1125 if (!$ilAccess->checkAccess(
'read',
'', $this->ref_id)) {
1126 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_read"),
$ilErr->MESSAGE);
1129 include_once(
"./Services/Registration/classes/class.ilRegistrationCodesTableGUI.php");
1132 include_once
'./Services/Registration/classes/class.ilRegistrationCode.php';
1135 if (
sizeof($codes)) {
1136 ilUtil::deliverData(implode(
"\r\n", $codes),
"ilias_registration_codes_" . date(
"d-m-Y") .
".txt",
"text/plain");
__prepareAutomaticRoleList()
__prepareDateSelect($a_unix_time)
This class represents an option in a radio group.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
__parseRoleList($roles, $url)
editRoleAccessLimitations()
This class represents an option in a checkbox group.
checkAccess($a_permission)
const IL_REG_ACCESS_LIMITATION_OUT_OF_DATE
static _lookupRegisterAllowed()
get all roles that are activated in user registration
static deleteCodes(array $ids)
const CODE_TYPE_REGISTRATION
static getList($a_str)
Get completion list.
__prepareAccessLimitationRoleList()
static checkFreetype()
Check whether captcha support is active.
static _lookupTitle($a_id)
lookup object title
const REG_HASH_LIFETIME_MIN_VALUE
setInfo($a_info)
Set Info.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
setSubTabs($activeTab='registration_settings')
set sub tabs
getLocalRoleAutoComplete()
static create($role, $stamp, $local_roles, $limit, $limit_date, $reg_type, $ext_type)
static loadCodesByIds(array $ids)
initEmailAssignmentForm()
checkAccessBool($a_permission)
Class ilRegistrationSettingsGUI.
TableGUI class for registration codes.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static makeDateSelect($prefix, $year="", $month="", $day="", $startyear="", $a_long_month=true, $a_further_options=array(), $emptyoption=false)
Creates a combination of HTML selects for date inputs.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
__buildAccessLimitationSelection($a_role_id)
Class ilObjAuthSettingsGUI.
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
const USER_FOLDER_ID
Class ilObjUserFolder.
saveRoleAccessLimitations()
const CODE_TYPE_EXTENSION
const IL_REG_ACCESS_LIMITATION_MISSING_MODE
Class class.ilRegistrationAccessLimitation.
static getCodesForExport($filter_code, $filter_role, $filter_generated, $filter_access_limitation)
static _lookupAllowRegister($a_role_id)
check whether role is allowed in user registration or not
__initRoleAccessLimitations()
editEmailAssignments(ilPropertyFormGUI $form=null)
Confirmation screen class.