4require_once
"./Services/Object/classes/class.ilObjectGUI.php";
60 $a_call_by_reference =
false,
61 $a_prepare_output =
true,
80 define(
'USER_FOLDER_ID', 7);
83 parent::__construct($a_data, $a_id, $a_call_by_reference,
false);
87 $this->ctrl->saveParameter($this, array(
'obj_id',
'letter'));
88 $this->ctrl->setParameterByClass(
"ilobjuserfoldergui",
"letter",
$_GET[
"letter"]);
89 $this->ctrl->setContext($this->object->getId(),
'usr');
90 $lng->loadLanguageModule(
'user');
94 $this->gender = array(
95 'n' =>
"salutation_n",
96 'm' =>
"salutation_m",
97 'f' =>
"salutation_f",
105 $rbacsystem =
$DIC[
'rbacsystem'];
107 $next_class = $this->ctrl->getNextClass($this);
108 $cmd = $this->ctrl->getCmd();
112 switch ($next_class) {
113 case "illearningprogressgui":
114 include_once
'./Services/Tracking/classes/class.ilLearningProgressGUI.php';
116 $this->ctrl->forwardCommand($new_gui);
119 case "ilobjectownershipmanagementgui":
120 include_once(
"Services/Object/classes/class.ilObjectOwnershipManagementGUI.php");
122 $this->ctrl->forwardCommand($gui);
126 if ($cmd ==
"" || $cmd ==
"view") {
130 $return = $this->$cmd();
141 if (strtolower(get_class($this->
object)) ==
'ilobjuser') {
142 $this->tpl->setTitle(
'[' . $this->object->getLogin() .
'] ' . $this->object->getTitle());
143 $this->tpl->setDescription($this->object->getLongDescription());
144 $this->tpl->setTitleIcon(
ilUtil::getImagePath(
"icon_" . $this->object->getType() .
".svg"), $this->lng->txt(
"obj_" . $this->object->getType()));
146 parent::setTitleAndDescription();
156 if (strtolower(
$_GET[
"baseClass"]) ==
'iladministrationgui') {
157 $this->ctrl->redirectByClass(
"ilobjuserfoldergui",
"view");
161 $this->ctrl->redirectByClass(
'ilobjcategorygui',
'listUsers');
180 $rbacsystem =
$DIC[
'rbacsystem'];
181 $ilHelp =
$DIC[
'ilHelp'];
183 $this->tabs_gui->clearTargets();
185 $ilHelp->setScreenIdComponent(
"usr");
187 if (
$_GET[
"search"]) {
188 $this->tabs_gui->setBackTarget(
189 $this->lng->txt(
"search_results"),
193 $this->tabs_gui->addTarget(
195 $this->ctrl->getLinkTarget($this,
"edit"),
196 array(
"edit",
"",
"view"),
202 $this->tabs_gui->addTarget(
204 $this->ctrl->getLinkTarget($this,
"edit"),
205 array(
"edit",
"",
"view"),
210 $this->tabs_gui->addTarget(
212 $this->ctrl->getLinkTarget($this,
"roleassignment"),
213 array(
"roleassignment"),
218 include_once(
"Services/Tracking/classes/class.ilObjUserTracking.php");
219 if ($rbacsystem->checkAccess(
'read', $this->ref_id) and
222 $this->tabs_gui->addTarget(
224 $this->ctrl->getLinkTargetByClass(
'illearningprogressgui',
''),
226 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
230 $this->tabs_gui->addTarget(
232 $this->ctrl->getLinkTargetByClass(
'ilobjectownershipmanagementgui',
''),
234 'ilobjectownershipmanagementgui'
243 $this->back_target = array(
"text" => $a_text,
253 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
256 foreach ($this->user_defined_fields->getDefinitions() as $field_id => $definition) {
257 if ($definition[
'required'] and !strlen(
$_POST[
'udf'][$field_id])) {
267 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
270 if ($this->object->getType() ==
'usr') {
271 $user_defined_data = $this->
object->getUserDefinedData();
273 foreach ($this->user_defined_fields->getDefinitions() as $field_id => $definition) {
274 $old = isset(
$_SESSION[
"error_post_vars"][
"udf"][$field_id]) ?
275 $_SESSION[
"error_post_vars"][
"udf"][$field_id] : $user_defined_data[$field_id];
278 $this->tpl->setCurrentBlock(
"field_text");
279 $this->tpl->setVariable(
"FIELD_NAME",
'udf[' . $definition[
'field_id'] .
']');
281 $this->tpl->parseCurrentBlock();
283 $this->tpl->setCurrentBlock(
"field_select");
286 'udf[' . $definition[
'field_id'] .
']',
287 $this->user_defined_fields->fieldValuesToSelectArray(
288 $definition[
'field_values']
293 $this->tpl->parseCurrentBlock();
295 $this->tpl->setCurrentBlock(
"user_defined");
297 if ($definition[
'required']) {
298 $name = $definition[
'field_name'] .
"<span class=\"asterisk\">*</span>";
300 $name = $definition[
'field_name'];
302 $this->tpl->setVariable(
"TXT_FIELD_NAME",
$name);
303 $this->tpl->parseCurrentBlock();
313 $rbacsystem =
$DIC[
'rbacsystem'];
318 $this->tabs_gui->clearTargets();
322 $obj_list =
$rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
324 foreach ($obj_list as $obj_data) {
327 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
334 if ($obj_data[
"obj_id"] != ANONYMOUS_ROLE_ID) {
336 if ($obj_data[
"obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID,
$rbacreview->assignedRoles(
$ilUser->getId()))) {
337 $rol[$obj_data[
"obj_id"]] = $obj_data[
"title"];
344 $this->
ilias->raiseError($this->lng->txt(
"msg_no_roles_users_can_be_assigned_to"), $this->ilias->error_obj->MESSAGE);
347 $keys = array_keys($rol);
350 if (in_array(4,
$keys)) {
351 $this->default_role = 4;
353 if (count(
$keys) > 1 and in_array(2,
$keys)) {
363 $this->default_role = array_shift(
$keys);
365 $this->selectable_roles = $rol;
376 $rbacsystem =
$DIC[
'rbacsystem'];
380 if (!$rbacsystem->checkAccess(
'create_usr', $this->usrf_ref_id) and
381 !$rbacsystem->checkAccess(
'cat_administrate_users', $this->usrf_ref_id)) {
382 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->ilias->error_obj->MESSAGE);
386 $this->initForm(
"create");
387 return $tpl->setContent($this->form_gui->getHtml());
398 $ilAccess =
$DIC[
'ilAccess'];
402 $rbacadmin =
$DIC[
'rbacadmin'];
403 $rbacsystem =
$DIC[
'rbacsystem'];
405 include_once(
'./Services/Authentication/classes/class.ilAuthUtils.php');
408 if (!$rbacsystem->checkAccess(
'create_usr', $this->usrf_ref_id) &&
409 !$ilAccess->checkAccess(
'cat_administrate_users',
"", $this->usrf_ref_id)) {
410 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->ilias->error_obj->MESSAGE);
414 $this->initForm(
"create");
417 $profileMaybeIncomplete =
false;
418 if ($this->form_gui->getInput(
'ignore_rf',
false)) {
422 if ($this->form_gui->checkInput()) {
428 $userObj->setPasswd($this->form_gui->getInput(
'passwd'),
IL_PASSWD_PLAIN);
429 $userObj->setTitle($userObj->getFullname());
430 $userObj->setDescription($userObj->getEmail());
433 foreach (
$_POST as $k => $v) {
434 if (substr($k, 0, 4) ==
"udf_") {
435 $udf[substr($k, 4)] = $v;
438 $userObj->setUserDefinedData($udf);
442 include_once(
'./Services/Authentication/classes/class.ilAuthUtils.php');
444 $userObj->setExternalAccount(
$_POST[
"ext_account"]);
449 $userObj->setLastPasswordChangeTS(time());
452 $userObj->saveAsNew();
456 $userObj->setLanguage(
$_POST[
"language"]);
460 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
468 $sknst = explode(
":",
$_POST[
"skin_style"]);
470 if ($userObj->getPref(
"style") != $sknst[1] ||
471 $userObj->getPref(
"skin") != $sknst[0]) {
472 $userObj->setPref(
"skin", $sknst[0]);
473 $userObj->setPref(
"style", $sknst[1]);
477 $userObj->setPref(
"hits_per_page",
$_POST[
"hits_per_page"]);
484 $userObj->setPref(
"hide_own_online_status",
$_POST[
"hide_own_online_status"]);
487 $userObj->setPref(
'bs_allow_to_contact_me',
$_POST[
'bs_allow_to_contact_me'] ?
'y' :
'n');
490 $userObj->setPref(
'chat_osc_accept_msg',
$_POST[
'chat_osc_accept_msg'] ?
'y' :
'n');
492 if ((
int)
$ilSetting->get(
'session_reminder_enabled')) {
493 $userObj->setPref(
'session_reminder_enabled', (
int)
$_POST[
'session_reminder_enabled']);
495 $userObj->writePrefs();
498 $rbacadmin->assignUser(
$_POST[
"default_role"], $userObj->getId(),
true);
500 $msg = $this->lng->txt(
"user_added");
502 $ilUser->setPref(
'send_info_mails', (
$_POST[
'send_mail'] ==
'y') ?
'y' :
'n');
505 $this->
object = $userObj;
511 if ($profileMaybeIncomplete) {
512 include_once
'Services/User/classes/class.ilUserProfile.php';
514 $this->
object->setProfileIncomplete(
true);
515 $this->
object->update();
520 if (
$_POST[
'send_mail'] ==
'y') {
521 include_once(
'Services/Mail/classes/class.ilAccountMail.php');
523 $acc_mail->useLangVariablesAsFallback(
true);
524 $acc_mail->setAttachConfiguredFiles(
true);
525 $acc_mail->setUserPassword(
$_POST[
'passwd']);
526 $acc_mail->setUser($userObj);
528 if ($acc_mail->send()) {
529 $msg = $msg .
'<br />' . $this->lng->txt(
'mail_sent');
530 ilUtil::sendSuccess($msg,
true);
532 $msg = $msg .
'<br />' . $this->lng->txt(
'mail_not_sent');
536 ilUtil::sendSuccess($msg,
true);
540 if (strtolower(
$_GET[
"baseClass"]) ==
'iladministrationgui') {
541 $this->ctrl->redirectByClass(
"ilobjuserfoldergui",
"view");
543 $this->ctrl->redirectByClass(
'ilobjcategorygui',
'listUsers');
546 $this->form_gui->setValuesByPost();
547 $tpl->setContent($this->form_gui->getHtml());
561 include_once(
'./Services/Authentication/classes/class.ilAuthUtils.php');
567 if ($this->usrf_ref_id ==
USER_FOLDER_ID and !$rbacsystem->checkAccess(
'visible,read', $this->usrf_ref_id)) {
568 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
574 if (!$rbacsystem->checkAccess(
'cat_administrate_users', $this->object->getTimeLimitOwner())) {
575 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
580 $this->tabs_gui->clearTargets();
584 $this->initForm(
"edit");
586 $this->showAcceptedTermsOfService();
587 $this->tpl->setContent($this->form_gui->getHTML());
611 $from = $this->form_gui->getItemByPostVar(
'time_limit_from')->getDate();
616 $until = $this->form_gui->getItemByPostVar(
'time_limit_until')->getDate();
617 $user->setTimeLimitUntil($until
621 $user->setTimeLimitUnlimited($this->form_gui->getInput(
'time_limit_unlimited'));
623 if ($a_mode ==
'create') {
624 $user->setTimeLimitOwner($this->usrf_ref_id);
629 $bd = $this->form_gui->getItemByPostVar(
'birthday');
630 $bd = $bd->getDate();
631 $user->setBirthday($bd
637 $user->setLogin($this->form_gui->getInput(
'login'));
642 $user->setGender($this->form_gui->getInput(
'gender'));
647 $user->setUTitle($this->form_gui->getInput(
'title'));
652 $user->setFirstname($this->form_gui->getInput(
'firstname'));
656 $user->setLastname($this->form_gui->getInput(
'lastname'));
658 $user->setFullname();
662 $user->setInstitution($this->form_gui->getInput(
'institution'));
667 $user->setDepartment($this->form_gui->getInput(
'department'));
671 $user->setStreet($this->form_gui->getInput(
'street'));
675 $user->setCity($this->form_gui->getInput(
'city'));
679 $user->setZipcode($this->form_gui->getInput(
'zipcode'));
683 $user->setCountry($this->form_gui->getInput(
'country'));
687 $user->setSelectedCountry($this->form_gui->getInput(
'sel_country'));
691 $user->setPhoneOffice($this->form_gui->getInput(
'phone_office'));
695 $user->setPhoneHome($this->form_gui->getInput(
'phone_home'));
699 $user->setPhoneMobile($this->form_gui->getInput(
'phone_mobile'));
703 $user->setFax($this->form_gui->getInput(
'fax'));
707 $user->setMatriculation($this->form_gui->getInput(
'matriculation'));
711 $user->setEmail($this->form_gui->getInput(
'email'));
715 $user->setSecondEmail($this->form_gui->getInput(
'second_email'));
719 $user->setHobby($this->form_gui->getInput(
'hobby'));
723 $user->setComment($this->form_gui->getInput(
'referral_comment'));
727 $user->setGeneralInterests($this->form_gui->getInput(
'interests_general'));
728 $user->setOfferingHelp($this->form_gui->getInput(
'interests_help_offered'));
729 $user->setLookingForHelp($this->form_gui->getInput(
'interests_help_looking'));
732 $user->setClientIP($this->form_gui->getInput(
'client_ip'));
735 $user->setLatitude($this->form_gui->getInput(
'latitude'));
736 $user->setLongitude($this->form_gui->getInput(
'longitude'));
737 $user->setLocationZoom($this->form_gui->getInput(
'loc_zoom'));
740 $user->setAuthMode($this->form_gui->getInput(
'auth_mode'));
741 $user->setExternalAccount($this->form_gui->getInput(
'ext_account'));
743 if ((
int)
$user->getActive() != (
int) $this->form_gui->getInput(
'active')) {
744 $user->setActive($this->form_gui->getInput(
'active'),
$ilUser->getId());
759 $rbacsystem =
$DIC[
'rbacsystem'];
760 $ilias =
$DIC[
'ilias'];
765 if ($this->usrf_ref_id ==
USER_FOLDER_ID and !$rbacsystem->checkAccess(
'visible,read,write', $this->usrf_ref_id)) {
766 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
772 if (!$rbacsystem->checkAccess(
'cat_administrate_users', $this->object->getTimeLimitOwner())) {
773 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
776 $this->initForm(
"edit");
779 unset(
$_POST[
'approve_date']);
780 $_POST[
'agree_date'] = $this->
object->getAgreeDate();
781 unset(
$_POST[
'last_login']);
784 $profileMaybeIncomplete =
false;
785 if ($this->form_gui->getInput(
'ignore_rf',
false)) {
789 if ($this->form_gui->checkInput()) {
793 && trim(
$_POST[
'passwd']) !=
"") {
801 if (
$_POST[
'active'] == 1) {
805 #$this->object->assignData($_POST);
809 foreach (
$_POST as $k => $v) {
810 if (substr($k, 0, 4) ==
"udf_") {
811 $udf[substr($k, 4)] = $v;
814 $this->
object->setUserDefinedData($udf);
817 $this->
object->updateLogin(
$_POST[
'login']);
820 $this->form_gui->setValuesByPost();
821 return $tpl->setContent($this->form_gui->getHtml());
824 $this->
object->setTitle($this->object->getFullname());
825 $this->
object->setDescription($this->object->getEmail());
828 $this->
object->setLanguage($this->form_gui->getInput(
'language'));
831 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
843 $sknst = explode(
":",
$_POST[
"skin_style"]);
845 if ($this->object->getPref(
"style") != $sknst[1] ||
846 $this->object->getPref(
"skin") != $sknst[0]) {
847 $this->
object->setPref(
"skin", $sknst[0]);
848 $this->
object->setPref(
"style", $sknst[1]);
852 $this->
object->setPref(
"hits_per_page",
$_POST[
"hits_per_page"]);
859 $this->
object->setPref(
"hide_own_online_status",
$_POST[
"hide_own_online_status"]);
862 $this->
object->setPref(
'bs_allow_to_contact_me',
$_POST[
'bs_allow_to_contact_me'] ?
'y' :
'n');
865 $this->
object->setPref(
'chat_osc_accept_msg',
$_POST[
'chat_osc_accept_msg'] ?
'y' :
'n');
870 $this->
object->setLastPasswordChangeTS(time());
875 if ((
int)
$ilSetting->get(
'session_reminder_enabled')) {
876 $this->
object->setPref(
'session_reminder_enabled', (
int)
$_POST[
'session_reminder_enabled']);
880 $this->
object->setProfileIncomplete(
false);
882 $this->
update = $this->
object->update();
887 if (
$ilUser->getId() == $this->object->getId()) {
890 $ilUser->setPref(
'send_info_mails', (
$_POST[
'send_mail'] ==
'y') ?
'y' :
'n');
893 $mail_message = $this->__sendProfileMail();
894 $msg = $this->lng->txt(
'saved_successfully') . $mail_message;
901 if ($profileMaybeIncomplete) {
902 include_once
'Services/User/classes/class.ilUserProfile.php';
904 $this->
object->setProfileIncomplete(
true);
905 $this->
object->update();
910 ilUtil::sendSuccess($msg,
true);
912 if (strtolower(
$_GET[
"baseClass"]) ==
'iladministrationgui') {
913 $this->ctrl->redirectByClass(
"ilobjuserfoldergui",
"view");
915 $this->ctrl->redirectByClass(
'ilobjcategorygui',
'listUsers');
918 $this->form_gui->setValuesByPost();
919 $tpl->setContent($this->form_gui->getHtml());
936 $data[
"auth_mode"] = $this->
object->getAuthMode();
937 $data[
"login"] = $this->
object->getLogin();
940 $data[
"ext_account"] = $this->
object->getExternalAccount();
945 $data[
"approve_date"] = ($this->
object->getApproveDate() !=
"")
948 $data[
"agree_date"] = ($this->
object->getAgreeDate() !=
"")
951 $data[
"last_login"] = ($this->
object->getLastLogin() !=
"")
954 $data[
"active"] = $this->
object->getActive();
955 $data[
"time_limit_unlimited"] = $this->
object->getTimeLimitUnlimited();
957 $data[
"time_limit_from"] = $this->
object->getTimeLimitFrom()
960 $data[
"time_limit_until"] = $this->
object->getTimeLimitUntil()
966 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
993 $data[
"gender"] = $this->
object->getGender();
994 $data[
"firstname"] = $this->
object->getFirstname();
995 $data[
"lastname"] = $this->
object->getLastname();
996 $data[
"title"] = $this->
object->getUTitle();
997 $data[
'birthday'] = $this->
object->getBirthday()
1000 $data[
"institution"] = $this->
object->getInstitution();
1001 $data[
"department"] = $this->
object->getDepartment();
1002 $data[
"street"] = $this->
object->getStreet();
1003 $data[
"city"] = $this->
object->getCity();
1004 $data[
"zipcode"] = $this->
object->getZipcode();
1005 $data[
"country"] = $this->
object->getCountry();
1006 $data[
"sel_country"] = $this->
object->getSelectedCountry();
1007 $data[
"phone_office"] = $this->
object->getPhoneOffice();
1008 $data[
"phone_home"] = $this->
object->getPhoneHome();
1009 $data[
"phone_mobile"] = $this->
object->getPhoneMobile();
1010 $data[
"fax"] = $this->
object->getFax();
1011 $data[
"email"] = $this->
object->getEmail();
1012 $data[
"second_email"] = $this->
object->getSecondEmail();
1013 $data[
"hobby"] = $this->
object->getHobby();
1014 $data[
"referral_comment"] = $this->
object->getComment();
1017 $data[
"interests_general"] = $this->
object->getGeneralInterests();
1018 $data[
"interests_help_offered"] = $this->
object->getOfferingHelp();
1019 $data[
"interests_help_looking"] = $this->
object->getLookingForHelp();
1022 $data[
"matriculation"] = $this->
object->getMatriculation();
1023 $data[
"client_ip"] = $this->
object->getClientIP();
1026 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
1028 $user_defined_data = $this->
object->getUserDefinedData();
1029 foreach ($this->user_defined_fields->getDefinitions() as $field_id => $definition) {
1030 $data[
"udf_" . $field_id] = $user_defined_data[
"f_" . $field_id];
1034 $data[
"language"] = $this->
object->getLanguage();
1035 $data[
"skin_style"] = $this->
object->skin .
":" . $this->
object->prefs[
"style"];
1036 $data[
"hits_per_page"] = $this->
object->prefs[
"hits_per_page"];
1038 $data[
"hide_own_online_status"] = $this->
object->prefs[
"hide_own_online_status"];
1039 $data[
'bs_allow_to_contact_me'] = $this->
object->prefs[
'bs_allow_to_contact_me'] ==
'y';
1040 $data[
'chat_osc_accept_msg'] = $this->
object->prefs[
'chat_osc_accept_msg'] ==
'y';
1041 $data[
"session_reminder_enabled"] = (int) $this->object->prefs[
"session_reminder_enabled"];
1043 $data[
"send_mail"] = ($this->object->prefs[
'send_info_mails'] ==
'y');
1046 $this->form_gui->setValuesByArray(
$data);
1052 public function initForm($a_mode)
1058 $styleDefinition =
$DIC[
'styleDefinition'];
1060 $ilClientIniFile =
$DIC[
'ilClientIniFile'];
1065 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1068 $this->form_gui->setFormAction(
$ilCtrl->getFormAction($this));
1069 if ($a_mode ==
"create") {
1070 $this->form_gui->setTitle(
$lng->txt(
"usr_new"));
1072 $this->form_gui->setTitle(
$lng->txt(
"usr_edit"));
1077 $sec_l->setTitle(
$lng->txt(
"login_data"));
1078 $this->form_gui->addItem($sec_l);
1081 include_once(
'./Services/Authentication/classes/class.ilAuthUtils.php');
1085 foreach ($active_auth_modes as $auth_name => $auth_key) {
1086 if ($auth_name ==
'default') {
1090 #$name = $this->lng->txt('auth_'.$auth_name);
1091 include_once
'./Services/Authentication/classes/class.ilAuthUtils.php';
1095 $option[$auth_name] =
$name;
1097 $am->setOptions($option);
1098 $this->form_gui->addItem($am);
1100 if ($a_mode ==
"edit") {
1102 $id->setValue($this->object->getId());
1103 $this->form_gui->addItem(
$id);
1108 $lo->setRequired(
true);
1109 if ($a_mode ==
"edit") {
1110 $lo->setCurrentUserId($this->object->getId());
1112 include_once
'Services/Calendar/classes/class.ilDate.php';
1117 $this->lng->txt(
'usr_loginname_history_info'),
1119 $last_history_entry[0]
1126 $this->form_gui->addItem($lo);
1133 $pw->setUseStripSlashes(
false);
1135 $pw->setMaxLength(80);
1136 $pw->setValidateAuthPost(
"auth_mode");
1137 if ($a_mode ==
"create") {
1138 $pw->setRequiredOnAuth(
true);
1141 $this->form_gui->addItem($pw);
1146 include_once(
'./Services/Authentication/classes/class.ilAuthUtils.php');
1150 $ext->setMaxLength(250);
1151 $ext->setInfo(
$lng->txt(
"user_ext_account_desc"));
1152 $this->form_gui->addItem($ext);
1157 $sec_si->setTitle($this->lng->txt(
"system_information"));
1158 $this->form_gui->addItem($sec_si);
1161 if ($a_mode ==
"edit") {
1162 $sia = array(
"create_date",
"approve_date",
"agree_date",
"last_login",
"owner");
1163 foreach ($sia as $a) {
1165 $this->form_gui->addItem($siai);
1171 $ac->setChecked(
true);
1172 $this->form_gui->addItem($ac);
1175 $lng->loadLanguageModule(
'crs');
1181 $radg->addOption($op1);
1183 $radg->addOption($op2);
1191 $acfrom->setRequired(
true);
1192 $acfrom->setShowTime(
true);
1194 $op2->addSubItem($acfrom);
1198 $acto->setRequired(
true);
1199 $acto->setShowTime(
true);
1201 $op2->addSubItem($acto);
1204 $this->form_gui->addItem($radg);
1206 require_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
1208 $lng->loadLanguageModule(
"file");
1211 $quota_head->setTitle(
$lng->txt(
"repository_disk_quota"));
1212 $this->form_gui->addItem($quota_head);
1216 $disk_quota->setSize(10);
1217 $disk_quota->setMaxLength(11);
1218 $disk_quota->setInfo($this->lng->txt(
"enter_in_mb_desc"));
1219 $this->form_gui->addItem($disk_quota);
1221 if ($a_mode ==
"edit") {
1223 require_once
'Services/WebDAV/classes/class.ilDiskQuotaChecker.php';
1225 if ($dq_info[
'user_disk_quota'] > $dq_info[
'role_disk_quota']) {
1226 $info_text = sprintf(
1227 $lng->txt(
'disk_quota_is_1_instead_of_2_by_3'),
1230 $dq_info[
'role_title']
1232 } elseif (is_infinite($dq_info[
'role_disk_quota'])) {
1233 $info_text = sprintf(
$lng->txt(
'disk_quota_is_unlimited_by_1'), $dq_info[
'role_title']);
1235 $info_text = sprintf(
1236 $lng->txt(
'disk_quota_is_1_by_2'),
1238 $dq_info[
'role_title']
1241 $disk_quota->setInfo($this->lng->txt(
"enter_in_mb_desc") .
'<br>' . $info_text);
1247 if ($du_info[
'last_update'] ===
null) {
1248 $disk_usage->setValue(
$lng->txt(
'unknown'));
1251 $info =
'<table class="il_user_quota_disk_usage_overview">';
1253 foreach ($du_info[
'details'] as $detail_data) {
1255 '<td class="std">' . $detail_data[
'count'] .
'</td>' .
1256 '<td class="std">' .
$lng->txt($detail_data[
'type']) .
'</td>' .
1261 $info .=
'</table>';
1262 $info .=
'<br>' . $this->lng->txt(
'last_update') .
': ' .
1264 $disk_usage->setInfo(
$info);
1266 $this->form_gui->addItem($disk_usage);
1269 if (
true || $dq_info[
'last_reminder']) {
1271 $reminder->setValue(
1274 $reminder->setInfo($this->lng->txt(
"disk_quota_last_reminder_sent_desc"));
1275 $this->form_gui->addItem($reminder);
1281 $lng->loadLanguageModule(
"file");
1284 $quota_head->setTitle(
$lng->txt(
"personal_workspace_disk_quota"));
1285 $this->form_gui->addItem($quota_head);
1289 $wsp_disk_quota->setSize(10);
1290 $wsp_disk_quota->setMaxLength(11);
1291 $wsp_disk_quota->setInfo($this->lng->txt(
"enter_in_mb_desc"));
1292 $this->form_gui->addItem($wsp_disk_quota);
1294 if ($a_mode ==
"edit") {
1296 require_once
'Services/WebDAV/classes/class.ilDiskQuotaChecker.php';
1298 if ($dq_info[
'user_wsp_disk_quota'] > $dq_info[
'role_wsp_disk_quota']) {
1299 $info_text = sprintf(
1300 $lng->txt(
'disk_quota_is_1_instead_of_2_by_3'),
1303 $dq_info[
'role_title']
1305 } elseif (is_infinite($dq_info[
'role_wsp_disk_quota'])) {
1306 $info_text = sprintf(
$lng->txt(
'disk_quota_is_unlimited_by_1'), $dq_info[
'role_title']);
1308 $info_text = sprintf(
1309 $lng->txt(
'disk_quota_is_1_by_2'),
1311 $dq_info[
'role_title']
1314 $wsp_disk_quota->setInfo($this->lng->txt(
"enter_in_mb_desc") .
'<br>' . $info_text);
1318 include_once
"Services/DiskQuota/classes/class.ilDiskQuotaHandler.php";
1321 if (!
sizeof($du_info)) {
1322 $disk_usage->setValue(
$lng->txt(
'unknown'));
1325 $info =
'<table class="il_user_quota_disk_usage_overview">';
1327 foreach ($du_info as $detail_data) {
1329 '<td class="std">' . $detail_data[
'count'] .
'</td>' .
1330 '<td class="std">' .
$lng->txt(
"obj_" . $detail_data[
"src_type"]) .
'</td>' .
1331 '<td class="std">' .
ilUtil::formatSize($detail_data[
'filesize'],
'short') .
'</td>' .
1335 $info .=
'</table>';
1336 $disk_usage->setInfo(
$info);
1338 $this->form_gui->addItem($disk_usage);
1351 $sec_pd->setTitle($this->lng->txt(
"personal_data"));
1352 $this->form_gui->addItem($sec_pd);
1358 $gndr->setRequired(isset(
$settings[
"require_gender"]) &&
$settings[
"require_gender"]);
1360 $gndr->addOption($neutral);
1362 $gndr->addOption($female);
1364 $gndr->addOption($male);
1365 $this->form_gui->addItem($gndr);
1369 $fields = array(
"firstname" =>
true,
"lastname" =>
true,
1371 foreach ($fields as $field =>
$req) {
1374 $caption = ($field ==
"title")
1379 $inp->setMaxLength(32);
1380 $inp->setRequired(
$req);
1381 $this->form_gui->addItem($inp);
1388 if ($a_mode ==
"edit" || $a_mode ==
"upload") {
1389 $pi->setImage(ilObjUser::_getPersonalPicturePath(
1390 $this->object->getId(),
1396 $this->form_gui->addItem($pi);
1401 $birthday->setRequired(isset(
$settings[
"require_birthday"]) &&
$settings[
"require_birthday"]);
1402 $this->form_gui->addItem($birthday);
1409 array(
"institution", 40, 80),
1410 array(
"department", 40, 80),
1411 array(
"street", 40, 40),
1412 array(
"city", 40, 40),
1413 array(
"zipcode", 10, 10),
1414 array(
"country", 40, 40),
1415 array(
"sel_country"),
1416 array(
"phone_office", 30, 30),
1417 array(
"phone_home", 30, 30),
1418 array(
"phone_mobile", 30, 30),
1419 array(
"fax", 30, 30));
1422 foreach ($fields as $field) {
1426 $sec_cd->setTitle($this->lng->txt(
"contact_data"));
1427 $this->form_gui->addItem($sec_cd);
1430 if ($a_mode ==
"edit") {
1432 $orgus->setValue($this->object->getOrgUnitsRepresentation());
1433 $this->form_gui->addItem($orgus);
1437 if ($field[0] !=
"sel_country") {
1439 $inp->setSize($field[1]);
1440 $inp->setMaxLength($field[2]);
1441 $inp->setRequired(isset(
$settings[
"require_" . $field[0]]) &&
1443 $this->form_gui->addItem($inp);
1446 include_once(
"./Services/Form/classes/class.ilCountrySelectInputGUI.php");
1448 $cs->setRequired(isset(
$settings[
"require_" . $field[0]]) &&
1450 $this->form_gui->addItem($cs);
1458 $em->setRequired(isset(
$settings[
"require_email"]) &&
1460 $this->form_gui->addItem($em);
1467 $this->form_gui->addItem($em);
1475 $hob->setRequired(isset(
$settings[
"require_hobby"]) &&
1477 $this->form_gui->addItem($hob);
1485 $rc->setRequired(isset(
$settings[
"require_referral_comment"]) &&
1487 $this->form_gui->addItem($rc);
1494 $sh->setTitle(
$lng->txt(
"interests"));
1495 $this->form_gui->addItem($sh);
1497 $multi_fields = array(
"interests_general",
"interests_help_offered",
"interests_help_looking");
1498 foreach ($multi_fields as $multi_field) {
1502 $ti->setMulti(
true);
1503 $ti->setMaxLength(40);
1505 $ti->setRequired(isset(
$settings[
"require_" . $multi_field]) &&
1507 $this->form_gui->addItem($ti);
1515 $sec_oi->setTitle($this->lng->txt(
"user_profile_other"));
1516 $this->form_gui->addItem($sec_oi);
1523 $mr->setMaxLength(40);
1524 $mr->setRequired(isset(
$settings[
"require_matriculation"]) &&
1526 $this->form_gui->addItem($mr);
1532 $ip->setMaxLength(255);
1533 $ip->setInfo($this->lng->txt(
"current_ip") .
" " .
$_SERVER[
"REMOTE_ADDR"] .
" <br />" .
1534 '<span class="warning">' . $this->lng->txt(
"current_ip_alert") .
"</span>");
1535 $this->form_gui->addItem($ip);
1538 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
1542 $all_defs = $user_defined_fields->getDefinitions();
1544 $all_defs = $user_defined_fields->getChangeableLocalUserAdministrationDefinitions();
1547 foreach ($all_defs as $field_id => $definition) {
1548 include_once
'./Services/User/classes/class.ilCustomUserFieldsHelper.php';
1551 $this->form_gui->addItem($f_property);
1557 $a_mode ==
'create' or
1566 $sec_st->setTitle($this->lng->txt(
"settings"));
1567 $this->form_gui->addItem($sec_st);
1571 if ($a_mode ==
"create") {
1573 $lng->txt(
"default_role"),
1576 $role->setRequired(
true);
1577 $role->setValue($this->default_role);
1578 $role->setOptions($this->selectable_roles);
1579 $this->form_gui->addItem($role);
1585 $lng->txt(
"language"),
1589 $lng->loadLanguageModule(
"meta");
1596 $this->form_gui->addItem(
$lang);
1602 $lng->txt(
"skin_style"),
1608 $skins = $styleDefinition->getAllSkins();
1611 if (is_array($skins)) {
1615 foreach ($skins as $skin) {
1616 foreach ($skin->getStyles() as
$style) {
1617 include_once(
"./Services/Style/System/classes/class.ilSystemStyleSettings.php");
1622 $options[$skin->getId() .
":" .
$style->getId()] = $skin->getName() .
" / " .
$style->getName();
1627 $sk->setValue($ilClientIniFile->readVariable(
"layout",
"skin") .
1628 ":" . $ilClientIniFile->readVariable(
"layout",
"style"));
1630 $this->form_gui->addItem($sk);
1636 $lng->txt(
"hits_per_page"),
1639 $options = array(10 => 10, 15 => 15, 20 => 20, 30 => 30, 40 => 40,
1640 50 => 50, 100 => 100, 9999 => $this->lng->txt(
"no_limit"));
1642 $hpp->setValue(
$ilSetting->get(
"hits_per_page"));
1643 $this->form_gui->addItem($hpp);
1659 $lng->loadLanguageModule(
"awrn");
1662 ? $this->lng->txt(
"user_awrn_show")
1663 : $this->lng->txt(
"user_awrn_hide");
1666 "" => $this->lng->txt(
"user_awrn_default").
" (".
$default.
")",
1667 "n" => $this->lng->txt(
"user_awrn_show"),
1668 "y" => $this->lng->txt(
"user_awrn_hide"));
1671 $os->setDisabled(
$ilSetting->get(
"usr_settings_disable_hide_own_online_status"));
1672 $os->setInfo(
$lng->txt(
"awrn_hide_from_awareness_info"));
1673 $this->form_gui->addItem($os);
1682 $lng->loadLanguageModule(
'buddysystem');
1684 if ($a_mode ==
'create') {
1687 $this->form_gui->addItem($os);
1690 $lng->loadLanguageModule(
'chatroom');
1692 if ($a_mode ==
'create') {
1695 $this->form_gui->addItem($chat_osc_acm);
1698 if ((
int)
$ilSetting->get(
'session_reminder_enabled')) {
1699 $cb =
new ilCheckboxInputGUI($this->lng->txt(
'session_reminder'),
'session_reminder_enabled');
1701 $this->form_gui->addItem($cb);
1707 $sec_op->setTitle($this->lng->txt(
"options"));
1708 $this->form_gui->addItem($sec_op);
1713 $se->setInfo(
$lng->txt(
'inform_user_mail_info'));
1715 $se->setChecked((
$ilUser->getPref(
'send_info_mails') ==
'y'));
1716 $this->form_gui->addItem($se);
1720 $irf->setInfo(
$lng->txt(
'ignore_required_fields_info'));
1722 $this->form_gui->addItem($irf);
1727 if ($a_mode ==
"create" || $a_mode ==
"save") {
1728 $this->form_gui->addCommandButton(
"save",
$lng->txt(
"save"));
1730 if ($a_mode ==
"edit" || $a_mode ==
"update") {
1731 $this->form_gui->addCommandButton(
"update",
$lng->txt(
"save"));
1733 $this->form_gui->addCommandButton(
"cancel",
$lng->txt(
"cancel"));
1762 return (
bool)
$settings[
'usr_settings_changeable_lua_' . $a_field];
1777 $rbacsystem =
$DIC[
'rbacsystem'];
1781 !$rbacsystem->checkAccess(
'visible,read', $this->usrf_ref_id)) {
1782 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
1788 if (!$rbacsystem->checkAccess(
'cat_administrate_users', $this->object->getTimeLimitOwner())) {
1789 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_modify_user"), $this->ilias->error_obj->MESSAGE);
1793 $userfile_input = $this->form_gui->getItemByPostVar(
"userfile");
1795 if ($_FILES[
"userfile"][
"tmp_name"] ==
"") {
1796 if ($userfile_input->getDeletionFlag()) {
1797 $this->
object->removeUserPicture();
1801 if ($_FILES[
"userfile"][
"size"] == 0) {
1805 $image_dir = $webspace_dir .
"/usr_images";
1806 $store_file =
"usr_" . $this->
object->getId() .
"." .
"jpg";
1809 $this->
object->setPref(
"profile_image", $store_file);
1810 $this->
object->update();
1813 $pi = pathinfo($_FILES[
"userfile"][
"name"]);
1814 $uploaded_file = $image_dir .
"/upload_" . $this->
object->getId() .
"." . $pi[
"extension"];
1815 if (!ilUtil::moveUploadedFile(
1816 $_FILES[
"userfile"][
"tmp_name"],
1817 $_FILES[
"userfile"][
"name"],
1822 $this->ctrl->redirect($this,
"showProfile");
1824 chmod($uploaded_file, 0770);
1828 $show_file =
"$image_dir/usr_" . $this->
object->getId() .
".jpg";
1829 $thumb_file =
"$image_dir/usr_" . $this->
object->getId() .
"_small.jpg";
1830 $xthumb_file =
"$image_dir/usr_" . $this->
object->getId() .
"_xsmall.jpg";
1831 $xxthumb_file =
"$image_dir/usr_" . $this->
object->getId() .
"_xxsmall.jpg";
1839 ilUtil::execConvert($uploaded_file .
"[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:" . $show_file);
1840 ilUtil::execConvert($uploaded_file .
"[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:" . $thumb_file);
1841 ilUtil::execConvert($uploaded_file .
"[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:" . $xthumb_file);
1842 ilUtil::execConvert($uploaded_file .
"[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:" . $xxthumb_file);
1844 ilUtil::execConvert($uploaded_file .
"[0] -geometry 200x200 -quality 100 JPEG:" . $show_file);
1845 ilUtil::execConvert($uploaded_file .
"[0] -geometry 100x100 -quality 100 JPEG:" . $thumb_file);
1846 ilUtil::execConvert($uploaded_file .
"[0] -geometry 75x75 -quality 100 JPEG:" . $xthumb_file);
1847 ilUtil::execConvert($uploaded_file .
"[0] -geometry 30x30 -quality 100 JPEG:" . $xxthumb_file);
1858 $image_dir = $webspace_dir .
"/usr_images";
1859 $file = $image_dir .
"/usr_" . $this->
object->getID() .
"." .
"jpg";
1860 $thumb_file = $image_dir .
"/usr_" . $this->
object->getID() .
"_small.jpg";
1861 $xthumb_file = $image_dir .
"/usr_" . $this->
object->getID() .
"_xsmall.jpg";
1862 $xxthumb_file = $image_dir .
"/usr_" . $this->
object->getID() .
"_xxsmall.jpg";
1863 $upload_file = $image_dir .
"/upload_" . $this->
object->getID();
1866 $this->
object->setPref(
"profile_image",
"");
1867 $this->
object->update();
1868 ilUtil::sendSuccess($this->lng->txt(
"user_image_removed"));
1870 if (@is_file($file)) {
1873 if (@is_file($thumb_file)) {
1874 unlink($thumb_file);
1876 if (@is_file($xthumb_file)) {
1877 unlink($xthumb_file);
1879 if (@is_file($xxthumb_file)) {
1880 unlink($xxthumb_file);
1882 if (@is_file($upload_file)) {
1883 unlink($upload_file);
1899 $rbacsystem =
$DIC[
'rbacsystem'];
1900 $rbacadmin =
$DIC[
'rbacadmin'];
1903 if (!$rbacsystem->checkAccess(
"edit_roleassignment", $this->usrf_ref_id)) {
1904 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_assign_role_to_user"), $this->ilias->error_obj->MESSAGE);
1907 $selected_roles =
$_POST[
"role_id"] ?
$_POST[
"role_id"] : array();
1908 $posted_roles =
$_POST[
"role_id_ctrl"] ?
$_POST[
"role_id_ctrl"] : array();
1911 if ($this->object->getId() == SYSTEM_USER_ID and in_array(SYSTEM_ROLE_ID, $posted_roles)) {
1912 array_push($selected_roles, SYSTEM_ROLE_ID);
1915 $global_roles_all =
$rbacreview->getGlobalRoles();
1916 $assigned_roles_all =
$rbacreview->assignedRoles($this->object->getId());
1917 $assigned_roles = array_intersect($assigned_roles_all, $posted_roles);
1918 $assigned_global_roles_all = array_intersect($assigned_roles_all, $global_roles_all);
1919 $assigned_global_roles = array_intersect($assigned_global_roles_all, $posted_roles);
1920 $posted_global_roles = array_intersect($selected_roles, $global_roles_all);
1922 if ((empty($selected_roles) and count($assigned_roles_all) == count($assigned_roles))
1923 or (empty($posted_global_roles) and count($assigned_global_roles_all) == count($assigned_global_roles))) {
1926 ilUtil::sendFailure($this->lng->txt(
"msg_min_one_role") .
"<br/>" . $this->lng->txt(
"action_aborted"),
true);
1927 $this->ctrl->redirect($this,
'roleassignment');
1930 foreach (array_diff($assigned_roles, $selected_roles) as $role) {
1931 $rbacadmin->deassignUser($role, $this->object->getId());
1934 foreach (array_diff($selected_roles, $assigned_roles) as $role) {
1935 $rbacadmin->assignUser($role, $this->object->getId(),
false);
1938 include_once
"./Services/AccessControl/classes/class.ilObjRole.php";
1941 $this->
object->update();
1943 ilUtil::sendSuccess($this->lng->txt(
"msg_roleassignment_changed"),
true);
1945 if (strtolower(
$_GET[
"baseClass"]) ==
'iladministrationgui') {
1946 $this->ctrl->redirect($this,
'roleassignment');
1948 $this->ctrl->redirectByClass(
'ilobjcategorygui',
'listUsers');
1962 $rbacsystem =
$DIC[
'rbacsystem'];
1964 $ilTabs =
$DIC[
'ilTabs'];
1966 $ilTabs->activateTab(
"role_assignment");
1968 if (!$rbacsystem->checkAccess(
"edit_roleassignment", $this->usrf_ref_id)) {
1969 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_assign_role_to_user"), $this->ilias->error_obj->MESSAGE);
1978 $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.usr_role_assignment.html',
'Services/User');
1981 $this->tpl->setCurrentBlock(
"filter");
1982 $this->tpl->setVariable(
"FILTER_TXT_FILTER", $this->lng->txt(
'filter'));
1984 $this->tpl->setVariable(
"FILTER_ACTION", $this->ctrl->getFormAction($this));
1985 $this->tpl->setVariable(
"FILTER_NAME",
'roleassignment');
1986 $this->tpl->setVariable(
"FILTER_VALUE", $this->lng->txt(
'apply_filter'));
1987 $this->tpl->parseCurrentBlock();
1991 include_once(
"./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
1995 $role_list =
$rbacreview->getRolesByFilter(
$tab->filter[
"role_filter"], $this->object->getId());
1996 $assigned_roles =
$rbacreview->assignedRoles($this->object->getId());
2000 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
2003 foreach ($role_list as $role) {
2005 $rolf =
$rbacreview->getFoldersAssignedToRole($role[
"obj_id"],
true);
2015 if ($this->tree->isInTree($rolf[0])) {
2016 if ($rolf[0] == ROLE_FOLDER_ID) {
2017 $path = $this->lng->txt(
"global");
2019 $tmpPath = $this->tree->getPathFull($rolf[0]);
2032 $path = $tmpPath[count($tmpPath) - 1][
"title"];
2035 $path =
"<b>Rolefolder " . $rolf[0] .
" not found in tree! (Role " . $role[
"obj_id"] .
")</b>";
2041 if (($this->object->getId() == SYSTEM_USER_ID and $role[
"obj_id"] == SYSTEM_ROLE_ID)
2042 or (!in_array(SYSTEM_ROLE_ID,
$rbacreview->assignedRoles(
$ilUser->getId())) and $role[
"obj_id"] == SYSTEM_ROLE_ID)) {
2047 if ($role[
'obj_id'] == SYSTEM_ROLE_ID && !
$rbacreview->isAssigned(
$ilUser->getId(), SYSTEM_ROLE_ID)) {
2048 include_once
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php';
2054 if (substr($role[
"title"], 0, 3) ==
"il_") {
2056 $rolf_arr =
$rbacreview->getFoldersAssignedToRole($role[
"obj_id"],
true);
2057 $rolf2 = $rolf_arr[0];
2062 $parent_node = $this->tree->getNodeData($rolf2);
2064 $role[
"description"] = $this->lng->txt(
"obj_" . $parent_node[
"type"]) .
" (#" . $parent_node[
"obj_id"] .
")";
2067 $role_ids[$counter] = $role[
"obj_id"];
2069 $result_set[$counter][] = $checkbox = ilUtil::formCheckBox(in_array($role[
"obj_id"], $assigned_roles),
"role_id[]", $role[
"obj_id"], $disabled) .
"<input type=\"hidden\" name=\"role_id_ctrl[]\" value=\"" . $role[
"obj_id"] .
"\"/>";
2070 $this->ctrl->setParameterByClass(
"ilobjrolegui",
"ref_id", $rolf[0]);
2071 $this->ctrl->setParameterByClass(
"ilobjrolegui",
"obj_id", $role[
"obj_id"]);
2072 $result_set[$counter][] = $link =
"<a href=\"" . $this->ctrl->getLinkTargetByClass(
"ilobjrolegui",
"perm") .
"\">" .
ilObjRole::_getTranslation($role[
"title"]) .
"</a>";
2074 $result_set[$counter][] = $role[
"description"];
2077 if ($role[
"role_type"] ==
"local") {
2085 foreach ($ref_ids as
$ref_id) {
2088 require_once(
"./Services/Link/classes/class.ilLink.php");
2092 $result_set[$counter][] =
$path;
2096 $records[] = array(
"path" =>
$path,
"description" => $role[
"description"],
2097 "context" =>
$context,
"checkbox" => $checkbox,
2098 "role" => $link,
"title" =>
$title);
2104 $this->tpl->setVariable(
"ROLES_TABLE",
$tab->getHTML());
2114 include_once(
"./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
2116 $table_gui->writeFilterToSession();
2117 $table_gui->resetOffset();
2126 include_once(
"./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
2128 $table_gui->resetOffset();
2129 $table_gui->resetFilter();
2137 for (
$i = 0;
$i <= 60;
$i++) {
2138 $days[
$i] =
$i < 10 ?
"0" .
$i :
$i;
2143 for (
$i = 0;
$i < 24;
$i++) {
2144 $days[
$i] =
$i < 10 ?
"0" .
$i :
$i;
2149 for (
$i = 1;
$i < 32;
$i++) {
2150 $days[
$i] =
$i < 10 ?
"0" .
$i :
$i;
2155 for (
$i = 1;
$i < 13;
$i++) {
2156 $month[
$i] =
$i < 10 ?
"0" .
$i :
$i;
2161 if ($a_selected < date(
'Y', time())) {
2164 $start = date(
'Y', time());
2177 $a_time_arr[
"hour"],
2178 $a_time_arr[
"minute"],
2179 $a_time_arr[
"second"],
2180 $a_time_arr[
"month"],
2196 $action[0] = $this->lng->txt(
'assigned_roles');
2197 $action[1] = $this->lng->txt(
'all_roles');
2198 $action[2] = $this->lng->txt(
'all_global_roles');
2199 $action[3] = $this->lng->txt(
'all_local_roles');
2200 $action[4] = $this->lng->txt(
'internal_local_roles_only');
2201 $action[5] = $this->lng->txt(
'non_internal_local_roles_only');
2208 parent::hitsperpageObject();
2220 $ilLocator =
$DIC[
'ilLocator'];
2222 $ilLocator->clearItems();
2224 if (
$_GET[
"admin_mode"] ==
"settings") {
2225 $this->ctrl->setParameterByClass(
2226 "ilobjsystemfoldergui",
2230 $ilLocator->addItem(
2231 $this->lng->txt(
"administration"),
2232 $this->ctrl->getLinkTargetByClass(array(
"iladministrationgui",
"ilobjsystemfoldergui"),
""),
2237 $ilLocator->addItem(
2241 $this->ctrl->getLinkTargetByClass(
"ilobjuserfoldergui",
"view")
2243 } elseif (
$_GET[
'ref_id'] == ROLE_FOLDER_ID) {
2244 $ilLocator->addItem(
2248 $this->ctrl->getLinkTargetByClass(
"ilobjrolefoldergui",
"view")
2252 if (
$_GET[
"obj_id"] > 0) {
2253 $ilLocator->addItem(
2254 $this->object->getTitle(),
2255 $this->ctrl->getLinkTarget($this,
"view")
2267 public function __sendProfileMail()
2272 $ilias =
$DIC[
'ilias'];
2274 if (
$_POST[
'send_mail'] !=
'y') {
2277 if (!strlen($this->object->getEmail())) {
2282 $usr_lang =
new ilLanguage($this->object->getLanguage());
2283 $usr_lang->loadLanguageModule(
'crs');
2284 $usr_lang->loadLanguageModule(
'registration');
2286 include_once
"Services/Mail/classes/class.ilMimeMail.php";
2289 $senderFactory =
$GLOBALS[
'DIC'][
"mail.mime.sender.factory"];
2292 $mmail->From($senderFactory->system());
2296 $subject = $usr_lang->txt(
"profile_changed");
2300 $body = ($usr_lang->txt(
"reg_mail_body_salutation") .
" " . $this->
object->getFullname() .
",\n\n");
2302 $date = $this->
object->getApproveDate();
2304 if ((time() - strtotime($date)) < 10) {
2305 $body .= ($usr_lang->txt(
'reg_mail_body_approve') .
"\n\n");
2307 $body .= ($usr_lang->txt(
'reg_mail_body_profile_changed') .
"\n\n");
2311 if (
$_POST[
'passwd'] !=
'') {
2312 $body .= $usr_lang->txt(
"reg_mail_body_text2") .
"\n" .
2313 ILIAS_HTTP_PATH .
"/login.php?client_id=" . $ilias->client_id .
"\n" .
2314 $usr_lang->txt(
"login") .
": " . $this->
object->getLogin() .
"\n" .
2315 $usr_lang->txt(
"passwd") .
": " .
$_POST[
'passwd'] .
"\n\n";
2317 $body .= ($usr_lang->txt(
"reg_mail_body_text3") .
"\n");
2318 $body .= $this->
object->getProfileAsString($usr_lang);
2320 $mmail->Subject($subject,
true);
2321 $mmail->Body($body);
2325 return "<br/>" . $this->lng->txt(
"mail_sent");
2339 if ($a_target == md5(
"usrdelown")) {
2340 if (
$ilUser->getId() != ANONYMOUS_USER_ID &&
2342 $ilCtrl->initBaseClass(
"ilpersonaldesktopgui");
2343 $ilCtrl->redirectByClass(array(
"ilpersonaldesktopgui",
"ilpersonalsettingsgui"),
"deleteOwnAccount3");
2345 exit(
"This account is not flagged for deletion.");
2349 if (substr($a_target, -4) ==
"_bdg") {
2350 $_GET[
"baseClass"] =
"ilPersonalDesktopGUI";
2351 $_GET[
"cmd"] =
"jumpToBadges";
2352 include(
"ilias.php");
2356 if (
'registration' == $a_target) {
2357 $_GET[
"baseClass"] =
'ilStartUpGUI';
2358 $ilCtrl->redirectByClass(array(
'ilStartUpGUI',
'ilAccountRegistrationGUI'),
'');
2359 } elseif (
'nameassist' == $a_target) {
2360 $_GET[
"baseClass"] =
'ilStartUpGUI';
2361 $ilCtrl->redirectByClass(array(
'ilStartUpGUI',
'ilPasswordAssistanceGUI'),
'showUsernameAssistanceForm');
2362 } elseif (
'pwassist' == $a_target) {
2363 $_GET[
"baseClass"] =
'ilStartUpGUI';
2364 $ilCtrl->redirectByClass(array(
'ilStartUpGUI',
'ilPasswordAssistanceGUI'),
'');
2365 } elseif (
'agreement' == $a_target) {
2367 $ilCtrl->setTargetScript(
'ilias.php');
2368 $ilCtrl->initBaseClass(
'ilpersonaldesktopgui');
2369 $ilCtrl->redirectByClass(array(
'ilpersonaldesktopgui',
'ilpersonalprofilegui'),
'showUserAgreement');
2371 $_GET[
'baseClass'] =
'ilStartUpGUI';
2372 $ilCtrl->setTargetScript(
'ilias.php');
2373 $ilCtrl->redirectByClass(array(
'ilStartUpGUI'),
'showTermsOfService');
2377 if (substr($a_target, 0, 1) ==
"n") {
2381 if (strpos($a_target,
'contact_approved') !==
false) {
2382 $_GET[
'cmd'] =
'approveContactRequest';
2383 } elseif (strpos($a_target,
'contact_ignored') !==
false) {
2384 $_GET[
'cmd'] =
'ignoreContactRequest';
2386 $_GET[
'cmd'] =
'view';
2389 $_GET[
"user_id"] = (int) $a_target;
2390 $_GET[
"baseClass"] =
"ilPublicUserProfileGUI";
2391 $_GET[
"cmdClass"] =
"ilpublicuserprofilegui";
2392 include(
"ilias.php");
2406 $profileMaybeIncomplete =
false;
2408 require_once
'Services/User/classes/class.ilUserProfile.php';
2411 $elm = $this->form_gui->getItemByPostVar($fieldName);
2417 if ($elm->getRequired()) {
2418 $profileMaybeIncomplete =
true;
2421 $elm->setRequired(
false);
2425 include_once
'Services/User/classes/class.ilUserDefinedFields.php';
2427 foreach ($user_defined_fields->getDefinitions() as $field_id => $definition) {
2428 $elm = $this->form_gui->getItemByPostVar(
'udf_' . $definition[
'field_id']);
2434 if ($elm->getRequired() && $definition[
'changeable'] && $definition[
'required'] && $definition[
'visible']) {
2435 $profileMaybeIncomplete =
true;
2438 $elm->setRequired(
false);
2442 return $profileMaybeIncomplete;
2448 protected function showAcceptedTermsOfService()
2451 $agreeDate = $this->form_gui->getItemByPostVar(
'agree_date');
2452 if ($agreeDate && $agreeDate->getValue()) {
2453 $this->lng->loadLanguageModule(
'tos');
2454 $helper = new \ilTermsOfServiceHelper();
2456 $entity = $helper->getCurrentAcceptanceForUser($this->
object);
2457 if ($entity->getId()) {
2458 $modal = $this->uiFactory
2461 $this->uiFactory->modal()->lightboxTextPage($entity->getText(), $entity->getTitle())
2464 $titleLink = $this->uiFactory
2466 ->shy($entity->getTitle(),
'#')
2467 ->withOnClick($modal->getShowSignal());
2470 $this->lng->txt(
'tos_agreement_document'),
2474 $agreementDocument->setValue($this->uiRenderer->render([$titleLink, $modal]));
2475 $agreeDate->addSubItem($agreementDocument);
2477 } elseif ($agreeDate) {
2478 $agreeDate->setValue($this->lng->txt(
'tos_not_accepted_yet'));
An exception for terminatinating execution or to throw for unit testing.
const USER_FOLDER_ID
Class ilObjUserFolder.
static getAuthModeTranslation($a_auth_key, $auth_name='')
static _allowPasswordModificationByAuthMode($a_auth_mode)
Allow password modification.
static _getAuthMode($a_auth_mode, $a_db_handler='')
static _getActiveAuthModes()
static _isExternalAccountEnabled()
Check if an external account name is required.
static _getAuthModeName($a_auth_key)
static getInstance()
Get instance.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
@classDescription Date and time handling
static _isActive()
Static getter.
static _isPersonalWorkspaceActive()
Static getter.
static _lookupDiskUsage($a_user_id)
Gets the disk usage info for the specified user account.
static _lookupPersonalWorkspaceDiskQuota($a_user_id)
static _lookupDiskQuota($a_user_id)
Gets the disk quota info for the specified user account.
static getFilesizeByTypeAndOwner($a_owner_id)
Get current storage size for owner (grouped by type)
static getFilesizeByOwner($a_owner_id)
Get current storage size for owner.
const LP_CONTEXT_USER_FOLDER
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getExternalEmailsByUser(ilObjUser $user, ilMailOptions $mail_options=null)
This class represents a non editable value in a property form.
static _getTranslation($a_role_title)
static _getAssignUsersStatus($a_role_id)
saveObject()
save user data @access public
setBackTarget($a_text, $a_link)
set back tab target
__getDateSelect($a_type, $a_varname, $a_selected)
editObject()
Display user edit form.
getAdminTabs()
admin and normal tabs are equal for roles
handleIgnoredRequiredFields()
Handles ignored required fields by changing the required flag of form elements.
applyFilterObject()
Apply filter.
static _goto($a_target)
Goto user profile screen.
cancelObject()
cancel action and go back to previous page @access public
resetFilterObject()
Reset filter.
updateObject()
Update user.
addAdminLocatorItems($a_do_not_add_object=false)
should be overwritten to add object specific items (repository items are preloaded)
roleassignmentObject()
display roleassignment panel
__construct( $a_data, $a_id, $a_call_by_reference=false, $a_prepare_output=true, ILIAS\UI\Factory $uiFactory=null, ILIAS\UI\Renderer $uiRenderer=null)
ilObjUserGUI constructor.
uploadUserPictureObject()
upload user image
loadValuesFromForm($a_mode='create')
__showUserDefinedFields()
removeUserPictureObject()
remove user image
__unsetSessionVariables()
createObject()
Display user create form.
getValues()
Get values from user object and put them into form.
assignSaveObject()
assign users to role
setTitleAndDescription()
called by prepare output
isSettingChangeable($a_field)
Check if setting is visible This is the case when called from user folder.
executeCommand()
execute command
__checkUserDefinedRequiredFields()
display user create form
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static _resetLoginAttempts($a_usr_id)
static _getLastHistoryDataByUserId($a_usr_id)
Returns the last used loginname and the changedate of the passed user_id.
static _lookupLogin($a_user_id)
lookup login
static _lookupId($a_user_str)
Lookup id by login.
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
Class ilObjectOwnershipManagementGUI.
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
This class represents an option in a radio group.
TableGUI class for role assignment in user administration.
static _getInstance()
Get instance of ilSecuritySettings.
static clear($a_var)
Unset a value.
static _lookupActivatedStyle($a_skin, $a_style)
lookup if a style is activated
This class represents a text area property in a property form.
This class represents a text property in a property form.
static _getInstance()
Get instance.
Class for user related exception handling in ILIAS.
static getIgnorableRequiredSettings()
Returns an array of all ignorable profiel fields.
static isProfileIncomplete($a_user, $a_include_udf=true, $a_personal_data_only=true)
Check if all required personal data fields are set.
static isConvertVersionAtLeast($a_version)
Compare convert version numbers.
static escapeShellArg($a_arg)
static getWebspaceDir($mode="filesystem")
get webspace directory
static execConvert($args)
execute convert command
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static formatSize($size, $a_mode='short', $a_lng=null)
Returns the specified file size value in a human friendly form.
static getPasswordRequirementsInfo()
infotext for ilPasswordInputGUI setInfo()
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static MB2Bytes($a_value)
static yn2tf($a_yn)
convert "y"/"n" to true/false
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 sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
static Bytes2MB($a_value)
if(!array_key_exists('StateId', $_REQUEST)) $id
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
update($pash, $contents, Config $config)
redirection script todo: (a better solution should control the processing via a xml file)
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']