4require_once 
"./Services/Object/classes/class.ilObjectGUI.php";
 
   30    public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output = 
true)
 
   35        define(
'USER_FOLDER_ID', 7);
 
   38        parent::__construct($a_data, $a_id, $a_call_by_reference, 
false);
 
   40        $this->lng->loadLanguageModule(
'search');
 
   41        $this->lng->loadLanguageModule(
"user");
 
   43        $ilCtrl->saveParameter($this, 
"letter");
 
   50        $this->user_owner_id = $a_id;
 
   54        return $this->user_owner_id ? $this->user_owner_id : 
USER_FOLDER_ID;
 
   61        $next_class = $this->ctrl->getNextClass($this);
 
   62        $cmd = $this->ctrl->getCmd();
 
   65        switch ($next_class) {
 
   66            case 'ilusertablegui':
 
   67                include_once(
"./Services/User/classes/class.ilUserTableGUI.php");
 
   69                $u_table->initFilter();
 
   70                $this->ctrl->setReturn($this, 
'view');
 
   71                $this->ctrl->forwardCommand($u_table);
 
   74            case 'ilpermissiongui':
 
   75                include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
 
   77                $ret =&$this->ctrl->forwardCommand($perm_gui);
 
   80            case 'ilrepositorysearchgui':
 
   81                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
   83                $user_search->setTitle($this->lng->txt(
"search_user_extended")); 
 
   84                $user_search->enableSearchableCheck(
false);
 
   85                $user_search->setUserLimitations(
false);
 
   86                $user_search->setCallback(
 
   88                    'searchResultHandler',
 
   91                $this->tabs_gui->setTabActive(
'search_user_extended');
 
   92                $this->ctrl->setReturn($this, 
'view');
 
   93                $ret =&$this->ctrl->forwardCommand($user_search);
 
   96            case 'ilaccountcodesgui':
 
   97                $this->tabs_gui->setTabActive(
'settings');
 
   99                $ilTabs->activateSubTab(
"account_codes");
 
  100                include_once(
"./Services/User/classes/class.ilAccountCodesGUI.php");
 
  102                $this->ctrl->forwardCommand($acc);
 
  105            case 'ilcustomuserfieldsgui':
 
  106                $this->tabs_gui->setTabActive(
'settings');
 
  108                $ilTabs->activateSubTab(
"user_defined_fields");
 
  109                include_once(
"./Services/User/classes/class.ilCustomUserFieldsGUI.php");
 
  111                $this->ctrl->forwardCommand($cf);
 
  114            case 'iluserstartingpointgui':
 
  115                $this->tabs_gui->setTabActive(
'settings');
 
  117                $ilTabs->activateSubTab(
"starting_points");
 
  118                include_once(
"./Services/User/classes/class.ilUserStartingPointGUI.php");
 
  120                $this->ctrl->forwardCommand($cf);
 
  123            case 'iluserprofileinfosettingsgui':
 
  124                $this->tabs_gui->setTabActive(
'settings');
 
  126                $ilTabs->activateSubTab(
"user_profile_settings");
 
  127                include_once(
"./Services/User/classes/class.ilUserProfileInfoSettingsGUI.php");
 
  129                $this->ctrl->forwardCommand($ps);
 
  151        if (!
$rbacsystem->checkAccess(
"read", $this->object->getRefId()) ||
 
  154            $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->ilias->error_obj->MESSAGE);
 
  157        include_once 
"Services/User/classes/class.ilUserLPTableGUI.php";
 
  169        include_once(
"./Services/User/classes/class.ilUserTableGUI.php");
 
  171        $utab->resetOffset();
 
  172        $utab->resetFilter();
 
  185        $ilCtrl->setParameterByClass(
"ilobjusergui", 
"new_type", 
"usr");
 
  186        $ilCtrl->redirectByClass(array(
"iladministrationgui", 
"ilobjusergui"), 
"create");
 
  197        include_once(
"./Services/User/classes/class.ilUserTableGUI.php");
 
  199        $utab->resetOffset();
 
  200        $utab->writeFilterToSession();
 
  202        $ilTabs->activateTab(
"usrf");
 
  214        include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  216        if (
$rbacsystem->checkAccess(
'create_usr', $this->object->getRefId()) ||
 
  217            $rbacsystem->checkAccess(
'cat_administrate_users', $this->object->getRefId())) {
 
  219            $button->setCaption(
"usr_add");
 
  220            $button->setUrl($this->ctrl->getLinkTarget($this, 
"addUser"));
 
  221            $ilToolbar->addButtonInstance($button);
 
  224            $button->setCaption(
"import_users");
 
  225            $button->setUrl($this->ctrl->getLinkTarget($this, 
"importUserForm"));
 
  226            $ilToolbar->addButtonInstance($button);
 
  230        include_once 
'./Services/User/classes/class.ilUserAccountSettings.php';
 
  232        if ((
int) 
$ilSetting->get(
'user_adm_alpha_nav')) {
 
  233            $ilToolbar->addSeparator();
 
  236            include_once(
"./Services/Form/classes/class.ilAlphabetInputGUI.php");
 
  238            include_once(
"./Services/User/classes/class.ilObjUser.php");
 
  244            $ai->setParentCommand($this, 
"chooseLetter");
 
  245            $ai->setHighlighted(
$_GET[
"letter"]);
 
  246            $ilToolbar->addInputItem($ai, 
true);
 
  249        include_once(
"./Services/User/classes/class.ilUserTableGUI.php");
 
  251        $tpl->setContent($utab->getHTML());
 
  259        include_once 
'./Services/User/classes/class.ilUserAutoComplete.php';
 
  261        $auto->setSearchFields(array(
'login',
'firstname',
'lastname',
'email', 
'second_email'));
 
  262        $auto->enableFieldSearchableCheck(
false);
 
  263        $auto->setMoreLinkAvailable(
true);
 
  265        if (($_REQUEST[
'fetchall'])) {
 
  269        echo $auto->getList($_REQUEST[
'term']);
 
  283        $ilCtrl->redirect($this, 
"view");
 
  297        $operations = array();
 
  299        if ($this->actions == 
"") {
 
  301                "delete" => array(
"name" => 
"delete", 
"lng" => 
"delete"),
 
  302                "activate" => array(
"name" => 
"activate", 
"lng" => 
"activate"),
 
  303                "deactivate" => array(
"name" => 
"deactivate", 
"lng" => 
"deactivate"),
 
  304                "accessRestrict" => array(
"name" => 
"accessRestrict", 
"lng" => 
"accessRestrict"),
 
  305                "accessFree" => array(
"name" => 
"accessFree", 
"lng" => 
"accessFree"),
 
  306                "export" => array(
"name" => 
"export", 
"lng" => 
"export")
 
  312            if (
$rbacsystem->checkAccess(
$row[
"name"], $this->object->getRefId())) {
 
  313                $operations[] = 
$row;
 
  317        if (count($operations) > 0) {
 
  318            $select = 
"<select name=\"selectedAction\">\n";
 
  319            foreach ($operations as $val) {
 
  320                $select .= 
"<option value=\"" . $val[
"name"] . 
"\"";
 
  321                if (strcmp(
$_POST[
"selectedAction"], $val[
"name"]) == 0) {
 
  322                    $select .= 
" selected=\"selected\"";
 
  325                $select .= $this->lng->txt($val[
"lng"]);
 
  326                $select .= 
"</option>";
 
  328            $select .= 
"</select>";
 
  329            $this->tpl->setCurrentBlock(
"tbl_action_select");
 
  330            $this->tpl->setVariable(
"SELECT_ACTION", $select);
 
  331            $this->tpl->setVariable(
"BTN_NAME", 
"userAction");
 
  332            $this->tpl->setVariable(
"BTN_VALUE", $this->lng->txt(
"submit"));
 
  333            $this->tpl->parseCurrentBlock();
 
  336        if ($with_subobjects === 
true) {
 
  340        if ((count($operations) > 0) or $subobjs === 
true) {
 
  341            $this->tpl->setCurrentBlock(
"tbl_action_row");
 
  342            $this->tpl->setVariable(
"COLUMN_COUNTS", count($this->
data[
"cols"]));
 
  344            $this->tpl->setVariable(
"ALT_ARROW", $this->lng->txt(
"actions"));
 
  345            $this->tpl->parseCurrentBlock();
 
  359        $d = $this->objDefinition->getCreatableSubObjects($this->object->getType());
 
  361        if (!
$rbacsystem->checkAccess(
'create_usr', $this->object->getRefId())) {
 
  368                if (
$row[
"max"] > 0) {
 
  370                    for (
$i=0; 
$i<count($this->
data[
"ctrl"]); 
$i++) {
 
  371                        if ($this->
data[
"ctrl"][
$i][
"type"] == $row[
"name"]) {
 
  376                if (
$row[
"max"] == 
"" || $count < 
$row[
"max"]) {
 
  377                    $subobj[] = 
$row[
"name"];
 
  382        if (is_array($subobj)) {
 
  385            $this->tpl->setCurrentBlock(
"add_object");
 
  386            $this->tpl->setVariable(
"SELECT_OBJTYPE", $opts);
 
  387            $this->tpl->setVariable(
"BTN_NAME", 
"create");
 
  388            $this->tpl->setVariable(
"TXT_ADD", $this->lng->txt(
"add"));
 
  389            $this->tpl->parseCurrentBlock();
 
  399        $this->ctrl->redirect($this, 
'view');
 
  404        $this->ctrl->redirectByClass(
'ilrepositorysearchgui', 
'showSearchResults');
 
  417        if (!
$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
 
  418            $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_write"), $this->ilias->error_obj->WARNING);
 
  424            $obj =&$this->
ilias->obj_factory->getInstanceByObjId($id);
 
  425            $obj->setActive(
true, 
$ilUser->getId());
 
  432            $this->ctrl->redirectByClass(
'ilRepositorySearchGUI', 
'show');
 
  434            $this->ctrl->redirect($this, 
"view");
 
  448        if (!
$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
 
  449            $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_write"), $this->ilias->error_obj->WARNING);
 
  455            $obj =&$this->
ilias->obj_factory->getInstanceByObjId($id);
 
  456            $obj->setActive(
false, 
$ilUser->getId());
 
  464            $this->ctrl->redirectByClass(
'ilRepositorySearchGUI', 
'show');
 
  466            $this->ctrl->redirect($this, 
"view");
 
  475        if (!
$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
 
  476            $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_write"), $this->ilias->error_obj->WARNING);
 
  482            $obj = $this->
ilias->obj_factory->getInstanceByObjId($id);
 
  483            $obj->setTimeLimitUnlimited(1);
 
  484            $obj->setTimeLimitFrom(
"");
 
  485            $obj->setTimeLimitUntil(
"");
 
  486            $obj->setTimeLimitMessage(0);
 
  494            $this->ctrl->redirectByClass(
'ilRepositorySearchGUI', 
'show');
 
  496            $this->ctrl->redirect($this, 
"view");
 
  505        $this->tpl->setContent($a_form->getHTML());
 
  519        include_once 
"Services/Form/classes/class.ilPropertyFormGUI.php";
 
  521        $form->setTitle($this->lng->txt(
"time_limit_add_time_limit_for_selected"));
 
  522        $form->setFormAction($this->ctrl->getFormAction($this, 
"confirmaccessRestrict"));
 
  525        $from->setShowTime(
true);
 
  526        $from->setRequired(
true);
 
  530        $to->setRequired(
true);
 
  531        $to->setShowTime(
true);
 
  534        $form->addCommandButton(
"confirmaccessRestrict", $this->lng->txt(
"confirm"));
 
  535        $form->addCommandButton(
"view", $this->lng->txt(
"cancel"));
 
  537        foreach ($user_ids as $user_id) {
 
  539            $ufield->setValue($user_id);
 
  540            $form->addItem($ufield);
 
  544        if ($a_from_search || 
$_POST[
"frsrch"]) {
 
  547            $form->addItem($field);
 
  556        if (!
$form->checkInput()) {
 
  562        if ($timeuntil <= $timefrom) {
 
  570        if (!
$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
 
  571            $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_write"), $this->ilias->error_obj->WARNING);
 
  577            $obj = $this->
ilias->obj_factory->getInstanceByObjId($id);
 
  578            $obj->setTimeLimitUnlimited(0);
 
  579            $obj->setTimeLimitFrom($timefrom);
 
  580            $obj->setTimeLimitUntil($timeuntil);
 
  581            $obj->setTimeLimitMessage(0);
 
  589            $this->ctrl->redirectByClass(
'ilRepositorySearchGUI', 
'show');
 
  591            $this->ctrl->redirect($this, 
"view");
 
  605        if (!
$rbacsystem->checkAccess(
'delete', $this->object->getRefId())) {
 
  607            $ilCtrl->redirect($this, 
"view");
 
  611            $this->
ilias->raiseError($this->lng->txt(
"msg_no_delete_yourself"), $this->ilias->error_obj->WARNING);
 
  617            $obj =&$this->
ilias->obj_factory->getInstanceByObjId($id);
 
  625            $this->ctrl->redirectByClass(
'ilRepositorySearchGUI', 
'show');
 
  627            $this->ctrl->redirect($this, 
"view");
 
  638        if (
$_POST[
"select_cmd_all"]) {
 
  639            include_once(
"./Services/User/classes/class.ilUserTableGUI.php");
 
  641            return $utab->getUserIdsForFilter();
 
  656            $this->
ilias->raiseError($this->lng->txt(
"no_checkbox"), $this->ilias->error_obj->MESSAGE);
 
  659        if (!$a_from_search) {
 
  660            $ilTabs->activateTab(
"obj_usrf");
 
  662            $ilTabs->activateTab(
"search_user_extended");
 
  665        if (strcmp(
$action, 
"accessRestrict") == 0) {
 
  668        if (strcmp(
$action, 
"mail") == 0) {
 
  674        if (!$a_from_search) {
 
  675            $cancel = 
"cancelUserFolderAction";
 
  677            $cancel = 
"cancelSearchAction";
 
  681        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  683        $cgui->setFormAction($this->ctrl->getFormAction($this));
 
  684        $cgui->setHeaderText($this->lng->txt(
"info_" . 
$action . 
"_sure"));
 
  685        $cgui->setCancel($this->lng->txt(
"cancel"), $cancel);
 
  686        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"confirm" . 
$action);
 
  688        if ($a_from_search) {
 
  689            $cgui->addHiddenItem(
"frsrch", 1);
 
  692        foreach ($user_ids as 
$id) {
 
  695            $login = 
$user->getLastLogin();
 
  697                $login = $this->lng->txt(
"never");
 
  702            $caption = 
$user->getFullname() . 
" (" . 
$user->getLogin() . 
")" . 
", " .
 
  703                $user->getEmail() . 
" -  " . $this->lng->txt(
"last_login") . 
": " . $login;
 
  705            $cgui->addItem(
"id[]", 
$id, $caption);
 
  708        $this->tpl->setContent($cgui->getHTML());
 
  718        $_POST[
"selectedAction"] = 
"delete";
 
  727        $_POST[
"selectedAction"] = 
"activate";
 
  736        $_POST[
"selectedAction"] = 
"deactivate";
 
  745        $_POST[
"selectedAction"] = 
"accessRestrict";
 
  754        $_POST[
"selectedAction"] = 
"accessFree";
 
  771        if (
$_GET[
"baseClass"] == 
'ilRepositoryGUI') {
 
  772            $this->tabs_gui->clearTargets();
 
  775        if (!
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
 
  776            $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->ilias->error_obj->MESSAGE);
 
  780        $tpl->setContent($this->form->getHTML());
 
  792        include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
  796        include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
 
  798        $fi->setSuffixes(array(
"xml", 
"zip"));
 
  801        $this->form->addItem($fi);
 
  803        $this->form->addCommandButton(
"importUserRoleAssignment", 
$lng->txt(
"import"));
 
  804        $this->form->addCommandButton(
"importCancelled", 
$lng->txt(
"cancel"));
 
  806        $this->form->setTitle(
$lng->txt(
"import_users"));
 
  807        $this->form->setFormAction(
$ilCtrl->getFormAction($this));
 
  819        if (@is_dir($import_dir)) {
 
  823        if (strtolower(
$_GET[
"baseClass"]) == 
'iladministrationgui') {
 
  824            $this->ctrl->redirect($this, 
"view");
 
  827            $this->ctrl->redirectByClass(
'ilobjcategorygui', 
'listUsers');
 
  854        if (
$_GET[
"baseClass"] == 
'ilRepositoryGUI') {
 
  855            $this->tabs_gui->clearTargets();
 
  859        if ($this->form->checkInput()) {
 
  860            include_once 
'./Services/AccessControl/classes/class.ilObjRole.php';
 
  861            include_once 
'./Services/User/classes/class.ilUserImportParser.php';
 
  866            $this->tpl->addBlockfile(
"ADM_CONTENT", 
"adm_content", 
"tpl.usr_import_roles.html", 
"Services/User");
 
  871            if (@is_dir($import_dir)) {
 
  877            $file_name = $_FILES[
"importFile"][
"name"];
 
  878            $parts = pathinfo($file_name);
 
  879            $full_path = $import_dir . 
"/" . $file_name;
 
  882            if (!is_file($_FILES[
"importFile"][
"tmp_name"])) {
 
  884                $this->
ilias->raiseError($this->lng->txt(
"no_import_file_found"), $this->ilias->error_obj->MESSAGE);
 
  886            ilUtil::moveUploadedFile(
 
  887                $_FILES[
"importFile"][
"tmp_name"],
 
  888                $_FILES[
"importFile"][
"name"],
 
  893            if (strtolower($parts[
"extension"]) == 
"zip") {
 
  899                foreach ($file_list as $a_file) {
 
  900                    if (substr($a_file[
'entry'], -4) == 
'.xml') {
 
  901                        $xml_file = $import_dir . 
"/" . $a_file[
'entry'];
 
  905                if (is_null($xml_file)) {
 
  906                    $subdir = basename($parts[
"basename"], 
"." . $parts[
"extension"]);
 
  907                    $xml_file = $import_dir . 
"/" . $subdir . 
"/" . $subdir . 
".xml";
 
  912                $xml_file = $full_path;
 
  916            if (!is_file($xml_file)) {
 
  918                $this->
ilias->raiseError($this->lng->txt(
"no_xml_file_found_in_zip")
 
  919                    . 
" " . $subdir . 
"/" . $subdir . 
".xml", $this->ilias->error_obj->MESSAGE);
 
  922            require_once(
"./Services/User/classes/class.ilUserImportParser.php");
 
  927            $importParser->startParsing();
 
  928            switch ($importParser->getErrorLevel()) {
 
  932                    $this->tpl->setVariable(
"IMPORT_LOG", $importParser->getProtocolAsHTML(
$lng->txt(
"verification_warning_log")));
 
  936                    $this->
ilias->raiseError(
 
  937                        $lng->txt(
"verification_failed") . $importParser->getProtocolAsHTML(
$lng->txt(
"verification_failure_log")),
 
  938                        $this->ilias->error_obj->MESSAGE
 
  945            $this->tpl->setCurrentBlock(
"role_selection_form");
 
  946            $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
 
  947            $this->tpl->setVariable(
"TXT_IMPORT_USERS", $this->lng->txt(
"import_users"));
 
  948            $this->tpl->setVariable(
"TXT_IMPORT_FILE", $this->lng->txt(
"import_file"));
 
  949            $this->tpl->setVariable(
"IMPORT_FILE", $file_name);
 
  950            $this->tpl->setVariable(
"TXT_USER_ELEMENT_COUNT", $this->lng->txt(
"num_users"));
 
  951            $this->tpl->setVariable(
"USER_ELEMENT_COUNT", $importParser->getUserCount());
 
  952            $this->tpl->setVariable(
"TXT_ROLE_ASSIGNMENT", $this->lng->txt(
"role_assignment"));
 
  953            $this->tpl->setVariable(
"BTN_IMPORT", $this->lng->txt(
"import"));
 
  954            $this->tpl->setVariable(
"BTN_CANCEL", $this->lng->txt(
"cancel"));
 
  955            $this->tpl->setVariable(
"XML_FILE_NAME", $xml_file);
 
  959            $importParser->startParsing();
 
  960            $roles = $importParser->getCollectedRoles();
 
  963            $all_gl_roles = 
$rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
 
  966            foreach ($all_gl_roles as $obj_data) {
 
  974                if ($obj_data[
"obj_id"] != ANONYMOUS_ROLE_ID) {
 
  976                    if ($obj_data[
"obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
 
  977                        $gl_roles[$obj_data[
"obj_id"]] = $obj_data[
"title"];
 
  983            $got_globals = 
false;
 
  984            foreach ($roles as $role_id => $role) {
 
  985                if ($role[
"type"] == 
"Global") {
 
  989                        $this->tpl->setCurrentBlock(
"global_role_section");
 
  990                        $this->tpl->setVariable(
"TXT_GLOBAL_ROLES_IMPORT", $this->lng->txt(
"roles_of_import_global"));
 
  991                        $this->tpl->setVariable(
"TXT_GLOBAL_ROLES", $this->lng->txt(
"assign_global_role"));
 
  995                    $pre_select = array_search($role[
"name"], $gl_roles);
 
  997                        switch ($role[
"name"]) {
 
  998                            case "Administrator":       
 
  999                                $pre_select = array_search(
"Administrator", $gl_roles);
 
 1003                                $pre_select = array_search(
"User", $gl_roles);
 
 1007                                $pre_select = array_search(
"User", $gl_roles);
 
 1011                                $pre_select = array_search(
"Guest", $gl_roles);
 
 1015                                $pre_select = array_search(
"User", $gl_roles);
 
 1019                    $this->tpl->setCurrentBlock(
"global_role");
 
 1020                    $role_select = 
ilUtil::formSelect($pre_select, 
"role_assign[" . $role_id . 
"]", $gl_roles, 
false, 
true);
 
 1021                    $this->tpl->setVariable(
"TXT_IMPORT_GLOBAL_ROLE", $role[
"name"] . 
" [" . $role_id . 
"]");
 
 1022                    $this->tpl->setVariable(
"SELECT_GLOBAL_ROLE", $role_select);
 
 1023                    $this->tpl->parseCurrentBlock();
 
 1028            $got_locals = 
false;
 
 1029            foreach ($roles as $role_id => $role) {
 
 1030                if ($role[
"type"] == 
"Local") {
 
 1037                $this->tpl->setCurrentBlock(
"local_role_section");
 
 1038                $this->tpl->setVariable(
"TXT_LOCAL_ROLES_IMPORT", $this->lng->txt(
"roles_of_import_local"));
 
 1039                $this->tpl->setVariable(
"TXT_LOCAL_ROLES", $this->lng->txt(
"assign_local_role"));
 
 1049                    $loc_roles = array();
 
 1050                    require_once 
'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
 
 1051                    foreach ($roles as $role_id => $role) {
 
 1052                        if ($role[
"type"] == 
"Local") {
 
 1053                            $searchName = (substr($role[
'name'], 0, 1) == 
'#') ? $role[
'name'] : 
'#' . $role[
'name'];
 
 1055                            foreach ($matching_role_ids as $mid) {
 
 1056                                if (!in_array($mid, $loc_roles)) {
 
 1057                                    $loc_roles[] = $mid;
 
 1066                    $loc_roles = 
$rbacreview->getAssignableRolesInSubtree($this->object->getRefId());
 
 1071                $l_roles_mailbox_searcharray = array();
 
 1072                require_once 
'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
 
 1073                foreach ($loc_roles as 
$key => $loc_role) {
 
 1075                    $rolf = 
$rbacreview->getFoldersAssignedToRole($loc_role, 
true);
 
 1084                        $rolf[0] != ROLE_FOLDER_ID
 
 1096                        $path_array = array();
 
 1097                        if ($this->tree->isInTree($rolf[0])) {
 
 1100                            $tmpPath = $this->tree->getPathFull($rolf[0]);
 
 1101                            $tmpPath[] = $rolf[0];
 
 1103                            for (
$i = 1, 
$n = count($tmpPath) - 1; 
$i < 
$n; 
$i++) {
 
 1104                                if ($i < 3 || $i > 
$n - 3) {
 
 1105                                    $path_array[] = $tmpPath[
$i][
'title'];
 
 1106                                } elseif (
$i == 3 || 
$i == 
$n - 3) {
 
 1107                                    $path_array[] = 
'...';
 
 1110                                $isInSubtree |= $tmpPath[
$i][
'obj_id'] == $this->
object->getId();
 
 1113                            $path = implode(
" < ", array_reverse($path_array));
 
 1115                            $path = 
"<b>Rolefolder " . $rolf[0] . 
" not found in tree! (Role " . $loc_role . 
")</b>";
 
 1118                        $l_roles[$loc_role] = $roleMailboxAddress . 
', ' . 
$path;
 
 1123                natcasesort($l_roles);
 
 1124                $l_roles[
""] = $this->lng->txt(
"usrimport_ignore_role");
 
 1125                require_once 
'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
 
 1126                foreach ($roles as $role_id => $role) {
 
 1127                    if ($role[
"type"] == 
"Local") {
 
 1128                        $this->tpl->setCurrentBlock(
"local_role");
 
 1129                        $this->tpl->setVariable(
"TXT_IMPORT_LOCAL_ROLE", $role[
"name"]);
 
 1130                        $searchName = (substr($role[
'name'], 0, 1) == 
'#') ? $role[
'name'] : 
'#' . $role[
'name'];
 
 1132                        $pre_select = count($matching_role_ids) == 1 ? $matching_role_ids[0] : 
"";
 
 1137                            $selectable_roles = array();
 
 1138                            $selectable_roles[
""] =  $this->lng->txt(
"usrimport_ignore_role");
 
 1139                            foreach ($matching_role_ids as 
$id) {
 
 1140                                $selectable_roles[
$id] =  $l_roles[
$id];
 
 1142                            $role_select = 
ilUtil::formSelect($pre_select, 
"role_assign[" . $role_id . 
"]", $selectable_roles, 
false, 
true);
 
 1144                            $role_select = 
ilUtil::formSelect($pre_select, 
"role_assign[" . $role_id . 
"]", $l_roles, 
false, 
true);
 
 1146                        $this->tpl->setVariable(
"SELECT_LOCAL_ROLE", $role_select);
 
 1147                        $this->tpl->parseCurrentBlock();
 
 1153            $this->tpl->setVariable(
"TXT_CONFLICT_HANDLING", 
$lng->txt(
"conflict_handling"));
 
 1158            $this->tpl->setVariable(
"TXT_CONFLICT_HANDLING_INFO", str_replace(
'\n', 
'<br>', $this->lng->txt(
"usrimport_conflict_handling_info")));
 
 1159            $this->tpl->setVariable(
"TXT_CONFLICT_CHOICE", 
$lng->txt(
"conflict_handling"));
 
 1163            $this->lng->loadLanguageModule(
"mail");
 
 1164            include_once 
'./Services/User/classes/class.ilObjUserFolder.php';
 
 1166            if (trim($amail[
"body"]) != 
"" && trim($amail[
"subject"]) != 
"") {
 
 1167                $this->tpl->setCurrentBlock(
"inform_user");
 
 1168                $this->tpl->setVariable(
"TXT_ACCOUNT_MAIL", 
$lng->txt(
"mail_account_mail"));
 
 1170                    $this->tpl->setVariable(
"SEND_MAIL", 
" checked=\"checked\"");
 
 1172                $this->tpl->setVariable(
 
 1173                    "TXT_INFORM_USER_MAIL",
 
 1174                    $this->lng->txt(
"user_send_new_account_mail")
 
 1176                $this->tpl->parseCurrentBlock();
 
 1179            $this->form->setValuesByPost();
 
 1180            $tpl->setContent($this->form->getHtml());
 
 1192        if (
$_GET[
"baseClass"] == 
'ilRepositoryGUI') {
 
 1193            $this->tabs_gui->clearTargets();
 
 1196        include_once 
'./Services/AccessControl/classes/class.ilObjRole.php';
 
 1197        include_once 
'./Services/User/classes/class.ilUserImportParser.php';
 
 1201        switch (
$_POST[
"conflict_handling_choice"]) {
 
 1202            case "update_on_conflict":
 
 1205            case "ignore_on_conflict":
 
 1217        if (
$_POST[
"role_assign"]) {
 
 1220            foreach (
$_POST[
"role_assign"] as $role_id) {
 
 1221                if ($role_id != 
"") {
 
 1222                    if (in_array($role_id, $global_roles)) {
 
 1223                        if (!in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
 
 1224                            if ($role_id == SYSTEM_ROLE_ID && !in_array(SYSTEM_ROLE_ID, $roles_of_user)
 
 1229                                $this->
ilias->raiseError(
 
 1230                                    $this->lng->txt(
"usrimport_with_specified_role_not_permitted"),
 
 1231                                    $this->ilias->error_obj->MESSAGE
 
 1236                        $rolf = 
$rbacreview->getFoldersAssignedToRole($role_id, 
true);
 
 1238                            || !
$rbacsystem->checkAccess(
'write', $rolf[0])) {
 
 1240                            $this->
ilias->raiseError(
 
 1241                                $this->lng->txt(
"usrimport_with_specified_role_not_permitted"),
 
 1242                                $this->ilias->error_obj->MESSAGE
 
 1251        $importParser->setRoleAssignment(
$_POST[
"role_assign"]);
 
 1252        $importParser->startParsing();
 
 1257        switch ($importParser->getErrorLevel()) {
 
 1262                ilUtil::sendInfo($this->lng->txt(
"user_imported_with_warnings") . $importParser->getProtocolAsHTML(
$lng->txt(
"import_warning_log")), 
true);
 
 1265                $this->
ilias->raiseError(
 
 1266                    $this->lng->txt(
"user_import_failed")
 
 1267                    . $importParser->getProtocolAsHTML(
$lng->txt(
"import_failure_log")),
 
 1268                    $this->ilias->error_obj->MESSAGE
 
 1273        if (strtolower(
$_GET[
"baseClass"]) == 
"iladministrationgui") {
 
 1274            $this->ctrl->redirect($this, 
"view");
 
 1277            $this->ctrl->redirectByClass(
'ilobjcategorygui', 
'listUsers');
 
 1283        parent::hitsperpageObject();
 
 1297        include_once 
'./Services/User/classes/class.ilUserAccountSettings.php';
 
 1300        $show_blocking_time_in_days = 
$ilSetting->get(
'loginname_change_blocking_time') / 86400;
 
 1301        $show_blocking_time_in_days = (float) $show_blocking_time_in_days;
 
 1303        include_once(
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
 
 1306        $this->form->setValuesByArray(
 
 1308                'lua'   => $aset->isLocalUserAdministrationEnabled(),
 
 1309                'lrua'  => $aset->isUserAccessRestricted(),
 
 1310                'allow_change_loginname' => (
bool) 
$ilSetting->get(
'allow_change_loginname'),
 
 1311                'create_history_loginname' => (
bool) 
$ilSetting->get(
'create_history_loginname'),
 
 1312                'reuse_of_loginnames' => (
bool) 
$ilSetting->get(
'reuse_of_loginnames'),
 
 1313                'loginname_change_blocking_time' => (
float) $show_blocking_time_in_days,
 
 1314                'user_adm_alpha_nav' => (
int) 
$ilSetting->get(
'user_adm_alpha_nav'),
 
 1316                'user_reactivate_code' => (
int) 
$ilSetting->get(
'user_reactivate_code'),
 
 1317                'user_own_account' => (
int) 
$ilSetting->get(
'user_delete_own_account'),
 
 1318                'user_own_account_email' => 
$ilSetting->get(
'user_delete_own_account_email'),
 
 1321                'session_reminder_enabled' => 
$ilSetting->get(
'session_reminder_enabled'),
 
 1327                'password_change_on_first_login_enabled' => $security->isPasswordChangeOnFirstLoginEnabled() ? 1 : 0,
 
 1328                'password_must_not_contain_loginame' => $security->getPasswordMustNotContainLoginnameStatus() ? 1 : 0,
 
 1329                'password_chars_and_numbers_enabled' => $security->isPasswordCharsAndNumbersEnabled() ? 1 : 0,
 
 1330                'password_special_chars_enabled' => $security->isPasswordSpecialCharsEnabled() ? 1 : 0 ,
 
 1331                'password_min_length' => $security->getPasswordMinLength(),
 
 1332                'password_max_length' => $security->getPasswordMaxLength(),
 
 1333                'password_ucase_chars_num' => $security->getPasswordNumberOfUppercaseChars(),
 
 1334                'password_lowercase_chars_num' => $security->getPasswordNumberOfLowercaseChars(),
 
 1335                'password_max_age' => $security->getPasswordMaxAge(),
 
 1337                'login_max_attempts' => $security->getLoginMaxAttempts(),
 
 1338                'ps_prevent_simultaneous_logins' => (
int) $security->isPreventionOfSimultaneousLoginsEnabled(),
 
 1339                'password_assistance' => (
bool) 
$ilSetting->get(
"password_assistance")
 
 1340                ,
'letter_avatars' => (
int) 
$ilSetting->get(
'letter_avatars')
 
 1344        $this->tpl->setContent($this->form->getHTML());
 
 1357        if ($this->form->checkInput()) {
 
 1360            if (!strlen($this->form->getInput(
'loginname_change_blocking_time'))) {
 
 1362                $this->form->getItemByPostVar(
'loginname_change_blocking_time')
 
 1363                                        ->setAlert($this->lng->txt(
'loginname_change_blocking_time_invalidity_info'));
 
 1366            include_once(
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
 
 1370            $security->setPasswordCharsAndNumbersEnabled((
bool) 
$_POST[
"password_chars_and_numbers_enabled"]);
 
 1371            $security->setPasswordSpecialCharsEnabled((
bool) 
$_POST[
"password_special_chars_enabled"]);
 
 1372            $security->setPasswordMinLength((
int) 
$_POST[
"password_min_length"]);
 
 1373            $security->setPasswordMaxLength((
int) 
$_POST[
"password_max_length"]);
 
 1374            $security->setPasswordNumberOfUppercaseChars((
int) 
$_POST[
'password_ucase_chars_num']);
 
 1375            $security->setPasswordNumberOfLowercaseChars((
int) 
$_POST[
'password_lowercase_chars_num']);
 
 1376            $security->setPasswordMaxAge((
int) 
$_POST[
"password_max_age"]);
 
 1377            $security->setLoginMaxAttempts((
int) 
$_POST[
"login_max_attempts"]);
 
 1378            $security->setPreventionOfSimultaneousLogins((
bool) 
$_POST[
'ps_prevent_simultaneous_logins']);
 
 1379            $security->setPasswordChangeOnFirstLoginEnabled((
bool) 
$_POST[
'password_change_on_first_login_enabled']);
 
 1380            $security->setPasswordMustNotContainLoginnameStatus((
int) 
$_POST[
'password_must_not_contain_loginame']);
 
 1382            if (!$security->validate($this->form)) {
 
 1389                include_once 
'./Services/User/classes/class.ilUserAccountSettings.php';
 
 1394                $ilSetting->set(
'allow_change_loginname', (
int) $this->form->getInput(
'allow_change_loginname'));
 
 1395                $ilSetting->set(
'create_history_loginname', (
int) $this->form->getInput(
'create_history_loginname'));
 
 1396                $ilSetting->set(
'reuse_of_loginnames', (
int) $this->form->getInput(
'reuse_of_loginnames'));
 
 1397                $save_blocking_time_in_seconds = (int) ($this->form->getInput(
'loginname_change_blocking_time') * 86400);
 
 1398                $ilSetting->set(
'loginname_change_blocking_time', (
int) $save_blocking_time_in_seconds);
 
 1399                $ilSetting->set(
'user_adm_alpha_nav', (
int) $this->form->getInput(
'user_adm_alpha_nav'));
 
 1400                $ilSetting->set(
'user_reactivate_code', (
int) $this->form->getInput(
'user_reactivate_code'));
 
 1402                $ilSetting->set(
'user_delete_own_account', (
int) $this->form->getInput(
'user_own_account'));
 
 1403                $ilSetting->set(
'user_delete_own_account_email', $this->form->getInput(
'user_own_account_email'));
 
 1405                $ilSetting->set(
"password_assistance", $this->form->getInput(
"password_assistance"));
 
 1409                    'session_handling_type',
 
 1410                    (
int) $this->form->getInput(
'session_handling_type')
 
 1415                        'session_reminder_enabled',
 
 1416                        $this->form->getInput(
'session_reminder_enabled')
 
 1419                    require_once 
'Services/Authentication/classes/class.ilSessionControl.php';
 
 1422                            'session_allow_client_maintenance',
 
 1427                        include_once 
"Services/Authentication/classes/class.ilSessionStatistics.php";
 
 1431                            'session_max_count',
 
 1432                            (
int) $this->form->getInput(
'session_max_count')
 
 1436                            (
int) $this->form->getInput(
'session_min_idle')
 
 1440                            (
int) $this->form->getInput(
'session_max_idle')
 
 1443                            'session_max_idle_after_first_request',
 
 1444                            (
int) $this->form->getInput(
'session_max_idle_after_first_request')
 
 1449                $ilSetting->set(
'letter_avatars', (
int) $this->form->getInput(
'letter_avatars'));
 
 1457        $this->form->setValuesByPost();
 
 1458        $this->tpl->setContent($this->form->getHTML());
 
 1471        $this->tabs_gui->setTabActive(
'settings');
 
 1472        $this->tabs_gui->setSubTabActive(
'general_settings');
 
 1474        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1476        $this->form->setFormAction($this->ctrl->getFormAction($this, 
'saveGeneralSettings'));
 
 1478        $this->form->setTitle($this->lng->txt(
'general_settings'));
 
 1480        $lua = 
new ilCheckboxInputGUI($this->lng->txt(
'enable_local_user_administration'), 
'lua');
 
 1481        $lua->setInfo($this->lng->txt(
'enable_local_user_administration_info'));
 
 1483        $this->form->addItem($lua);
 
 1486        $lrua->setInfo($this->lng->txt(
'restrict_user_access_info'));
 
 1488        $this->form->addItem($lrua);
 
 1491        $alph = 
new ilCheckboxInputGUI($this->lng->txt(
'user_adm_enable_alpha_nav'), 
'user_adm_alpha_nav');
 
 1494        $this->form->addItem($alph);
 
 1498        $code->setInfo($this->lng->txt(
'user_account_code_setting_info'));
 
 1499        $this->form->addItem(
$code);
 
 1502        $own = 
new ilCheckboxInputGUI($this->lng->txt(
"user_allow_delete_own_account"), 
"user_own_account");
 
 1503        $this->form->addItem($own);
 
 1504        $own_email = 
new ilEMailInputGUI($this->lng->txt(
"user_delete_own_account_notification_email"), 
"user_own_account_email");
 
 1505        $own->addSubItem($own_email);
 
 1517        $cb = 
new ilCheckboxInputGUI($this->lng->txt(
"session_reminder"), 
"session_reminder_enabled");
 
 1520        $cb->setInfo($this->lng->txt(
"session_reminder_info") . 
"<br />" .
 
 1521            sprintf($this->lng->txt(
'session_reminder_session_duration'), 
$time));
 
 1522        $fixed->addSubItem($cb);
 
 1525        $ssettings->addOption($fixed);
 
 1531        require_once(
'Services/Authentication/classes/class.ilSessionControl.php');
 
 1535        $sub_ti = 
new ilTextInputGUI($this->lng->txt(
'session_max_count'), 
'session_max_count');
 
 1536        $sub_ti->setMaxLength(5);
 
 1537        $sub_ti->setSize(5);
 
 1538        $sub_ti->setInfo($this->lng->txt(
'session_max_count_info'));
 
 1540            $sub_ti->setDisabled(
true);
 
 1542        $ldsh->addSubItem($sub_ti);
 
 1547        $sub_ti = 
new ilTextInputGUI($this->lng->txt(
'session_min_idle'), 
'session_min_idle');
 
 1548        $sub_ti->setMaxLength(5);
 
 1549        $sub_ti->setSize(5);
 
 1550        $sub_ti->setInfo($this->lng->txt(
'session_min_idle_info'));
 
 1552            $sub_ti->setDisabled(
true);
 
 1554        $ldsh->addSubItem($sub_ti);
 
 1559        $sub_ti = 
new ilTextInputGUI($this->lng->txt(
'session_max_idle'), 
'session_max_idle');
 
 1560        $sub_ti->setMaxLength(5);
 
 1561        $sub_ti->setSize(5);
 
 1562        $sub_ti->setInfo($this->lng->txt(
'session_max_idle_info'));
 
 1564            $sub_ti->setDisabled(
true);
 
 1566        $ldsh->addSubItem($sub_ti);
 
 1571            $this->lng->txt(
'session_max_idle_after_first_request'),
 
 1572            'session_max_idle_after_first_request' 
 1574        $sub_ti->setMaxLength(5);
 
 1575        $sub_ti->setSize(5);
 
 1576        $sub_ti->setInfo($this->lng->txt(
'session_max_idle_after_first_request_info'));
 
 1578            $sub_ti->setDisabled(
true);
 
 1580        $ldsh->addSubItem($sub_ti);
 
 1583        $ssettings->addOption($ldsh);
 
 1589            $this->form->addItem($ssettings);
 
 1594            $ti->setValue($this->lng->txt(
'session_config_maintenance_disabled'));
 
 1595            $ssettings->setDisabled(
true);
 
 1596            $ti->addSubItem($ssettings);
 
 1597            $this->form->addItem($ti);
 
 1603        $this->lng->loadLanguageModule(
'ps');
 
 1606        $pass->setTitle($this->lng->txt(
'ps_password_settings'));
 
 1607        $this->form->addItem(
$pass);
 
 1609        $check = 
new ilCheckboxInputGUI($this->lng->txt(
'ps_password_change_on_first_login_enabled'), 
'password_change_on_first_login_enabled');
 
 1610        $check->setInfo($this->lng->txt(
'ps_password_change_on_first_login_enabled_info'));
 
 1611        $this->form->addItem($check);
 
 1613        include_once(
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
 
 1615        $check = 
new ilCheckboxInputGUI($this->lng->txt(
'ps_password_must_not_contain_loginame'), 
'password_must_not_contain_loginame');
 
 1616        $check->setInfo($this->lng->txt(
'ps_password_must_not_contain_loginame_info'));
 
 1617        $this->form->addItem($check);
 
 1619        $check = 
new ilCheckboxInputGUI($this->lng->txt(
'ps_password_chars_and_numbers_enabled'), 
'password_chars_and_numbers_enabled');
 
 1621        $check->setInfo($this->lng->txt(
'ps_password_chars_and_numbers_enabled_info'));
 
 1622        $this->form->addItem($check);
 
 1624        $check = 
new ilCheckboxInputGUI($this->lng->txt(
'ps_password_special_chars_enabled'), 
'password_special_chars_enabled');
 
 1626        $check->setInfo($this->lng->txt(
'ps_password_special_chars_enabled_info'));
 
 1627        $this->form->addItem($check);
 
 1630        $text->setInfo($this->lng->txt(
'ps_password_min_length_info'));
 
 1632        $text->setMaxLength(2);
 
 1633        $this->form->addItem(
$text);
 
 1636        $text->setInfo($this->lng->txt(
'ps_password_max_length_info'));
 
 1638        $text->setMaxLength(3);
 
 1639        $this->form->addItem(
$text);
 
 1641        $text = 
new ilNumberInputGUI($this->lng->txt(
'ps_password_uppercase_chars_num'), 
'password_ucase_chars_num');
 
 1642        $text->setInfo($this->lng->txt(
'ps_password_uppercase_chars_num_info'));
 
 1643        $text->setMinValue(0);
 
 1645        $text->setMaxLength(3);
 
 1646        $this->form->addItem(
$text);
 
 1648        $text = 
new ilNumberInputGUI($this->lng->txt(
'ps_password_lowercase_chars_num'), 
'password_lowercase_chars_num');
 
 1649        $text->setInfo($this->lng->txt(
'ps_password_lowercase_chars_num_info'));
 
 1650        $text->setMinValue(0);
 
 1652        $text->setMaxLength(3);
 
 1653        $this->form->addItem(
$text);
 
 1656        $text->setInfo($this->lng->txt(
'ps_password_max_age_info'));
 
 1658        $text->setMaxLength(3);
 
 1659        $this->form->addItem(
$text);
 
 1662        $cb = 
new ilCheckboxInputGUI($this->lng->txt(
"enable_password_assistance"), 
"password_assistance");
 
 1663        $cb->setInfo($this->lng->txt(
"password_assistance_info"));
 
 1664        $this->form->addItem($cb);
 
 1667        $pass->setTitle($this->lng->txt(
'ps_security_protection'));
 
 1668        $this->form->addItem(
$pass);
 
 1671        $text->setInfo($this->lng->txt(
'ps_login_max_attempts_info'));
 
 1673        $text->setMaxLength(2);
 
 1674        $this->form->addItem(
$text);
 
 1677        $objCb = 
new ilCheckboxInputGUI($this->lng->txt(
'ps_prevent_simultaneous_logins'), 
'ps_prevent_simultaneous_logins');
 
 1678        $objCb->setValue(1);
 
 1679        $objCb->setInfo($this->lng->txt(
'ps_prevent_simultaneous_logins_info'));
 
 1680        $this->form->addItem($objCb);
 
 1686        $log->setTitle($this->lng->txt(
'loginname_settings'));
 
 1687        $this->form->addItem(
$log);
 
 1689        $chbChangeLogin = 
new ilCheckboxInputGUI($this->lng->txt(
'allow_change_loginname'), 
'allow_change_loginname');
 
 1690        $chbChangeLogin->setValue(1);
 
 1691        $this->form->addItem($chbChangeLogin);
 
 1692        $chbCreateHistory = 
new ilCheckboxInputGUI($this->lng->txt(
'history_loginname'), 
'create_history_loginname');
 
 1693        $chbCreateHistory->setInfo($this->lng->txt(
'loginname_history_info'));
 
 1694        $chbCreateHistory->setValue(1);
 
 1696        $chbChangeLogin->addSubItem($chbCreateHistory);
 
 1697        $chbReuseLoginnames = 
new ilCheckboxInputGUI($this->lng->txt(
'reuse_of_loginnames_contained_in_history'), 
'reuse_of_loginnames');
 
 1698        $chbReuseLoginnames->setValue(1);
 
 1699        $chbReuseLoginnames->setInfo($this->lng->txt(
'reuse_of_loginnames_contained_in_history_info'));
 
 1701        $chbChangeLogin->addSubItem($chbReuseLoginnames);
 
 1702        $chbChangeBlockingTime = 
new ilNumberInputGUI($this->lng->txt(
'loginname_change_blocking_time'), 
'loginname_change_blocking_time');
 
 1703        $chbChangeBlockingTime->allowDecimals(
true);
 
 1704        $chbChangeBlockingTime->setSuffix($this->lng->txt(
'days'));
 
 1705        $chbChangeBlockingTime->setInfo($this->lng->txt(
'loginname_change_blocking_time_info'));
 
 1706        $chbChangeBlockingTime->setSize(10);
 
 1707        $chbChangeBlockingTime->setMaxLength(10);
 
 1708        $chbChangeLogin->addSubItem($chbChangeBlockingTime);
 
 1710        $la = 
new ilCheckboxInputGUI($this->lng->txt(
'usr_letter_avatars'), 
'letter_avatars');
 
 1712        $la->setInfo($this->lng->txt(
'usr_letter_avatars_info'));
 
 1713        $this->form->addItem($la);
 
 1715        $this->form->addCommandButton(
'saveGeneralSettings', $this->lng->txt(
'save'));
 
 1733        global 
$tpl, 
$lng, $ilias, $ilTabs;
 
 1735        include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
 1736        $lng->loadLanguageModule(
"administration");
 
 1737        $lng->loadLanguageModule(
"mail");
 
 1738        $lng->loadLanguageModule(
"chatroom");
 
 1740        $ilTabs->activateTab(
'settings');
 
 1741        $ilTabs->activateSubTab(
'standard_fields');
 
 1743        include_once(
"./Services/User/classes/class.ilUserFieldSettingsTableGUI.php");
 
 1745        if ($this->confirm_change) {
 
 1746            $tab->setConfirmChange();
 
 1758        include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
 1759        include_once 
'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
 
 1764        include_once(
"./Services/User/classes/class.ilUserProfile.php");
 
 1766        $up->skipField(
"username");
 
 1767        $field_properties = $up->getStandardFields();
 
 1768        $profile_fields = array_keys($field_properties);
 
 1771        foreach ($profile_fields as $field) {
 
 1772            if (
$_POST[
"chb"][
"required_" . $field] &&
 
 1773                    !(
int) 
$_POST[
'chb'][
'visib_reg_' . $field]
 
 1783            $this->confirm_change = 1;
 
 1789        $fixed_required_fields = array(
 
 1796            "hits_per_page" => 0,
 
 1798            "hide_own_online_status" => 0
 
 1803        if ($privacy->enabledCourseExport() == 
true &&
 
 1804            $privacy->courseConfirmationRequired() == 
true &&
 
 1806            foreach ($profile_fields as $field) {
 
 1807                if (!$ilias->getSetting(
"usr_settings_course_export_" . $field) && 
$_POST[
"chb"][
"course_export_" . $field] == 
"1") {
 
 1808                    #ilUtil::sendQuestion($this->lng->txt('confirm_message_course_export')); 
 1809                    #$this->confirm_change = 1; 
 1810                    #$this->settingsObject(); 
 1817            include_once(
'Services/Membership/classes/class.ilMemberAgreement.php');
 
 1821        foreach ($profile_fields as $field) {
 
 1827            if (!
$_POST[
"chb"][
"visible_" . $field] && !$field_properties[$field][
"visible_hide"]) {
 
 1828                $ilias->setSetting(
"usr_settings_hide_" . $field, 
"1");
 
 1830                $ilias->deleteSetting(
"usr_settings_hide_" . $field);
 
 1833            if (!
$_POST[
"chb"][
"changeable_" . $field] && !$field_properties[$field][
"changeable_hide"]) {
 
 1834                $ilias->setSetting(
"usr_settings_disable_" . $field, 
"1");
 
 1836                $ilias->deleteSetting(
"usr_settings_disable_" . $field);
 
 1840            if ((
int) 
$_POST[
'chb'][
'visib_reg_' . $field] && !$field_properties[$field][
"visib_reg_hide"]) {
 
 1841                $ilSetting->set(
'usr_settings_visib_reg_' . $field, 
'1');
 
 1843                $ilSetting->set(
'usr_settings_visib_reg_' . $field, 
'0');
 
 1846            if ((
int) 
$_POST[
'chb'][
'visib_lua_' . $field]) {
 
 1847                $ilSetting->set(
'usr_settings_visib_lua_' . $field, 
'1');
 
 1849                $ilSetting->set(
'usr_settings_visib_lua_' . $field, 
'0');
 
 1852            if ((
int) 
$_POST[
'chb'][
'changeable_lua_' . $field]) {
 
 1853                $ilSetting->set(
'usr_settings_changeable_lua_' . $field, 
'1');
 
 1855                $ilSetting->set(
'usr_settings_changeable_lua_' . $field, 
'0');
 
 1858            if (
$_POST[
"chb"][
"export_" . $field] && !$field_properties[$field][
"export_hide"]) {
 
 1859                $ilias->setSetting(
"usr_settings_export_" . $field, 
"1");
 
 1861                $ilias->deleteSetting(
"usr_settings_export_" . $field);
 
 1865            if (
$_POST[
"chb"][
"course_export_" . $field] && !$field_properties[$field][
"course_export_hide"]) {
 
 1866                $ilias->setSetting(
"usr_settings_course_export_" . $field, 
"1");
 
 1868                $ilias->deleteSetting(
"usr_settings_course_export_" . $field);
 
 1872            if (
$_POST[
"chb"][
"group_export_" . $field] && !$field_properties[$field][
"group_export_hide"]) {
 
 1873                $ilias->setSetting(
"usr_settings_group_export_" . $field, 
"1");
 
 1875                $ilias->deleteSetting(
"usr_settings_group_export_" . $field);
 
 1878            $is_fixed = array_key_exists($field, $fixed_required_fields);
 
 1879            if ($is_fixed && $fixed_required_fields[$field] || !$is_fixed && 
$_POST[
"chb"][
"required_" . $field]) {
 
 1880                $ilias->setSetting(
"require_" . $field, 
"1");
 
 1882                $ilias->deleteSetting(
"require_" . $field);
 
 1886        if (
$_POST[
"select"][
"default_hits_per_page"]) {
 
 1887            $ilias->setSetting(
"hits_per_page", 
$_POST[
"select"][
"default_hits_per_page"]);
 
 1895        if (
$_POST[
"chb"][
"export_preferences"]) {
 
 1896            $ilias->setSetting(
"usr_settings_export_preferences", 
$_POST[
"chb"][
"export_preferences"]);
 
 1898            $ilias->deleteSetting(
"usr_settings_export_preferences");
 
 1901        $ilias->setSetting(
'mail_incoming_mail', (
int) 
$_POST[
'select'][
'default_mail_incoming_mail']);
 
 1916        $action[-1] = $this->lng->txt(
'all_users');
 
 1917        $action[1] = $this->lng->txt(
'usr_active_only');
 
 1918        $action[0] = $this->lng->txt(
'usr_inactive_only');
 
 1919        $action[2] = $this->lng->txt(
'usr_limited_access_only');
 
 1920        $action[3] = $this->lng->txt(
'usr_without_courses');
 
 1921        $action[4] = $this->lng->txt(
'usr_filter_lastlogin');
 
 1922        $action[5] = $this->lng->txt(
"usr_filter_coursemember");
 
 1923        $action[6] = $this->lng->txt(
"usr_filter_groupmember");
 
 1924        $action[7] = $this->lng->txt(
"usr_filter_role");
 
 1937        if (!isset(
$_POST[
"file"])) {
 
 1938            $this->
ilias->raiseError($this->lng->txt(
"no_checkbox"), $this->ilias->error_obj->MESSAGE);
 
 1941        if (count(
$_POST[
"file"]) > 1) {
 
 1942            $this->
ilias->raiseError($this->lng->txt(
"select_max_one_item"), $this->ilias->error_obj->MESSAGE);
 
 1947        $export_dir = $this->
object->getExportDirectory();
 
 1956        if (!isset(
$_POST[
"file"])) {
 
 1957            $this->
ilias->raiseError($this->lng->txt(
"no_checkbox"), $this->ilias->error_obj->MESSAGE);
 
 1961        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1963        $cgui->setFormAction($this->ctrl->getFormAction($this));
 
 1964        $cgui->setHeaderText($this->lng->txt(
"info_delete_sure"));
 
 1965        $cgui->setCancel($this->lng->txt(
"cancel"), 
"cancelDeleteExportFile");
 
 1966        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"deleteExportFile");
 
 1973        $this->tpl->setContent($cgui->getHTML());
 
 1982        $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 1991        $export_dir = $this->
object->getExportDirectory();
 
 1995            $exp_file = $export_dir . 
"/" . 
$file;
 
 1996            if (@is_file($exp_file)) {
 
 2000        $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 2017        if (
$_POST[
"cmd"][
"export"]) {
 
 2018            $this->
object->buildExportFile(
$_POST[
"export_type"]);
 
 2019            $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 2023        $this->tpl->addBlockfile(
'ADM_CONTENT', 
'adm_content', 
'tpl.usr_export.html', 
'Services/User');
 
 2025        $export_types = array(
 
 2026            "userfolder_export_excel_x86",
 
 2027            "userfolder_export_csv",
 
 2028            "userfolder_export_xml" 
 2032        include_once(
"./Services/Table/classes/class.ilTableGUI.php");
 
 2036        $this->tpl->addBlockfile(
"EXPORT_FILES", 
"export_files", 
"tpl.table.html");
 
 2039        $this->tpl->addBlockfile(
"TBL_CONTENT", 
"tbl_content", 
"tpl.usr_export_file_row.html", 
"Services/User");
 
 2043        $tbl->setTitle($this->lng->txt(
"userfolder_export_files"));
 
 2045        $tbl->setHeaderNames(array(
"", $this->lng->txt(
"userfolder_export_file"),
 
 2046            $this->lng->txt(
"userfolder_export_file_size"), $this->lng->txt(
"date") ));
 
 2047        $tbl->setHeaderVars(array(), 
$ilCtrl->getParameterArray($this, 
"export"));
 
 2049        $tbl->enabled[
"sort"] = 
false;
 
 2050        $tbl->setColumnWidth(array(
"1%", 
"49%", 
"25%", 
"25%"));
 
 2054        $tbl->setOrderDirection(
$_GET[
"sort_order"]);
 
 2057        $tbl->setMaxCount($this->maxcount);             
 
 2060        $this->tpl->setVariable(
"COLUMN_COUNTS", 4);
 
 2064        $this->tpl->setVariable(
"ALT_ARROW", $this->lng->txt(
"actions"));
 
 2065        $this->tpl->setCurrentBlock(
"tbl_action_btn");
 
 2066        $this->tpl->setVariable(
"BTN_NAME", 
"confirmDeleteExportFile");
 
 2067        $this->tpl->setVariable(
"BTN_VALUE", $this->lng->txt(
"delete"));
 
 2068        $this->tpl->parseCurrentBlock();
 
 2070        $this->tpl->setCurrentBlock(
"tbl_action_btn");
 
 2071        $this->tpl->setVariable(
"BTN_NAME", 
"downloadExportFile");
 
 2072        $this->tpl->setVariable(
"BTN_VALUE", $this->lng->txt(
"download"));
 
 2073        $this->tpl->parseCurrentBlock();
 
 2076        $tbl->setFooter(
"tblfooter", $this->lng->txt(
"previous"), $this->lng->txt(
"next"));
 
 2079        $export_files = $this->
object->getExportFiles();
 
 2081        $tbl->setMaxCount(count($export_files));
 
 2082        $export_files = array_slice($export_files, 
$_GET[
"offset"], 
$_GET[
"limit"]);
 
 2086        if (count($export_files) > 0) {
 
 2088            foreach ($export_files as $exp_file) {
 
 2089                $this->tpl->setCurrentBlock(
"tbl_content");
 
 2090                $this->tpl->setVariable(
"TXT_FILENAME", $exp_file[
"filename"]);
 
 2093                $this->tpl->setVariable(
"CSS_ROW", $css_row);
 
 2095                $this->tpl->setVariable(
"TXT_SIZE", $exp_file[
"filesize"]);
 
 2096                $this->tpl->setVariable(
"CHECKBOX_ID", $exp_file[
"filename"]);
 
 2098                $file_arr = explode(
"__", $exp_file[
"filename"]);
 
 2101                $this->tpl->parseCurrentBlock();
 
 2104            $this->tpl->setCurrentBlock(
"selectall");
 
 2105            $this->tpl->setVariable(
"SELECT_ALL", $this->lng->txt(
"select_all"));
 
 2106            $this->tpl->setVariable(
"CSS_ROW", $css_row);
 
 2107            $this->tpl->parseCurrentBlock();
 
 2120        $this->tpl->parseCurrentBlock();
 
 2123        foreach ($export_types as $export_type) {
 
 2124            $this->tpl->setCurrentBlock(
"option");
 
 2125            $this->tpl->setVariable(
"OPTION_VALUE", $export_type);
 
 2126            $this->tpl->setVariable(
"OPTION_TEXT", $this->lng->txt($export_type));
 
 2127            $this->tpl->parseCurrentBlock();
 
 2130        $this->tpl->setVariable(
"EXPORT_BUTTON", $this->lng->txt(
"create_export_file"));
 
 2131        $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
 
 2138        $lng->loadLanguageModule(
"meta");
 
 2139        $lng->loadLanguageModule(
"mail");
 
 2141        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 2146        $form->setTitle(
$lng->txt(
"user_new_account_mail"));
 
 2147        $form->setDescription(
$lng->txt(
"user_new_account_mail_desc"));
 
 2149        $langs = 
$lng->getInstalledLanguages();
 
 2150        foreach ($langs as $lang_key) {
 
 2151            $amail = $this->
object->_lookupNewAccountMail($lang_key);
 
 2154            if ($lang_key == 
$lng->getDefaultLanguage()) {
 
 2164            $subj->setValue($amail[
"subject"]);
 
 2165            $form->addItem($subj);
 
 2167            $salg = 
new ilTextInputGUI(
$lng->txt(
"mail_salutation_general"), 
"sal_g_" . $lang_key);
 
 2169            $salg->setValue($amail[
"sal_g"]);
 
 2170            $form->addItem($salg);
 
 2172            $salf = 
new ilTextInputGUI(
$lng->txt(
"mail_salutation_female"), 
"sal_f_" . $lang_key);
 
 2174            $salf->setValue($amail[
"sal_f"]);
 
 2175            $form->addItem($salf);
 
 2179            $salm->setValue($amail[
"sal_m"]);
 
 2180            $form->addItem($salm);
 
 2184            $body->setValue($amail[
"body"]);
 
 2186            $body->setCols(100);
 
 2187            $form->addItem($body);
 
 2190            $att->setAllowDeletion(
true);
 
 2191            if ($amail[
"att_file"]) {
 
 2192                $att->setValue($amail[
"att_file"]);
 
 2194            $form->addItem($att);
 
 2197        $form->addCommandButton(
"saveNewAccountMail", 
$lng->txt(
"save"));
 
 2198        $form->addCommandButton(
"cancelNewAccountMail", 
$lng->txt(
"cancel"));
 
 2211        $this->tabs_gui->setTabActive(
'settings');
 
 2212        $this->tabs_gui->setSubTabActive(
'user_new_account_mail');
 
 2216        $ftpl = 
new ilTemplate(
'tpl.usrf_new_account_mail.html', 
true, 
true, 
'Services/User');
 
 2217        $ftpl->setVariable(
"FORM", 
$form->getHTML());
 
 2221        $ftpl->setVariable(
"TXT_USE_PLACEHOLDERS", 
$lng->txt(
"mail_nacc_use_placeholder"));
 
 2222        $ftpl->setVariable(
"TXT_MAIL_SALUTATION", 
$lng->txt(
"mail_nacc_salutation"));
 
 2223        $ftpl->setVariable(
"TXT_FIRST_NAME", 
$lng->txt(
"firstname"));
 
 2224        $ftpl->setVariable(
"TXT_LAST_NAME", 
$lng->txt(
"lastname"));
 
 2225        $ftpl->setVariable(
"TXT_EMAIL", 
$lng->txt(
"email"));
 
 2226        $ftpl->setVariable(
"TXT_LOGIN", 
$lng->txt(
"mail_nacc_login"));
 
 2227        $ftpl->setVariable(
"TXT_PASSWORD", 
$lng->txt(
"password"));
 
 2228        $ftpl->setVariable(
"TXT_PASSWORD_BLOCK", 
$lng->txt(
"mail_nacc_pw_block"));
 
 2229        $ftpl->setVariable(
"TXT_NOPASSWORD_BLOCK", 
$lng->txt(
"mail_nacc_no_pw_block"));
 
 2230        $ftpl->setVariable(
"TXT_ADMIN_MAIL", 
$lng->txt(
"mail_nacc_admin_mail"));
 
 2231        $ftpl->setVariable(
"TXT_ILIAS_URL", 
$lng->txt(
"mail_nacc_ilias_url"));
 
 2232        $ftpl->setVariable(
"TXT_CLIENT_NAME", 
$lng->txt(
"mail_nacc_client_name"));
 
 2233        $ftpl->setVariable(
"TXT_TARGET", 
$lng->txt(
"mail_nacc_target"));
 
 2234        $ftpl->setVariable(
"TXT_TARGET_TITLE", 
$lng->txt(
"mail_nacc_target_title"));
 
 2235        $ftpl->setVariable(
"TXT_TARGET_TYPE", 
$lng->txt(
"mail_nacc_target_type"));
 
 2236        $ftpl->setVariable(
"TXT_TARGET_BLOCK", 
$lng->txt(
"mail_nacc_target_block"));
 
 2237        $ftpl->setVariable(
"TXT_IF_TIMELIMIT", 
$lng->txt(
"mail_nacc_if_timelimit"));
 
 2238        $ftpl->setVariable(
"TXT_TIMELIMIT", 
$lng->txt(
"mail_nacc_timelimit"));
 
 2240        $this->tpl->setContent($ftpl->get());
 
 2245        $this->ctrl->redirect($this, 
"settings");
 
 2252        $langs = 
$lng->getInstalledLanguages();
 
 2253        foreach ($langs as $lang_key) {
 
 2254            $this->
object->_writeNewAccountMail(
 
 2263            if ($_FILES[
"att_" . $lang_key][
"tmp_name"]) {
 
 2264                $this->
object->_updateAccountMailAttachment(
 
 2266                    $_FILES[
"att_" . $lang_key][
"tmp_name"],
 
 2267                    $_FILES[
"att_" . $lang_key][
"name"]
 
 2271            if (
$_POST[
"att_" . $lang_key . 
"_delete"]) {
 
 2272                $this->
object->_deleteAccountMailAttachment($lang_key);
 
 2277        $this->ctrl->redirect($this, 
"newAccountMail");
 
 2292        include_once 
'Services/Tracking/classes/class.ilObjUserTracking.php';
 
 2296        if (
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
 
 2297            $this->tabs_gui->addTarget(
 
 2299                $this->ctrl->getLinkTarget($this, 
"view"),
 
 2300                array(
"view",
"delete",
"resetFilter", 
"userAction", 
""),
 
 2305            $this->tabs_gui->addTarget(
 
 2306                "search_user_extended",
 
 2307                $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI', 
''),
 
 2309                "ilrepositorysearchgui",
 
 2314        if (
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
 
 2315            $this->tabs_gui->addTarget(
 
 2317                $this->ctrl->getLinkTarget($this, 
"generalSettings"),
 
 2318                array(
'settings',
'generalSettings',
'listUserDefinedField',
'newAccountMail')
 
 2321            $this->tabs_gui->addTarget(
 
 2323                $this->ctrl->getLinkTarget($this, 
"export"),
 
 2339        if (
$rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId())) {
 
 2340            $this->tabs_gui->addTarget(
 
 2342                $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'), 
"perm"),
 
 2343                array(
"perm",
"info",
"owner"),
 
 2359                $this->tabs_gui->addSubTabTarget(
 
 2361                    $this->ctrl->getLinkTarget($this, 
'generalSettings'),
 
 2365                $this->tabs_gui->addSubTabTarget(
 
 2367                    $this->ctrl->getLinkTarget($this, 
'settings'),
 
 2368                    array(
"settings", 
"saveGlobalUserSettings"),
 
 2371                $this->tabs_gui->addSubTabTarget(
 
 2372                    "user_defined_fields",
 
 2373                    $this->ctrl->getLinkTargetByClass(
"ilcustomuserfieldsgui", 
"listUserDefinedFields"),
 
 2374                    "listUserDefinedFields",
 
 2377                $this->tabs_gui->addSubTabTarget(
 
 2378                    "user_new_account_mail",
 
 2379                    $this->ctrl->getLinkTarget($this, 
'newAccountMail'),
 
 2384                $this->tabs_gui->addSubTabTarget(
 
 2386                    $this->ctrl->getLinkTargetByClass(
"iluserstartingpointgui", 
"startingPoints"),
 
 2392                $this->tabs_gui->addSubTabTarget(
 
 2393                    "user_profile_info",
 
 2394                    $this->ctrl->getLinkTargetByClass(
"ilUserProfileInfoSettingsGUI", 
''),
 
 2396                    "ilUserProfileInfoSettingsGUI" 
 2399                #$this->tabs_gui->addSubTab("account_codes", $this->lng->txt("user_account_codes"),
 
 2400                #                                                        $this->ctrl->getLinkTargetByClass("ilaccountcodesgui"));
 
 2409        $show_blocking_time_in_days = (int) 
$ilSetting->get(
'loginname_change_blocking_time') / 86400;
 
 2412        $this->loginSettingsForm->setValuesByArray(array(
 
 2413            'allow_change_loginname' => (
bool) 
$ilSetting->get(
'allow_change_loginname'),
 
 2414            'create_history_loginname' => (
bool) 
$ilSetting->get(
'create_history_loginname'),
 
 2415            'reuse_of_loginnames' => (
bool) 
$ilSetting->get(
'reuse_of_loginnames'),
 
 2416            'loginname_change_blocking_time' => (
float) $show_blocking_time_in_days
 
 2419        $this->tpl->setVariable(
'ADM_CONTENT', $this->loginSettingsForm->getHTML());
 
 2425        $this->tabs_gui->setTabActive(
'settings');
 
 2426        $this->tabs_gui->setSubTabActive(
'loginname_settings');
 
 2428        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 2430        $this->loginSettingsForm->
setFormAction($this->ctrl->getFormAction($this, 
'saveLoginnameSettings'));
 
 2431        $this->loginSettingsForm->setTitle($this->lng->txt(
'loginname_settings'));
 
 2433        $chbChangeLogin = 
new ilCheckboxInputGUI($this->lng->txt(
'allow_change_loginname'), 
'allow_change_loginname');
 
 2434        $chbChangeLogin->setValue(1);
 
 2435        $this->loginSettingsForm->addItem($chbChangeLogin);
 
 2436        $chbCreateHistory = 
new ilCheckboxInputGUI($this->lng->txt(
'history_loginname'), 
'create_history_loginname');
 
 2437        $chbCreateHistory->setInfo($this->lng->txt(
'loginname_history_info'));
 
 2438        $chbCreateHistory->setValue(1);
 
 2439        $chbChangeLogin->addSubItem($chbCreateHistory);
 
 2440        $chbReuseLoginnames = 
new ilCheckboxInputGUI($this->lng->txt(
'reuse_of_loginnames_contained_in_history'), 
'reuse_of_loginnames');
 
 2441        $chbReuseLoginnames->setValue(1);
 
 2442        $chbReuseLoginnames->setInfo($this->lng->txt(
'reuse_of_loginnames_contained_in_history_info'));
 
 2443        $chbChangeLogin->addSubItem($chbReuseLoginnames);
 
 2444        $chbChangeBlockingTime = 
new ilNumberInputGUI($this->lng->txt(
'loginname_change_blocking_time'), 
'loginname_change_blocking_time');
 
 2445        $chbChangeBlockingTime->allowDecimals(
true);
 
 2446        $chbChangeBlockingTime->setSuffix($this->lng->txt(
'days'));
 
 2447        $chbChangeBlockingTime->setInfo($this->lng->txt(
'loginname_change_blocking_time_info'));
 
 2448        $chbChangeBlockingTime->setSize(10);
 
 2449        $chbChangeBlockingTime->setMaxLength(10);
 
 2450        $chbChangeLogin->addSubItem($chbChangeBlockingTime);
 
 2452        $this->loginSettingsForm->addCommandButton(
'saveLoginnameSettings', $this->lng->txt(
'save'));
 
 2460        if ($this->loginSettingsForm->checkInput()) {
 
 2463            if (!strlen($this->loginSettingsForm->getInput(
'loginname_change_blocking_time'))) {
 
 2465                $this->loginSettingsForm->getItemByPostVar(
'loginname_change_blocking_time')
 
 2466                                        ->setAlert($this->lng->txt(
'loginname_change_blocking_time_invalidity_info'));
 
 2470                $save_blocking_time_in_seconds = (int) $this->loginSettingsForm->getInput(
'loginname_change_blocking_time') * 86400;
 
 2472                $ilSetting->set(
'allow_change_loginname', (
int) $this->loginSettingsForm->getInput(
'allow_change_loginname'));
 
 2473                $ilSetting->set(
'create_history_loginname', (
int) $this->loginSettingsForm->getInput(
'create_history_loginname'));
 
 2474                $ilSetting->set(
'reuse_of_loginnames', (
int) $this->loginSettingsForm->getInput(
'reuse_of_loginnames'));
 
 2475                $ilSetting->set(
'loginname_change_blocking_time', (
int) $save_blocking_time_in_seconds);
 
 2484        $this->loginSettingsForm->setValuesByPost();
 
 2486        $this->tpl->setVariable(
'ADM_CONTENT', $this->loginSettingsForm->getHTML());
 
 2498        if ($ilAccess->checkAccess(
"read", 
"", $a_target)) {
 
 2499            ilUtil::redirect(
"ilias.php?baseClass=ilAdministrationGUI&ref_id=" . $a_target . 
"&jmpToUser=" . $a_user);
 
 2502            if ($ilAccess->checkAccess(
"read", 
"", ROOT_FOLDER_ID)) {
 
 2504                    $lng->txt(
"msg_no_perm_read_item"),
 
 2521            $ilCtrl->setParameterByClass(
"ilobjusergui", 
"obj_id", (
int) 
$_GET[
"jmpToUser"]);
 
 2522            $ilCtrl->redirectByClass(
"ilobjusergui", 
"view");
 
 2531        if (!count((array) $a_usr_ids)) {
 
 2536        $_POST[
'id'] = $a_usr_ids;
 
 2539        if (stristr($a_cmd, 
"export")) {
 
 2540            $cmd = $a_cmd . 
"Object";
 
 2541            return $this->$cmd();
 
 2544        $_POST[
'selectedAction'] = $a_cmd;
 
 2553        if ($a_search_form) {
 
 2555                'activate' => $this->lng->txt(
'activate'),
 
 2556                'deactivate' => $this->lng->txt(
'deactivate'),
 
 2557                'accessRestrict' => $this->lng->txt(
'accessRestrict'),
 
 2558                'accessFree' => $this->lng->txt(
'accessFree')
 
 2561            if (
$rbacsystem->checkAccess(
'delete', $this->object->getRefId())) {
 
 2562                $cmds[
"delete"] = $this->lng->txt(
"delete");
 
 2568                'activateUsers' => $this->lng->txt(
'activate'),
 
 2569                'deactivateUsers' => $this->lng->txt(
'deactivate'),
 
 2570                'restrictAccess' => $this->lng->txt(
'accessRestrict'),
 
 2571                'freeAccess' => $this->lng->txt(
'accessFree')
 
 2574            if (
$rbacsystem->checkAccess(
'delete', $this->object->getRefId())) {
 
 2575                $cmds[
"deleteUsers"] = $this->lng->txt(
"delete");
 
 2580        $export_types = array(
"userfolder_export_excel_x86", 
"userfolder_export_csv", 
"userfolder_export_xml");
 
 2581        foreach ($export_types as 
$type) {
 
 2582            $cmd = explode(
"_", 
$type);
 
 2583            $cmd = array_pop($cmd);
 
 2584            $cmds[
'usrExport' . ucfirst($cmd)] = $this->lng->txt(
'export') . 
' - ' .
 
 2585                $this->lng->txt(
$type);
 
 2589        include_once 
"Services/Mail/classes/class.ilMail.php";
 
 2591        if (
$rbacsystem->checkAccess(
'internal_mail', $mail->getMailObjectReferenceId())) {
 
 2592            $cmds[
"mail"] = $this->lng->txt(
"send_mail");
 
 2595        $cmds[
'addToClipboard'] = $this->lng->txt(
'clipboard_add_btn');
 
 2607        $this->
object->buildExportFile(
"userfolder_export_excel_x86", $user_ids);
 
 2608        $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 2618        $this->
object->buildExportFile(
"userfolder_export_csv", $user_ids);
 
 2619        $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 2629        $this->
object->buildExportFile(
"userfolder_export_xml", $user_ids);
 
 2630        $this->ctrl->redirectByClass(
"ilobjuserfoldergui", 
"export");
 
 2644        include_once 
"Services/Contact/classes/class.ilMailingLists.php";
 
 2646        $list->deleteTemporaryLists();
 
 2649        include_once 
"Services/Contact/classes/class.ilMailingList.php";
 
 2652        $list->setTitle(
"-TEMPORARY SYSTEM LIST-");
 
 2653        $list->setDescription(
"-USER ACCOUNTS MAIL-");
 
 2654        $list->setCreateDate(
date(
"Y-m-d H:i:s"));
 
 2656        $list_id = 
$list->getId();
 
 2659        foreach ($user_ids as $user_id) {
 
 2660            $list->assignUser($user_id);
 
 2663        include_once 
"Services/Mail/classes/class.ilFormatMail.php";
 
 2665        $mail_data = $umail->getSavedData();
 
 2667        if (!is_array($mail_data)) {
 
 2668            $mail_data = array(
"user_id" => 
$ilUser->getId());
 
 2674        $umail->savePostData(
 
 2675            $mail_data[
'user_id'],
 
 2676            $mail_data[
'attachments'],
 
 2677            '#il_ml_' . $list_id, 
 
 2678            $mail_data[
'rcp_cc'],
 
 2679            $mail_data[
'rcp_bcc'],
 
 2680            $mail_data[
'm_type'],
 
 2681            $mail_data[
'm_email'],
 
 2682            $mail_data[
'm_subject'],
 
 2683            $mail_data[
'm_message'],
 
 2684            $mail_data[
'use_placeholders'],
 
 2685            $mail_data[
'tpl_ctx_id'],
 
 2686            $mail_data[
'tpl_ctx_params']
 
 2689        require_once 
'Services/Mail/classes/class.ilMailFormCall.php';
 
 2696                    'type' => 
'search_res' 
 2704        switch ($a_form_id) {
 
 2707                include_once(
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
 
 2717                    'ps_password_min_length' => (
int) $security->getPasswordMinLength(),
 
 2718                    'ps_password_max_length' => (
int) $security->getPasswordMaxLength(),
 
 2719                    'ps_password_uppercase_chars_num' => (
int) $security->getPasswordNumberOfUppercaseChars(),
 
 2720                    'ps_password_lowercase_chars_num' => (
int) $security->getPasswordNumberOfLowercaseChars(),
 
 2721                    'ps_password_max_age' => (
int) $security->getPasswordMaxAge()
 
 2723                $fields[
'ps_password_settings'] = array(
null, 
null, $subitems);
 
 2726                    'ps_login_max_attempts' => (
int) $security->getLoginMaxAttempts(),
 
 2729                $fields[
'ps_security_protection'] = array(
null, 
null, $subitems);
 
 2731                return array(array(
"generalSettings", $fields));
 
 2740            $this->ctrl->redirect($this, 
'view');
 
 2742        include_once 
'./Services/User/classes/class.ilUserClipboard.php';
 
 2748        $this->ctrl->redirect($this, 
'view');
 
sprintf('%.4f', $callTime)
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
An exception for terminatinating execution or to throw for unit testing.
const USER_FOLDER_ID
Class ilObjUserFolder.
const IL_UPDATE_ON_CONFLICT
const IL_IGNORE_ON_CONFLICT
GUI class for account codes.
Confirmation screen class.
Class ilCustomUserFieldsGUI.
static secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date @access public.
@classDescription Date and time handling
static getLogger($a_component_id)
Get component logger.
static searchRolesByMailboxAddressList( $a_address_list, ilMailRfc822AddressParserFactory $parserFactory=null, ilMailRfc822AddressParser $parser=null)
Finds all role ids that match the specified user friendly role mailbox address list.
static getRoleMailboxAddress( $a_role_id, $is_localize=true, ilMailRfc822AddressParserFactory $mailAddressParserFactory=null)
Returns the mailbox address of a role.
This class handles base functions for mail handling.
static _reset()
Reset all.
This class represents a non editable value in a property form.
static _getAssignUsersStatus($a_role_id)
Class ilObjUserFolderGUI.
addUserObject()
Add new user;.
deactivateUsersObject()
Deactivate users.
importCancelledObject()
import cancelled
resetFilterObject()
Reset filter (note: this function existed before data table filter has been introduced.
saveGeneralSettingsObject()
Save user account settings.
addUserAutoCompleteObject()
Show auto complete results.
confirmdeactivateObject()
Set the selected users inactive.
cancelNewAccountMailObject()
cancelSearchActionObject()
deleteUsersObject()
Delete users.
restrictAccessObject()
Restrict access.
newAccountMailObject()
new account mail administration
showPossibleSubObjects()
show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local...
initUserImportForm()
Init user import form.
activateUsersObject()
Activate users.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor @access public.
confirmdeleteObject()
confirm delete Object
initFormGeneralSettings()
init general settings form
getUserMultiCommands($a_search_form=false)
getAdminTabs()
administration tabs show only permissions and trash folder
viewObject($reset_filter=false)
list users
setAccessRestrictionObject($a_form=null, $a_from_search=false)
importUserFormObject()
display form for user import
confirmaccessFreeObject()
importUserRoleAssignmentObject()
display form for user import
exportObject()
Global user settings.
jumpToUserObject()
Jump to edit screen for user.
__buildUserFilterSelect()
build select form to distinguish between active and non-active users
importUsersObject()
import users
showLoginnameSettingsObject()
initAccessRestrictionForm($a_from_search=false)
applyFilterObject()
Apply filter.
getActionUserIds()
Get selected items for table action.
cancelDeleteExportFileObject()
cancel deletion of export files
searchResultHandler($a_usr_ids, $a_cmd)
Handles multi command from repository search gui.
downloadExportFileObject()
Download selected export files.
confirmDeleteExportFileObject()
confirmation screen for export file deletion
saveNewAccountMailObject()
settingsObject()
Global user settings.
saveGlobalUserSettingsObject($action="")
cancelUserFolderActionObject()
static _goto($a_user)
goto target group
getImportDir()
get user import directory name
getTabs()
get tabs @access public
saveLoginnameSettingsObject()
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
showActions($with_subobjects=false)
show possible action (form buttons)
setSubTabs($a_tab)
set sub tabs
executeCommand()
execute command
deleteExportFileObject()
delete export files
generalSettingsObject()
Show user account general settings.
confirmaccessRestrictObject()
confirmactivateObject()
Set the selected users active.
chooseLetterObject()
Choose first letter.
freeAccessObject()
Free access.
addToExternalSettingsForm($a_form_id)
static _lookupNewAccountMail($a_lang)
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static getFirstLettersOfLastnames()
Get first letters of all lastnames.
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
viewObject()
list childs of current object
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _getIcon( $a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
static _lookupType($a_id, $a_reference=false)
lookup object type
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static _getInstance()
Get instance of ilPrivacySettings.
This class represents an option in a radio group.
static _getInstance()
Get instance of ilSecuritySettings.
const DEFAULT_MAX_IDLE_AFTER_FIRST_REQUEST
const DEFAULT_ALLOW_CLIENT_MAINTENANCE
const DEFAULT_MAX_COUNT
default value for settings that have not been defined in setup or administration yet
static updateLimitLog($a_new_value)
Log max session setting.
const SESSION_HANDLING_LOAD_DEPENDENT
const SESSION_HANDLING_FIXED
static getSessionExpireValue()
Returns the session expiration value.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
static getInstance()
Singelton get instance.
Auto completion class for user lists.
static getInstance($a_usr_id)
Get singelton instance.
Learning progress account list for user administration.
User profile info settings UI class.
static _isSearchable($a_key)
static _saveStatus($a_key, $a_enabled)
Class ilUserStartingPointGUI.
TableGUI class for user administration.
static getDataDir()
get data directory (outside webspace)
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows)
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static makeDirParents($a_dir)
Create a new directory and all parent directories.
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 makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
for( $i=6;$i< 13;$i++) for($i=1; $i< 13; $i++) $d
if(!array_key_exists('StateId', $_REQUEST)) $id
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
redirection script todo: (a better solution should control the processing via a xml file)
if(isset($_POST['submit'])) $form
if(isset($_REQUEST['delete'])) $list
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file