ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilObjUserFolderGUI Class Reference

Class ilObjUserFolderGUI. More...

+ Inheritance diagram for ilObjUserFolderGUI:
+ Collaboration diagram for ilObjUserFolderGUI:

Public Member Functions

 __construct ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
 Constructor public. More...
 
 setUserOwnerId ($a_id)
 
 getUserOwnerId ()
 
 executeCommand ()
 
 learningProgressObject ()
 
 resetFilterObject ()
 Reset filter (note: this function existed before data table filter has been introduced. More...
 
 addUserObject ()
 Add new user;. More...
 
 applyFilterObject ()
 Apply filter. More...
 
 viewObject ($reset_filter=false)
 list users More...
 
 chooseLetterObject ()
 Choose first letter. More...
 
 showActions ($with_subobjects=false)
 show possible action (form buttons) More...
 
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local role folders More...
 
 cancelUserFolderActionObject ()
 
 cancelSearchActionObject ()
 
 confirmactivateObject ()
 Set the selected users active. More...
 
 confirmdeactivateObject ()
 Set the selected users inactive. More...
 
 confirmaccessFreeObject ()
 
 setAccessRestrictionObject ($a_form=null, $a_from_search=false)
 
 confirmaccessRestrictObject ()
 
 confirmdeleteObject ()
 confirm delete Object More...
 
 showActionConfirmation ($action, $a_from_search=false)
 display activation confirmation screen More...
 
 deleteUsersObject ()
 Delete users. More...
 
 activateUsersObject ()
 Activate users. More...
 
 deactivateUsersObject ()
 Deactivate users. More...
 
 restrictAccessObject ()
 Restrict access. More...
 
 freeAccessObject ()
 Free access. More...
 
 userActionObject ()
 
 importUserFormObject ()
 display form for user import More...
 
 initUserImportForm ()
 Init user import form. More...
 
 importCancelledObject ()
 import cancelled More...
 
 getImportDir ()
 get user import directory name More...
 
 importUserRoleAssignmentObject ()
 display form for user import More...
 
 importUsersObject ()
 import users More...
 
 hitsperpageObject ()
 
 saveGeneralSettingsObject ()
 Save user account settings. More...
 
 settingsObject ()
 Global user settings. More...
 
 confirmSavedObject ()
 
 saveGlobalUserSettingsObject ($action="")
 
 __buildUserFilterSelect ()
 build select form to distinguish between active and non-active users More...
 
 downloadExportFileObject ()
 Download selected export files. More...
 
 confirmDeleteExportFileObject ()
 confirmation screen for export file deletion More...
 
 cancelDeleteExportFileObject ()
 cancel deletion of export files More...
 
 deleteExportFileObject ()
 delete export files More...
 
 exportObject ()
 Global user settings. More...
 
 newAccountMailObject ()
 new account mail administration More...
 
 cancelNewAccountMailObject ()
 
 saveNewAccountMailObject ()
 
 getAdminTabs ()
 
 getTabs ()
 get tabs public More...
 
 setSubTabs ($a_tab)
 set sub tabs More...
 
 showLoginnameSettingsObject ()
 
 saveLoginnameSettingsObject ()
 
 jumpToUserObject ()
 Jump to edit screen for user. More...
 
 searchResultHandler ($a_usr_ids, $a_cmd)
 Handles multi command from repository search gui. More...
 
 getUserMultiCommands ($a_search_form=false)
 
 usrExportX86Object ()
 
 usrExportCsvObject ()
 
 usrExportXmlObject ()
 
 mailObject ()
 
 addToExternalSettingsForm ($a_form_id)
 
- Public Member Functions inherited from ilObjectGUI
 executeCommand ()
 execute command More...
 
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode ($a_mode=true)
 if true, a creation screen is displayed the current $_GET[ref_id] don't belong to the current class! the mode is determined in ilrepositorygui More...
 
 getCreationMode ()
 get creation mode More...
 
 prepareOutput ($a_show_subobjects=true)
 prepare output More...
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelDeleteObject ()
 cancel deletion of object More...
 
 cancelObject ()
 cancel action and go back to previous page public More...
 
 createObject ()
 create new object form More...
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 save object More...
 
 getDidacticTemplateVar ($a_type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $a_obj, $a_parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 edit object More...
 
 addExternalEditFormCustom (ilPropertyFormGUI $a_form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g. More...
 
 isVisible ($a_ref_id, $a_type)
 
 viewObject ()
 list childs of current object More...
 
 deleteObject ($a_error=false)
 Display deletion confirmation screen. More...
 
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI. More...
 
 redirectAfterCreation ()
 Redirect after creation, see https://docu.ilias.de/goto_docu_wiki_wpage_5035_1357.html. More...
 

Static Public Member Functions

static _goto ($a_user)
 goto target group More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot ($a_raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode ($a_ref_id, $a_cmd="frameset")
 Goto repository root. More...
 

Data Fields

 $ctrl
 
- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 
 $objDefinition
 
 $tpl
 
 $tree
 
 $lng
 
 $data
 
 $object
 
 $ref_id
 
 $obj_id
 
 $maxcount
 
 $formaction
 
 $return_location
 
 $target_frame
 
 $tab_target_script
 
 $actions
 
 $sub_objects
 
 $omit_locator = false
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 

Protected Member Functions

 addUserAutoCompleteObject ()
 Show auto complete results. More...
 
 initAccessRestrictionForm ($a_from_search=false)
 
 getActionUserIds ()
 Get selected items for table action. More...
 
 generalSettingsObject ()
 Show user account general settings. More...
 
 initFormGeneralSettings ()
 init general settings form More...
 
 initNewAccountMailForm ()
 
 addToClipboardObject ()
 
- Protected Member Functions inherited from ilObjectGUI
 getObjectService ()
 Get object service. More...
 
 assignObject ()
 
 setTitleAndDescription ()
 called by prepare output More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction ($a_list_gui)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 showMountWebfolderIcon ()
 
 setTabs ()
 set admin tabs public More...
 
 setAdminTabs ()
 set admin tabs public More...
 
 setLocator ()
 set Locator More...
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator ($a_omit=true)
 
 addAdminLocatorItems ($a_do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 initCreationForms ($a_new_type)
 Init creation froms. More...
 
 getCreationFormsHTML (array $a_forms)
 Get HTML for creation forms (accordion) More...
 
 initCreateForm ($a_new_type)
 Init object creation form. More...
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 Show didactic template types. More...
 
 addDidacticTemplateOptions (array &$a_options)
 Add custom templates. More...
 
 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 Init object edit form. More...
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 Get values for edit form. More...
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $a_form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 initImportForm ($a_new_type)
 Init object import form. More...
 
 importFileObject ($parent_id=null, $a_catch_errors=true)
 Import. More...
 
 afterImport (ilObject $a_new_object)
 Post (successful) object import hook. More...
 
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command More...
 
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command More...
 
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command More...
 
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu) More...
 
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl. More...
 
 getTabs ()
 get tabs abstract method. More...
 
 __showButton ($a_cmd, $a_text, $a_target='')
 
 hitsperpageObject ()
 
__initTableGUI ()
 
 __setTableGUIBasicData (&$tbl, &$result_set, $a_from="")
 standard implementation for tables use 'from' variable use different initial setting of table More...
 
 redirectToRefId ($a_ref_id, $a_cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current $_GET["ref_id"] value More...
 
 fillCloneTemplate ($a_tpl_varname, $a_type)
 Fill object clone template This method can be called from any object GUI class that wants to offer object cloning. More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 May be overwritten in subclasses. More...
 
 checkPermission ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission and redirect on error. More...
 
 checkPermissionBool ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission. More...
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 handleAutoRating (ilObject $a_new_obj)
 Activate rating automatically if parent container setting. More...
 

Protected Attributes

 $log
 
- Protected Attributes inherited from ilObjectGUI
 $ilErr
 
 $locator
 
 $user
 
 $access
 
 $settings
 
 $rbacreview
 
 $toolbar
 
 $tmp_import_dir
 
 $tabs_gui = null
 
 $ctrl
 
 $object_service
 

Private Member Functions

 initLoginSettingsForm ()
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjUserFolderGUI::__construct (   $a_data,
  $a_id,
  $a_call_by_reference,
  $a_prepare_output = true 
)

Constructor public.

Definition at line 30 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilCtrl, and ilLoggerFactory\getLogger().

31  {
32  global $DIC;
33 
34  $ilCtrl = $DIC['ilCtrl'];
35 
36  // TODO: move this to class.ilias.php
37  define('USER_FOLDER_ID', 7);
38 
39  $this->type = "usrf";
40  parent::__construct($a_data, $a_id, $a_call_by_reference, false);
41 
42  $this->lng->loadLanguageModule('search');
43  $this->lng->loadLanguageModule("user");
44 
45  $ilCtrl->saveParameter($this, "letter");
46 
47  $this->log = ilLoggerFactory::getLogger("user");
48  }
global $DIC
Definition: saml.php:7
global $ilCtrl
Definition: ilias.php:18
static getLogger($a_component_id)
Get component logger.
+ Here is the call graph for this function:

Member Function Documentation

◆ __buildUserFilterSelect()

ilObjUserFolderGUI::__buildUserFilterSelect ( )

build select form to distinguish between active and non-active users

Definition at line 2000 of file class.ilObjUserFolderGUI.php.

References $_SESSION, $action, and ilUtil\formSelect().

2001  {
2002  $action[-1] = $this->lng->txt('all_users');
2003  $action[1] = $this->lng->txt('usr_active_only');
2004  $action[0] = $this->lng->txt('usr_inactive_only');
2005  $action[2] = $this->lng->txt('usr_limited_access_only');
2006  $action[3] = $this->lng->txt('usr_without_courses');
2007  $action[4] = $this->lng->txt('usr_filter_lastlogin');
2008  $action[5] = $this->lng->txt("usr_filter_coursemember");
2009  $action[6] = $this->lng->txt("usr_filter_groupmember");
2010  $action[7] = $this->lng->txt("usr_filter_role");
2011 
2012  return ilUtil::formSelect($_SESSION['user_filter'], "user_filter", $action, false, true);
2013  }
$_SESSION["AccountId"]
$action
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.
+ Here is the call graph for this function:

◆ _goto()

static ilObjUserFolderGUI::_goto (   $a_user)
static

goto target group

Definition at line 2598 of file class.ilObjUserFolderGUI.php.

References $DIC, ilObjectGUI\$ilErr, ilObjectGUI\$lng, ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), exit, ilUtil\redirect(), ilUtil\sendFailure(), and USER_FOLDER_ID.

2599  {
2600  global $DIC;
2601 
2602  $ilAccess = $DIC['ilAccess'];
2603  $ilErr = $DIC['ilErr'];
2604  $lng = $DIC['lng'];
2605 
2606  $a_target = USER_FOLDER_ID;
2607 
2608  if ($ilAccess->checkAccess("read", "", $a_target)) {
2609  ilUtil::redirect("ilias.php?baseClass=ilAdministrationGUI&ref_id=" . $a_target . "&jmpToUser=" . $a_user);
2610  exit;
2611  } else {
2612  if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
2613  ilUtil::sendFailure(sprintf(
2614  $lng->txt("msg_no_perm_read_item"),
2616  ), true);
2618  }
2619  }
2620  $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2621  }
global $DIC
Definition: saml.php:7
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupTitle($a_id)
lookup object title
static _lookupObjId($a_id)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
exit
Definition: backend.php:16
const USER_FOLDER_ID
Class ilObjUserFolder.
static redirect($a_script)
+ Here is the call graph for this function:

◆ activateUsersObject()

ilObjUserFolderGUI::activateUsersObject ( )

Activate users.

Definition at line 766 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

767  {
768  $_POST["selectedAction"] = "activate";
769  $this->showActionConfirmation($_POST["selectedAction"]);
770  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ addToClipboardObject()

ilObjUserFolderGUI::addToClipboardObject ( )
protected

Definition at line 2852 of file class.ilObjUserFolderGUI.php.

References $_POST, $GLOBALS, $users, ilUserClipboard\getInstance(), and ilUtil\sendFailure().

2853  {
2854  $users = (array) $_POST['id'];
2855  if (!count($users)) {
2856  ilUtil::sendFailure($this->lng->txt('select_one'), true);
2857  $this->ctrl->redirect($this, 'view');
2858  }
2859  include_once './Services/User/classes/class.ilUserClipboard.php';
2860  $clip = ilUserClipboard::getInstance($GLOBALS['DIC']['ilUser']->getId());
2861  $clip->add($users);
2862  $clip->save();
2863 
2864  ilUtil::sendSuccess($this->lng->txt('clipboard_user_added'), true);
2865  $this->ctrl->redirect($this, 'view');
2866  }
static getInstance($a_usr_id)
Get singelton instance.
$users
Definition: authpage.php:44
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
+ Here is the call graph for this function:

◆ addToExternalSettingsForm()

ilObjUserFolderGUI::addToExternalSettingsForm (   $a_form_id)

Definition at line 2819 of file class.ilObjUserFolderGUI.php.

References ilSecuritySettings\_getInstance(), ilAdministrationSettingsFormHandler\FORM_SECURITY, and ilAdministrationSettingsFormHandler\VALUE_BOOL.

2820  {
2821  switch ($a_form_id) {
2823 
2824  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
2825  $security = ilSecuritySettings::_getInstance();
2826 
2827  $fields = array();
2828 
2829  $subitems = array(
2830  'ps_password_change_on_first_login_enabled' => array($security->isPasswordChangeOnFirstLoginEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
2831  'ps_password_must_not_contain_loginame' => array((bool) $security->getPasswordMustNotContainLoginnameStatus(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
2832  'ps_password_chars_and_numbers_enabled' => array($security->isPasswordCharsAndNumbersEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
2833  'ps_password_special_chars_enabled' => array($security->isPasswordSpecialCharsEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
2834  'ps_password_min_length' => (int) $security->getPasswordMinLength(),
2835  'ps_password_max_length' => (int) $security->getPasswordMaxLength(),
2836  'ps_password_uppercase_chars_num' => (int) $security->getPasswordNumberOfUppercaseChars(),
2837  'ps_password_lowercase_chars_num' => (int) $security->getPasswordNumberOfLowercaseChars(),
2838  'ps_password_max_age' => (int) $security->getPasswordMaxAge()
2839  );
2840  $fields['ps_password_settings'] = array(null, null, $subitems);
2841 
2842  $subitems = array(
2843  'ps_login_max_attempts' => (int) $security->getLoginMaxAttempts(),
2844  'ps_prevent_simultaneous_logins' => array($security->isPreventionOfSimultaneousLoginsEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL)
2845  );
2846  $fields['ps_security_protection'] = array(null, null, $subitems);
2847 
2848  return array(array("generalSettings", $fields));
2849  }
2850  }
static _getInstance()
Get instance of ilSecuritySettings.
+ Here is the call graph for this function:

◆ addUserAutoCompleteObject()

ilObjUserFolderGUI::addUserAutoCompleteObject ( )
protected

Show auto complete results.

Definition at line 274 of file class.ilObjUserFolderGUI.php.

References exit, and ilUserAutoComplete\MAX_ENTRIES.

275  {
276  include_once './Services/User/classes/class.ilUserAutoComplete.php';
277  $auto = new ilUserAutoComplete();
278  $auto->setSearchFields(array('login','firstname','lastname','email', 'second_email'));
279  $auto->enableFieldSearchableCheck(false);
280  $auto->setMoreLinkAvailable(true);
281 
282  if (($_REQUEST['fetchall'])) {
283  $auto->setLimit(ilUserAutoComplete::MAX_ENTRIES);
284  }
285 
286  echo $auto->getList($_REQUEST['term']);
287  exit();
288  }
Auto completion class for user lists.
exit
Definition: backend.php:16

◆ addUserObject()

ilObjUserFolderGUI::addUserObject ( )

Add new user;.

Definition at line 187 of file class.ilObjUserFolderGUI.php.

References $DIC, and $ilCtrl.

188  {
189  global $DIC;
190 
191  $ilCtrl = $DIC['ilCtrl'];
192 
193  $ilCtrl->setParameterByClass("ilobjusergui", "new_type", "usr");
194  $ilCtrl->redirectByClass(array("iladministrationgui", "ilobjusergui"), "create");
195  }
global $DIC
Definition: saml.php:7
global $ilCtrl
Definition: ilias.php:18

◆ applyFilterObject()

ilObjUserFolderGUI::applyFilterObject ( )

Apply filter.

Definition at line 201 of file class.ilObjUserFolderGUI.php.

References $DIC, and ilObjectGUI\viewObject().

202  {
203  global $DIC;
204 
205  $ilTabs = $DIC['ilTabs'];
206 
207  include_once("./Services/User/classes/class.ilUserTableGUI.php");
208  $utab = new ilUserTableGUI($this, "view");
209  $utab->resetOffset();
210  $utab->writeFilterToSession();
211  $this->viewObject();
212  $ilTabs->activateTab("usrf");
213  }
global $DIC
Definition: saml.php:7
viewObject()
list childs of current object
TableGUI class for user administration.
+ Here is the call graph for this function:

◆ cancelDeleteExportFileObject()

ilObjUserFolderGUI::cancelDeleteExportFileObject ( )

cancel deletion of export files

Definition at line 2066 of file class.ilObjUserFolderGUI.php.

2067  {
2068  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2069  }

◆ cancelNewAccountMailObject()

ilObjUserFolderGUI::cancelNewAccountMailObject ( )

Definition at line 2337 of file class.ilObjUserFolderGUI.php.

2338  {
2339  $this->ctrl->redirect($this, "settings");
2340  }

◆ cancelSearchActionObject()

ilObjUserFolderGUI::cancelSearchActionObject ( )

Definition at line 425 of file class.ilObjUserFolderGUI.php.

426  {
427  $this->ctrl->redirectByClass('ilrepositorysearchgui', 'showSearchResults');
428  }

◆ cancelUserFolderActionObject()

ilObjUserFolderGUI::cancelUserFolderActionObject ( )

Definition at line 420 of file class.ilObjUserFolderGUI.php.

421  {
422  $this->ctrl->redirect($this, 'view');
423  }

◆ chooseLetterObject()

ilObjUserFolderGUI::chooseLetterObject ( )

Choose first letter.

Parameters

Definition at line 296 of file class.ilObjUserFolderGUI.php.

References $DIC, and $ilCtrl.

297  {
298  global $DIC;
299 
300  $ilCtrl = $DIC['ilCtrl'];
301 
302  $ilCtrl->redirect($this, "view");
303  }
global $DIC
Definition: saml.php:7
global $ilCtrl
Definition: ilias.php:18

◆ confirmaccessFreeObject()

ilObjUserFolderGUI::confirmaccessFreeObject ( )

Definition at line 499 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $id, and $ilUser.

500  {
501  global $DIC;
502 
503  $rbacsystem = $DIC['rbacsystem'];
504  $ilUser = $DIC['ilUser'];
505 
506  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
507  if (!$rbacsystem->checkAccess('write', $this->object->getRefId())) {
508  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
509  }
510 
511  // FOR ALL SELECTED OBJECTS
512  foreach ($_POST["id"] as $id) {
513  // instatiate correct object class (usr)
514  $obj = $this->ilias->obj_factory->getInstanceByObjId($id);
515  $obj->setTimeLimitUnlimited(1);
516  $obj->setTimeLimitFrom("");
517  $obj->setTimeLimitUntil("");
518  $obj->setTimeLimitMessage(0);
519  $obj->update();
520  }
521 
522  // Feedback
523  ilUtil::sendSuccess($this->lng->txt("access_free_granted"), true);
524 
525  if ($_POST["frsrch"]) {
526  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
527  } else {
528  $this->ctrl->redirect($this, "view");
529  }
530  }
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$_POST["username"]

◆ confirmaccessRestrictObject()

ilObjUserFolderGUI::confirmaccessRestrictObject ( )

Definition at line 585 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $form, $id, $ilUser, IL_CAL_UNIX, initAccessRestrictionForm(), ilUtil\sendFailure(), and setAccessRestrictionObject().

586  {
587  $form = $this->initAccessRestrictionForm();
588  if (!$form->checkInput()) {
589  return $this->setAccessRestrictionObject($form);
590  }
591 
592  $timefrom = $form->getItemByPostVar("from")->getDate()->get(IL_CAL_UNIX);
593  $timeuntil = $form->getItemByPostVar("to")->getDate()->get(IL_CAL_UNIX);
594  if ($timeuntil <= $timefrom) {
595  ilUtil::sendFailure($this->lng->txt("time_limit_not_valid"));
596  return $this->setAccessRestrictionObject($form);
597  }
598 
599  global $DIC;
600 
601  $rbacsystem = $DIC['rbacsystem'];
602  $ilUser = $DIC['ilUser'];
603 
604  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
605  if (!$rbacsystem->checkAccess('write', $this->object->getRefId())) {
606  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
607  }
608 
609  // FOR ALL SELECTED OBJECTS
610  foreach ($_POST["id"] as $id) {
611  // instatiate correct object class (usr)
612  $obj = $this->ilias->obj_factory->getInstanceByObjId($id);
613  $obj->setTimeLimitUnlimited(0);
614  $obj->setTimeLimitFrom($timefrom);
615  $obj->setTimeLimitUntil($timeuntil);
616  $obj->setTimeLimitMessage(0);
617  $obj->update();
618  }
619 
620  // Feedback
621  ilUtil::sendSuccess($this->lng->txt("access_restricted"), true);
622 
623  if ($_POST["frsrch"]) {
624  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
625  } else {
626  $this->ctrl->redirect($this, "view");
627  }
628  }
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
const IL_CAL_UNIX
if(isset($_POST['submit'])) $form
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
initAccessRestrictionForm($a_from_search=false)
$_POST["username"]
setAccessRestrictionObject($a_form=null, $a_from_search=false)
+ Here is the call graph for this function:

◆ confirmactivateObject()

ilObjUserFolderGUI::confirmactivateObject ( )

Set the selected users active.

public

Definition at line 435 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $id, and $ilUser.

436  {
437  global $DIC;
438 
439  $rbacsystem = $DIC['rbacsystem'];
440  $ilUser = $DIC['ilUser'];
441 
442  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
443  if (!$rbacsystem->checkAccess('write', $this->object->getRefId())) {
444  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
445  }
446 
447  // FOR ALL SELECTED OBJECTS
448  foreach ($_POST["id"] as $id) {
449  // instatiate correct object class (usr)
450  $obj = &$this->ilias->obj_factory->getInstanceByObjId($id);
451  $obj->setActive(true, $ilUser->getId());
452  $obj->update();
453  }
454 
455  ilUtil::sendSuccess($this->lng->txt("user_activated"), true);
456 
457  if ($_POST["frsrch"]) {
458  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
459  } else {
460  $this->ctrl->redirect($this, "view");
461  }
462  }
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$_POST["username"]

◆ confirmdeactivateObject()

ilObjUserFolderGUI::confirmdeactivateObject ( )

Set the selected users inactive.

public

Definition at line 469 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $id, and $ilUser.

470  {
471  global $DIC;
472 
473  $rbacsystem = $DIC['rbacsystem'];
474  $ilUser = $DIC['ilUser'];
475 
476  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
477  if (!$rbacsystem->checkAccess('write', $this->object->getRefId())) {
478  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
479  }
480 
481  // FOR ALL SELECTED OBJECTS
482  foreach ($_POST["id"] as $id) {
483  // instatiate correct object class (usr)
484  $obj = &$this->ilias->obj_factory->getInstanceByObjId($id);
485  $obj->setActive(false, $ilUser->getId());
486  $obj->update();
487  }
488 
489  // Feedback
490  ilUtil::sendSuccess($this->lng->txt("user_deactivated"), true);
491 
492  if ($_POST["frsrch"]) {
493  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
494  } else {
495  $this->ctrl->redirect($this, "view");
496  }
497  }
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$_POST["username"]

◆ confirmDeleteExportFileObject()

ilObjUserFolderGUI::confirmDeleteExportFileObject ( )

confirmation screen for export file deletion

Definition at line 2040 of file class.ilObjUserFolderGUI.php.

References $_POST.

2041  {
2042  if (!isset($_POST["file"])) {
2043  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
2044  }
2045 
2046  // display confirmation message
2047  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
2048  $cgui = new ilConfirmationGUI();
2049  $cgui->setFormAction($this->ctrl->getFormAction($this));
2050  $cgui->setHeaderText($this->lng->txt("info_delete_sure"));
2051  $cgui->setCancel($this->lng->txt("cancel"), "cancelDeleteExportFile");
2052  $cgui->setConfirm($this->lng->txt("confirm"), "deleteExportFile");
2053 
2054  // BEGIN TABLE DATA
2055  foreach ($_POST["file"] as $file) {
2056  $cgui->addItem("file[]", $file, $file, ilObject::_getIcon($this->object->getId()), $this->lng->txt("obj_usrf"));
2057  }
2058 
2059  $this->tpl->setContent($cgui->getHTML());
2060  }
redirection script todo: (a better solution should control the processing via a xml file) ...
$_POST["username"]
Confirmation screen class.

◆ confirmdeleteObject()

ilObjUserFolderGUI::confirmdeleteObject ( )

confirm delete Object

public

Definition at line 635 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $id, $ilCtrl, $ilUser, and ilUtil\sendFailure().

636  {
637  global $DIC;
638 
639  $rbacsystem = $DIC['rbacsystem'];
640  $ilCtrl = $DIC['ilCtrl'];
641  $ilUser = $DIC['ilUser'];
642 
643  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
644  if (!$rbacsystem->checkAccess('delete', $this->object->getRefId())) {
645  ilUtil::sendFailure($this->lng->txt("msg_no_perm_delete"), true);
646  $ilCtrl->redirect($this, "view");
647  }
648 
649  if (in_array($ilUser->getId(), $_POST["id"])) {
650  $this->ilias->raiseError($this->lng->txt("msg_no_delete_yourself"), $this->ilias->error_obj->WARNING);
651  }
652 
653  // FOR ALL SELECTED OBJECTS
654  foreach ($_POST["id"] as $id) {
655  // instatiate correct object class (usr)
656  $obj = &$this->ilias->obj_factory->getInstanceByObjId($id);
657  $obj->delete();
658  }
659 
660  // Feedback
661  ilUtil::sendSuccess($this->lng->txt("user_deleted"), true);
662 
663  if ($_POST["frsrch"]) {
664  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
665  } else {
666  $this->ctrl->redirect($this, "view");
667  }
668  }
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
global $ilCtrl
Definition: ilias.php:18
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ confirmSavedObject()

ilObjUserFolderGUI::confirmSavedObject ( )

Definition at line 1832 of file class.ilObjUserFolderGUI.php.

References saveGlobalUserSettingsObject().

1833  {
1834  $this->saveGlobalUserSettingsObject("save");
1835  }
+ Here is the call graph for this function:

◆ deactivateUsersObject()

ilObjUserFolderGUI::deactivateUsersObject ( )

Deactivate users.

Definition at line 775 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

776  {
777  $_POST["selectedAction"] = "deactivate";
778  $this->showActionConfirmation($_POST["selectedAction"]);
779  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ deleteExportFileObject()

ilObjUserFolderGUI::deleteExportFileObject ( )

delete export files

Definition at line 2075 of file class.ilObjUserFolderGUI.php.

References $_POST.

2076  {
2077  $export_dir = $this->object->getExportDirectory();
2078  foreach ($_POST["file"] as $file) {
2079  $file = basename($file);
2080 
2081  $exp_file = $export_dir . "/" . $file;
2082  if (@is_file($exp_file)) {
2083  unlink($exp_file);
2084  }
2085  }
2086  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2087  }
$_POST["username"]

◆ deleteUsersObject()

ilObjUserFolderGUI::deleteUsersObject ( )

Delete users.

Definition at line 757 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

758  {
759  $_POST["selectedAction"] = "delete";
760  $this->showActionConfirmation($_POST["selectedAction"]);
761  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ downloadExportFileObject()

ilObjUserFolderGUI::downloadExportFileObject ( )

Download selected export files.

Sends a selected export file for download

Definition at line 2021 of file class.ilObjUserFolderGUI.php.

References $_POST, and ilUtil\deliverFile().

2022  {
2023  if (!isset($_POST["file"])) {
2024  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
2025  }
2026 
2027  if (count($_POST["file"]) > 1) {
2028  $this->ilias->raiseError($this->lng->txt("select_max_one_item"), $this->ilias->error_obj->MESSAGE);
2029  }
2030 
2031  $file = basename($_POST["file"][0]);
2032 
2033  $export_dir = $this->object->getExportDirectory();
2034  ilUtil::deliverFile($export_dir . "/" . $file, $file);
2035  }
redirection script todo: (a better solution should control the processing via a xml file) ...
$_POST["username"]
static deliverFile( $a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
+ Here is the call graph for this function:

◆ executeCommand()

ilObjUserFolderGUI::executeCommand ( )

Definition at line 59 of file class.ilObjUserFolderGUI.php.

References $DIC, $ret, getUserMultiCommands(), ilObjectGUI\prepareOutput(), and setSubTabs().

60  {
61  global $DIC;
62 
63  $ilTabs = $DIC['ilTabs'];
64 
65  $next_class = $this->ctrl->getNextClass($this);
66  $cmd = $this->ctrl->getCmd();
67  $this->prepareOutput();
68 
69  switch ($next_class) {
70  case 'ilusertablegui':
71  include_once("./Services/User/classes/class.ilUserTableGUI.php");
72  $u_table = new ilUserTableGUI($this, "view");
73  $u_table->initFilter();
74  $this->ctrl->setReturn($this, 'view');
75  $this->ctrl->forwardCommand($u_table);
76  break;
77 
78  case 'ilpermissiongui':
79  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
80  $perm_gui = new ilPermissionGUI($this);
81  $ret = &$this->ctrl->forwardCommand($perm_gui);
82  break;
83 
84  case 'ilrepositorysearchgui':
85  include_once('./Services/Search/classes/class.ilRepositorySearchGUI.php');
86  $user_search = new ilRepositorySearchGUI();
87  $user_search->setTitle($this->lng->txt("search_user_extended")); // #17502
88  $user_search->enableSearchableCheck(false);
89  $user_search->setUserLimitations(false);
90  $user_search->setCallback(
91  $this,
92  'searchResultHandler',
93  $this->getUserMultiCommands(true)
94  );
95  $this->tabs_gui->setTabActive('search_user_extended');
96  $this->ctrl->setReturn($this, 'view');
97  $ret = &$this->ctrl->forwardCommand($user_search);
98  break;
99 
100  case 'ilaccountcodesgui':
101  $this->tabs_gui->setTabActive('settings');
102  $this->setSubTabs("settings");
103  $ilTabs->activateSubTab("account_codes");
104  include_once("./Services/User/classes/class.ilAccountCodesGUI.php");
105  $acc = new ilAccountCodesGUI($this->ref_id);
106  $this->ctrl->forwardCommand($acc);
107  break;
108 
109  case 'ilcustomuserfieldsgui':
110  $this->tabs_gui->setTabActive('settings');
111  $this->setSubTabs("settings");
112  $ilTabs->activateSubTab("user_defined_fields");
113  include_once("./Services/User/classes/class.ilCustomUserFieldsGUI.php");
114  $cf = new ilCustomUserFieldsGUI();
115  $this->ctrl->forwardCommand($cf);
116  break;
117 
118  case 'iluserstartingpointgui':
119  $this->tabs_gui->setTabActive('settings');
120  $this->setSubTabs("settings");
121  $ilTabs->activateSubTab("starting_points");
122  include_once("./Services/User/classes/class.ilUserStartingPointGUI.php");
123  $cf = new ilUserStartingPointGUI($this->ref_id);
124  $this->ctrl->forwardCommand($cf);
125  break;
126 
127  case 'iluserprofileinfosettingsgui':
128  $this->tabs_gui->setTabActive('settings');
129  $this->setSubTabs("settings");
130  $ilTabs->activateSubTab("user_profile_info");
131  $ps = new ilUserProfileInfoSettingsGUI();
132  $this->ctrl->forwardCommand($ps);
133  break;
134 
135  default:
136  if (!$cmd) {
137  $cmd = "view";
138  }
139  $cmd .= "Object";
140  $this->$cmd();
141 
142  break;
143  }
144  return true;
145  }
setSubTabs($a_tab)
set sub tabs
GUI class for account codes.
global $DIC
Definition: saml.php:7
User profile info settings UI class.
TableGUI class for user administration.
prepareOutput($a_show_subobjects=true)
prepare output
Class ilCustomUserFieldsGUI.
Class ilUserStartingPointGUI.
getUserMultiCommands($a_search_form=false)
$ret
Definition: parser.php:6
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
+ Here is the call graph for this function:

◆ exportObject()

ilObjUserFolderGUI::exportObject ( )

Global user settings.

Allows to define global settings for user accounts

Note: The Global user settings form allows to specify default values for some user preferences. To avoid redundant implementations, specification of default values can be done elsewhere in ILIAS are not supported by this form.

Definition at line 2099 of file class.ilObjUserFolderGUI.php.

References $_GET, $_POST, $DIC, $i, $ilCtrl, $tbl, exit, ilDatePresentation\formatDate(), ilUtil\getImagePath(), IL_CAL_UNIX, and ilUtil\switchColor().

2100  {
2101  global $DIC;
2102 
2103  $ilias = $DIC['ilias'];
2104  $ilCtrl = $DIC['ilCtrl'];
2105 
2106  if ($_POST["cmd"]["export"]) {
2107  $this->object->buildExportFile($_POST["export_type"]);
2108  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2109  exit;
2110  }
2111 
2112  $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.usr_export.html', 'Services/User');
2113 
2114  $export_types = array(
2115  "userfolder_export_excel_x86",
2116  "userfolder_export_csv",
2117  "userfolder_export_xml"
2118  );
2119 
2120  // create table
2121  include_once("./Services/Table/classes/class.ilTableGUI.php");
2122  $tbl = new ilTableGUI();
2123 
2124  // load files templates
2125  $this->tpl->addBlockfile("EXPORT_FILES", "export_files", "tpl.table.html");
2126 
2127  // load template for table content data
2128  $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.usr_export_file_row.html", "Services/User");
2129 
2130  $num = 0;
2131 
2132  $tbl->setTitle($this->lng->txt("userfolder_export_files"));
2133 
2134  $tbl->setHeaderNames(array("", $this->lng->txt("userfolder_export_file"),
2135  $this->lng->txt("userfolder_export_file_size"), $this->lng->txt("date") ));
2136  $tbl->setHeaderVars(array(), $ilCtrl->getParameterArray($this, "export"));
2137 
2138  $tbl->enabled["sort"] = false;
2139  $tbl->setColumnWidth(array("1%", "49%", "25%", "25%"));
2140 
2141  // control
2142  $tbl->setOrderColumn($_GET["sort_by"]);
2143  $tbl->setOrderDirection($_GET["sort_order"]);
2144  $tbl->setLimit($_GET["limit"]);
2145  $tbl->setOffset($_GET["offset"]);
2146  $tbl->setMaxCount($this->maxcount); // ???
2147 
2148 
2149  $this->tpl->setVariable("COLUMN_COUNTS", 4);
2150 
2151  // delete button
2152  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
2153  $this->tpl->setVariable("ALT_ARROW", $this->lng->txt("actions"));
2154  $this->tpl->setCurrentBlock("tbl_action_btn");
2155  $this->tpl->setVariable("BTN_NAME", "confirmDeleteExportFile");
2156  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("delete"));
2157  $this->tpl->parseCurrentBlock();
2158 
2159  $this->tpl->setCurrentBlock("tbl_action_btn");
2160  $this->tpl->setVariable("BTN_NAME", "downloadExportFile");
2161  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("download"));
2162  $this->tpl->parseCurrentBlock();
2163 
2164  // footer
2165  $tbl->setFooter("tblfooter", $this->lng->txt("previous"), $this->lng->txt("next"));
2166  //$tbl->disable("footer");
2167 
2168  $export_files = $this->object->getExportFiles();
2169 
2170  $tbl->setMaxCount(count($export_files));
2171  $export_files = array_slice($export_files, $_GET["offset"], $_GET["limit"]);
2172 
2173  $tbl->render();
2174 
2175  if (count($export_files) > 0) {
2176  $i = 0;
2177  foreach ($export_files as $exp_file) {
2178  $this->tpl->setCurrentBlock("tbl_content");
2179  $this->tpl->setVariable("TXT_FILENAME", $exp_file["filename"]);
2180 
2181  $css_row = ilUtil::switchColor($i++, "tblrow1", "tblrow2");
2182  $this->tpl->setVariable("CSS_ROW", $css_row);
2183 
2184  $this->tpl->setVariable("TXT_SIZE", $exp_file["filesize"]);
2185  $this->tpl->setVariable("CHECKBOX_ID", $exp_file["filename"]);
2186 
2187  $file_arr = explode("__", $exp_file["filename"]);
2188  $this->tpl->setVariable('TXT_DATE', ilDatePresentation::formatDate(new ilDateTime($file_arr[0], IL_CAL_UNIX)));
2189 
2190  $this->tpl->parseCurrentBlock();
2191  }
2192 
2193  $this->tpl->setCurrentBlock("selectall");
2194  $this->tpl->setVariable("SELECT_ALL", $this->lng->txt("select_all"));
2195  $this->tpl->setVariable("CSS_ROW", $css_row);
2196  $this->tpl->parseCurrentBlock();
2197  } //if is_array
2198  /*
2199  else
2200 
2201  {
2202  $this->tpl->setCurrentBlock("notfound");
2203  $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found"));
2204  $this->tpl->setVariable("NUM_COLS", 3);
2205  $this->tpl->parseCurrentBlock();
2206  }
2207  */
2208 
2209  $this->tpl->parseCurrentBlock();
2210 
2211 
2212  foreach ($export_types as $export_type) {
2213  $this->tpl->setCurrentBlock("option");
2214  $this->tpl->setVariable("OPTION_VALUE", $export_type);
2215  $this->tpl->setVariable("OPTION_TEXT", $this->lng->txt($export_type));
2216  $this->tpl->parseCurrentBlock();
2217  }
2218 
2219  $this->tpl->setVariable("EXPORT_BUTTON", $this->lng->txt("create_export_file"));
2220  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
2221  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
$tbl
Definition: example_048.php:81
Class ilTableGUI.
const IL_CAL_UNIX
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
global $ilCtrl
Definition: ilias.php:18
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
Date and time handling
exit
Definition: backend.php:16
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
$i
Definition: disco.tpl.php:19
$_POST["username"]
+ Here is the call graph for this function:

◆ freeAccessObject()

ilObjUserFolderGUI::freeAccessObject ( )

Free access.

Definition at line 793 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

794  {
795  $_POST["selectedAction"] = "accessFree";
796  $this->showActionConfirmation($_POST["selectedAction"]);
797  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ generalSettingsObject()

ilObjUserFolderGUI::generalSettingsObject ( )
protected

Show user account general settings.

Returns

Definition at line 1360 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilSetting, ilSecuritySettings\_getInstance(), ilSessionControl\DEFAULT_MAX_COUNT, ilSessionControl\DEFAULT_MAX_IDLE, ilSessionControl\DEFAULT_MAX_IDLE_AFTER_FIRST_REQUEST, ilSessionControl\DEFAULT_MIN_IDLE, ilUserAccountSettings\getInstance(), initFormGeneralSettings(), and ilSession\SESSION_HANDLING_FIXED.

1361  {
1362  global $DIC;
1363 
1364  $ilSetting = $DIC['ilSetting'];
1365 
1366  $this->initFormGeneralSettings();
1367 
1368  include_once './Services/User/classes/class.ilUserAccountSettings.php';
1370 
1371  $show_blocking_time_in_days = $ilSetting->get('loginname_change_blocking_time') / 86400;
1372  $show_blocking_time_in_days = (float) $show_blocking_time_in_days;
1373 
1374  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1375  $security = ilSecuritySettings::_getInstance();
1376 
1377  $this->form->setValuesByArray(
1378  array(
1379  'lua' => $aset->isLocalUserAdministrationEnabled(),
1380  'lrua' => $aset->isUserAccessRestricted(),
1381  'allow_change_loginname' => (bool) $ilSetting->get('allow_change_loginname'),
1382  'create_history_loginname' => (bool) $ilSetting->get('create_history_loginname'),
1383  'reuse_of_loginnames' => (bool) $ilSetting->get('reuse_of_loginnames'),
1384  'loginname_change_blocking_time' => (float) $show_blocking_time_in_days,
1385  'user_adm_alpha_nav' => (int) $ilSetting->get('user_adm_alpha_nav'),
1386  // 'user_ext_profiles' => (int)$ilSetting->get('user_ext_profiles')
1387  'user_reactivate_code' => (int) $ilSetting->get('user_reactivate_code'),
1388  'user_own_account' => (int) $ilSetting->get('user_delete_own_account'),
1389  'user_own_account_email' => $ilSetting->get('user_delete_own_account_email'),
1390 
1391  'session_handling_type' => $ilSetting->get('session_handling_type', ilSession::SESSION_HANDLING_FIXED),
1392  'session_reminder_enabled' => $ilSetting->get('session_reminder_enabled'),
1393  'session_max_count' => $ilSetting->get('session_max_count', ilSessionControl::DEFAULT_MAX_COUNT),
1394  'session_min_idle' => $ilSetting->get('session_min_idle', ilSessionControl::DEFAULT_MIN_IDLE),
1395  'session_max_idle' => $ilSetting->get('session_max_idle', ilSessionControl::DEFAULT_MAX_IDLE),
1396  'session_max_idle_after_first_request' => $ilSetting->get('session_max_idle_after_first_request', ilSessionControl::DEFAULT_MAX_IDLE_AFTER_FIRST_REQUEST),
1397 
1398  'password_change_on_first_login_enabled' => $security->isPasswordChangeOnFirstLoginEnabled() ? 1 : 0,
1399  'password_must_not_contain_loginame' => $security->getPasswordMustNotContainLoginnameStatus() ? 1 : 0,
1400  'password_chars_and_numbers_enabled' => $security->isPasswordCharsAndNumbersEnabled() ? 1 : 0,
1401  'password_special_chars_enabled' => $security->isPasswordSpecialCharsEnabled() ? 1 : 0 ,
1402  'password_min_length' => $security->getPasswordMinLength(),
1403  'password_max_length' => $security->getPasswordMaxLength(),
1404  'password_ucase_chars_num' => $security->getPasswordNumberOfUppercaseChars(),
1405  'password_lowercase_chars_num' => $security->getPasswordNumberOfLowercaseChars(),
1406  'password_max_age' => $security->getPasswordMaxAge(),
1407 
1408  'login_max_attempts' => $security->getLoginMaxAttempts(),
1409  'ps_prevent_simultaneous_logins' => (int) $security->isPreventionOfSimultaneousLoginsEnabled(),
1410  'password_assistance' => (bool) $ilSetting->get("password_assistance")
1411  ,'letter_avatars' => (int) $ilSetting->get('letter_avatars')
1412  )
1413  );
1414 
1415  $this->tpl->setContent($this->form->getHTML());
1416  }
const DEFAULT_MAX_COUNT
default value for settings that have not been defined in setup or administration yet ...
global $DIC
Definition: saml.php:7
initFormGeneralSettings()
init general settings form
const SESSION_HANDLING_FIXED
global $ilSetting
Definition: privfeed.php:17
static getInstance()
Singelton get instance.
static _getInstance()
Get instance of ilSecuritySettings.
+ Here is the call graph for this function:

◆ getActionUserIds()

ilObjUserFolderGUI::getActionUserIds ( )
protected

Get selected items for table action.

Returns
array

Definition at line 675 of file class.ilObjUserFolderGUI.php.

References $_POST, and ilUserTableGUI\MODE_USER_FOLDER.

Referenced by initAccessRestrictionForm(), mailObject(), showActionConfirmation(), usrExportCsvObject(), usrExportX86Object(), and usrExportXmlObject().

676  {
677  if ($_POST["select_cmd_all"]) {
678  include_once("./Services/User/classes/class.ilUserTableGUI.php");
679  $utab = new ilUserTableGUI($this, "view", ilUserTableGUI::MODE_USER_FOLDER, false);
680  return $utab->getUserIdsForFilter();
681  } else {
682  return $_POST["id"];
683  }
684  }
TableGUI class for user administration.
$_POST["username"]
+ Here is the caller graph for this function:

◆ getAdminTabs()

ilObjUserFolderGUI::getAdminTabs ( )

Definition at line 2376 of file class.ilObjUserFolderGUI.php.

References getTabs().

2377  {
2378  $this->getTabs();
2379  }
+ Here is the call graph for this function:

◆ getImportDir()

ilObjUserFolderGUI::getImportDir ( )

get user import directory name

Definition at line 881 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilUser, ilUtil\getDataDir(), and ilUtil\makeDirParents().

Referenced by importCancelledObject(), importUserRoleAssignmentObject(), and importUsersObject().

882  {
883  // For each user session a different directory must be used to prevent
884  // that one user session overwrites the import data that another session
885  // is currently importing.
886  global $DIC;
887 
888  $ilUser = $DIC['ilUser'];
889  $importDir = ilUtil::getDataDir() . '/user_import/usr_' . $ilUser->getId() . '_' . session_id();
890  ilUtil::makeDirParents($importDir);
891  return $importDir;
892  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18
static getDataDir()
get data directory (outside webspace)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTabs()

ilObjUserFolderGUI::getTabs ( )

get tabs public

Parameters
objecttabs gui object

Definition at line 2386 of file class.ilObjUserFolderGUI.php.

References $DIC.

Referenced by getAdminTabs().

2387  {
2388  include_once 'Services/Tracking/classes/class.ilObjUserTracking.php';
2389 
2390  global $DIC;
2391 
2392  $rbacsystem = $DIC['rbacsystem'];
2393 
2394  if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
2395  $this->tabs_gui->addTarget(
2396  "usrf",
2397  $this->ctrl->getLinkTarget($this, "view"),
2398  array("view","delete","resetFilter", "userAction", ""),
2399  "",
2400  ""
2401  );
2402 
2403  $this->tabs_gui->addTarget(
2404  "search_user_extended",
2405  $this->ctrl->getLinkTargetByClass('ilRepositorySearchGUI', ''),
2406  array(),
2407  "ilrepositorysearchgui",
2408  ""
2409  );
2410  }
2411 
2412  if ($rbacsystem->checkAccess("write", $this->object->getRefId())) {
2413  $this->tabs_gui->addTarget(
2414  "settings",
2415  $this->ctrl->getLinkTarget($this, "generalSettings"),
2416  array('settings','generalSettings','listUserDefinedField','newAccountMail')
2417  );
2418 
2419  $this->tabs_gui->addTarget(
2420  "export",
2421  $this->ctrl->getLinkTarget($this, "export"),
2422  "export",
2423  "",
2424  ""
2425  );
2426 
2427  /* deprecated, JF 27 May 2013
2428  if(ilObjUserTracking::_enabledLearningProgress() &&
2429  ilObjUserTracking::_enabledUserRelatedData())
2430  {
2431  $tabs_gui->addTarget("learning_progress",
2432  $this->ctrl->getLinkTarget($this, "learningProgress"), "learningProgress", "", "");
2433  }
2434  */
2435  }
2436 
2437  if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) {
2438  $this->tabs_gui->addTarget(
2439  "perm_settings",
2440  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"),
2441  array("perm","info","owner"),
2442  'ilpermissiongui'
2443  );
2444  }
2445  }
global $DIC
Definition: saml.php:7
+ Here is the caller graph for this function:

◆ getUserMultiCommands()

ilObjUserFolderGUI::getUserMultiCommands (   $a_search_form = false)

Definition at line 2660 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilUser, and $type.

Referenced by executeCommand().

2661  {
2662  global $DIC;
2663 
2664  $rbacsystem = $DIC['rbacsystem'];
2665  $ilUser = $DIC['ilUser'];
2666 
2667  // see searchResultHandler()
2668  if ($a_search_form) {
2669  $cmds = array(
2670  'activate' => $this->lng->txt('activate'),
2671  'deactivate' => $this->lng->txt('deactivate'),
2672  'accessRestrict' => $this->lng->txt('accessRestrict'),
2673  'accessFree' => $this->lng->txt('accessFree')
2674  );
2675 
2676  if ($rbacsystem->checkAccess('delete', $this->object->getRefId())) {
2677  $cmds["delete"] = $this->lng->txt("delete");
2678  }
2679  }
2680  // show confirmation
2681  else {
2682  $cmds = array(
2683  'activateUsers' => $this->lng->txt('activate'),
2684  'deactivateUsers' => $this->lng->txt('deactivate'),
2685  'restrictAccess' => $this->lng->txt('accessRestrict'),
2686  'freeAccess' => $this->lng->txt('accessFree')
2687  );
2688 
2689  if ($rbacsystem->checkAccess('delete', $this->object->getRefId())) {
2690  $cmds["deleteUsers"] = $this->lng->txt("delete");
2691  }
2692  }
2693 
2694  // no confirmation needed
2695  $export_types = array("userfolder_export_excel_x86", "userfolder_export_csv", "userfolder_export_xml");
2696  foreach ($export_types as $type) {
2697  $cmd = explode("_", $type);
2698  $cmd = array_pop($cmd);
2699  $cmds['usrExport' . ucfirst($cmd)] = $this->lng->txt('export') . ' - ' .
2700  $this->lng->txt($type);
2701  }
2702 
2703  // check if current user may send mails
2704  include_once "Services/Mail/classes/class.ilMail.php";
2705  $mail = new ilMail($ilUser->getId());
2706  if ($rbacsystem->checkAccess('internal_mail', $mail->getMailObjectReferenceId())) {
2707  $cmds["mail"] = $this->lng->txt("send_mail");
2708  }
2709 
2710  $cmds['addToClipboard'] = $this->lng->txt('clipboard_add_btn');
2711 
2712  return $cmds;
2713  }
$type
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18
+ Here is the caller graph for this function:

◆ getUserOwnerId()

ilObjUserFolderGUI::getUserOwnerId ( )

Definition at line 54 of file class.ilObjUserFolderGUI.php.

References USER_FOLDER_ID.

Referenced by importUsersObject().

55  {
56  return $this->user_owner_id ? $this->user_owner_id : USER_FOLDER_ID;
57  }
const USER_FOLDER_ID
Class ilObjUserFolder.
+ Here is the caller graph for this function:

◆ hitsperpageObject()

ilObjUserFolderGUI::hitsperpageObject ( )

Definition at line 1350 of file class.ilObjUserFolderGUI.php.

References ilObjectGUI\viewObject().

1351  {
1352  parent::hitsperpageObject();
1353  $this->viewObject();
1354  }
viewObject()
list childs of current object
+ Here is the call graph for this function:

◆ importCancelledObject()

ilObjUserFolderGUI::importCancelledObject ( )

import cancelled

private

Definition at line 862 of file class.ilObjUserFolderGUI.php.

References $_GET, ilUtil\delDir(), and getImportDir().

863  {
864  // purge user import directory
865  $import_dir = $this->getImportDir();
866  if (@is_dir($import_dir)) {
867  ilUtil::delDir($import_dir);
868  }
869 
870  if (strtolower($_GET["baseClass"]) == 'iladministrationgui') {
871  $this->ctrl->redirect($this, "view");
872  //ilUtil::redirect($this->ctrl->getLinkTarget($this,$return_location));
873  } else {
874  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
875  }
876  }
getImportDir()
get user import directory name
$_GET["client_id"]
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
+ Here is the call graph for this function:

◆ importUserFormObject()

ilObjUserFolderGUI::importUserFormObject ( )

display form for user import

Definition at line 807 of file class.ilObjUserFolderGUI.php.

References $_GET, $DIC, ilObjectGUI\$tpl, and initUserImportForm().

808  {
809  global $DIC;
810 
811  $tpl = $DIC['tpl'];
812  $rbacsystem = $DIC['rbacsystem'];
813 
814  // Blind out tabs for local user import
815  if ($_GET["baseClass"] == 'ilRepositoryGUI') {
816  $this->tabs_gui->clearTargets();
817  }
818 
819  if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
820  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
821  }
822 
823  $this->initUserImportForm();
824  $tpl->setContent($this->form->getHTML());
825  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
redirection script todo: (a better solution should control the processing via a xml file) ...
initUserImportForm()
Init user import form.
+ Here is the call graph for this function:

◆ importUserRoleAssignmentObject()

ilObjUserFolderGUI::importUserRoleAssignmentObject ( )

display form for user import

Definition at line 897 of file class.ilObjUserFolderGUI.php.

References $_GET, $DIC, $i, $id, $ilCtrl, $ilUser, $key, ilObjectGUI\$lng, $n, $path, ilObjectGUI\$rbacreview, ilObjectGUI\$tpl, ilObjectGUI\$tree, ilObjRole\_getAssignUsersStatus(), ilObjUserFolder\_lookupNewAccountMail(), ilUtil\delDir(), ilUtil\formSelect(), ilUtil\getDir(), getImportDir(), IL_EXTRACT_ROLES, IL_IGNORE_ON_CONFLICT, IL_IMPORT_FAILURE, IL_IMPORT_SUCCESS, IL_IMPORT_WARNING, IL_UPDATE_ON_CONFLICT, IL_VERIFY, initUserImportForm(), ilUtil\makeDir(), ilUtil\unzip(), and USER_FOLDER_ID.

898  {
899  global $DIC;
900  ;
901 
902  $ilUser = $DIC['ilUser'];
903  $tpl = $DIC['tpl'];
904  $lng = $DIC['lng'];
905  $ilCtrl = $DIC['ilCtrl'];
906 
907  // Blind out tabs for local user import
908  if ($_GET["baseClass"] == 'ilRepositoryGUI') {
909  $this->tabs_gui->clearTargets();
910  }
911 
912  $this->initUserImportForm();
913  if ($this->form->checkInput()) {
914  include_once './Services/AccessControl/classes/class.ilObjRole.php';
915  include_once './Services/User/classes/class.ilUserImportParser.php';
916 
917  global $DIC;
918 
919  $rbacreview = $DIC['rbacreview'];
920  $rbacsystem = $DIC['rbacsystem'];
921  $tree = $DIC['tree'];
922  $lng = $DIC['lng'];
923 
924 
925  $this->tpl->addBlockfile("ADM_CONTENT", "adm_content", "tpl.usr_import_roles.html", "Services/User");
926 
927  $import_dir = $this->getImportDir();
928 
929  // recreate user import directory
930  if (@is_dir($import_dir)) {
931  ilUtil::delDir($import_dir);
932  }
933  ilUtil::makeDir($import_dir);
934 
935  // move uploaded file to user import directory
936  $file_name = $_FILES["importFile"]["name"];
937  $parts = pathinfo($file_name);
938  $full_path = $import_dir . "/" . $file_name;
939 
940  // check if import file exists
941  if (!is_file($_FILES["importFile"]["tmp_name"])) {
942  ilUtil::delDir($import_dir);
943  $this->ilias->raiseError($this->lng->txt("no_import_file_found"), $this->ilias->error_obj->MESSAGE);
944  }
945  ilUtil::moveUploadedFile(
946  $_FILES["importFile"]["tmp_name"],
947  $_FILES["importFile"]["name"],
948  $full_path
949  );
950 
951  // handle zip file
952  if (strtolower($parts["extension"]) == "zip") {
953  // unzip file
954  ilUtil::unzip($full_path);
955 
956  $xml_file = null;
957  $file_list = ilUtil::getDir($import_dir);
958  foreach ($file_list as $a_file) {
959  if (substr($a_file['entry'], -4) == '.xml') {
960  $xml_file = $import_dir . "/" . $a_file['entry'];
961  break;
962  }
963  }
964  if (is_null($xml_file)) {
965  $subdir = basename($parts["basename"], "." . $parts["extension"]);
966  $xml_file = $import_dir . "/" . $subdir . "/" . $subdir . ".xml";
967  }
968  }
969  // handle xml file
970  else {
971  $xml_file = $full_path;
972  }
973 
974  // check xml file
975  if (!is_file($xml_file)) {
976  ilUtil::delDir($import_dir);
977  $this->ilias->raiseError($this->lng->txt("no_xml_file_found_in_zip")
978  . " " . $subdir . "/" . $subdir . ".xml", $this->ilias->error_obj->MESSAGE);
979  }
980 
981  require_once("./Services/User/classes/class.ilUserImportParser.php");
982 
983  // Verify the data
984  // ---------------
985  $importParser = new ilUserImportParser($xml_file, IL_VERIFY);
986  $importParser->startParsing();
987  switch ($importParser->getErrorLevel()) {
988  case IL_IMPORT_SUCCESS:
989  break;
990  case IL_IMPORT_WARNING:
991  $this->tpl->setVariable("IMPORT_LOG", $importParser->getProtocolAsHTML($lng->txt("verification_warning_log")));
992  break;
993  case IL_IMPORT_FAILURE:
994  ilUtil::delDir($import_dir);
995  $this->ilias->raiseError(
996  $lng->txt("verification_failed") . $importParser->getProtocolAsHTML($lng->txt("verification_failure_log")),
997  $this->ilias->error_obj->MESSAGE
998  );
999  return;
1000  }
1001 
1002  // Create the role selection form
1003  // ------------------------------
1004  $this->tpl->setCurrentBlock("role_selection_form");
1005  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
1006  $this->tpl->setVariable("TXT_IMPORT_USERS", $this->lng->txt("import_users"));
1007  $this->tpl->setVariable("TXT_IMPORT_FILE", $this->lng->txt("import_file"));
1008  $this->tpl->setVariable("IMPORT_FILE", $file_name);
1009  $this->tpl->setVariable("TXT_USER_ELEMENT_COUNT", $this->lng->txt("num_users"));
1010  $this->tpl->setVariable("USER_ELEMENT_COUNT", $importParser->getUserCount());
1011  $this->tpl->setVariable("TXT_ROLE_ASSIGNMENT", $this->lng->txt("role_assignment"));
1012  $this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("import"));
1013  $this->tpl->setVariable("BTN_CANCEL", $this->lng->txt("cancel"));
1014  $this->tpl->setVariable("XML_FILE_NAME", $xml_file);
1015 
1016  // Extract the roles
1017  $importParser = new ilUserImportParser($xml_file, IL_EXTRACT_ROLES);
1018  $importParser->startParsing();
1019  $roles = $importParser->getCollectedRoles();
1020 
1021  // get global roles
1022  $all_gl_roles = $rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
1023  $gl_roles = array();
1024  $roles_of_user = $rbacreview->assignedRoles($ilUser->getId());
1025  foreach ($all_gl_roles as $obj_data) {
1026  // check assignment permission if called from local admin
1027  if ($this->object->getRefId() != USER_FOLDER_ID) {
1028  if (!in_array(SYSTEM_ROLE_ID, $roles_of_user) && !ilObjRole::_getAssignUsersStatus($obj_data['obj_id'])) {
1029  continue;
1030  }
1031  }
1032  // exclude anonymous role from list
1033  if ($obj_data["obj_id"] != ANONYMOUS_ROLE_ID) {
1034  // do not allow to assign users to administrator role if current user does not has SYSTEM_ROLE_ID
1035  if ($obj_data["obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
1036  $gl_roles[$obj_data["obj_id"]] = $obj_data["title"];
1037  }
1038  }
1039  }
1040 
1041  // global roles
1042  $got_globals = false;
1043  foreach ($roles as $role_id => $role) {
1044  if ($role["type"] == "Global") {
1045  if (!$got_globals) {
1046  $got_globals = true;
1047 
1048  $this->tpl->setCurrentBlock("global_role_section");
1049  $this->tpl->setVariable("TXT_GLOBAL_ROLES_IMPORT", $this->lng->txt("roles_of_import_global"));
1050  $this->tpl->setVariable("TXT_GLOBAL_ROLES", $this->lng->txt("assign_global_role"));
1051  }
1052 
1053  // pre selection for role
1054  $pre_select = array_search($role["name"], $gl_roles);
1055  if (!$pre_select) {
1056  switch ($role["name"]) {
1057  case "Administrator": // ILIAS 2/3 Administrator
1058  $pre_select = array_search("Administrator", $gl_roles);
1059  break;
1060 
1061  case "Autor": // ILIAS 2 Author
1062  $pre_select = array_search("User", $gl_roles);
1063  break;
1064 
1065  case "Lerner": // ILIAS 2 Learner
1066  $pre_select = array_search("User", $gl_roles);
1067  break;
1068 
1069  case "Gast": // ILIAS 2 Guest
1070  $pre_select = array_search("Guest", $gl_roles);
1071  break;
1072 
1073  default:
1074  $pre_select = array_search("User", $gl_roles);
1075  break;
1076  }
1077  }
1078  $this->tpl->setCurrentBlock("global_role");
1079  $role_select = ilUtil::formSelect($pre_select, "role_assign[" . $role_id . "]", $gl_roles, false, true);
1080  $this->tpl->setVariable("TXT_IMPORT_GLOBAL_ROLE", $role["name"] . " [" . $role_id . "]");
1081  $this->tpl->setVariable("SELECT_GLOBAL_ROLE", $role_select);
1082  $this->tpl->parseCurrentBlock();
1083  }
1084  }
1085 
1086  // Check if local roles need to be assigned
1087  $got_locals = false;
1088  foreach ($roles as $role_id => $role) {
1089  if ($role["type"] == "Local") {
1090  $got_locals = true;
1091  break;
1092  }
1093  }
1094 
1095  if ($got_locals) {
1096  $this->tpl->setCurrentBlock("local_role_section");
1097  $this->tpl->setVariable("TXT_LOCAL_ROLES_IMPORT", $this->lng->txt("roles_of_import_local"));
1098  $this->tpl->setVariable("TXT_LOCAL_ROLES", $this->lng->txt("assign_local_role"));
1099 
1100 
1101  // get local roles
1102  if ($this->object->getRefId() == USER_FOLDER_ID) {
1103  // The import function has been invoked from the user folder
1104  // object. In this case, we show only matching roles,
1105  // because the user folder object is considered the parent of all
1106  // local roles and may contains thousands of roles on large ILIAS
1107  // installations.
1108  $loc_roles = array();
1109 
1110  $roleMailboxSearch = new \ilRoleMailboxSearch(new \ilMailRfc822AddressParserFactory());
1111  foreach ($roles as $role_id => $role) {
1112  if ($role["type"] == "Local") {
1113  $searchName = (substr($role['name'], 0, 1) == '#') ? $role['name'] : '#' . $role['name'];
1114  $matching_role_ids = $roleMailboxSearch->searchRoleIdsByAddressString($searchName);
1115  foreach ($matching_role_ids as $mid) {
1116  if (!in_array($mid, $loc_roles)) {
1117  $loc_roles[] = $mid;
1118  }
1119  }
1120  }
1121  }
1122  } else {
1123  // The import function has been invoked from a locally
1124  // administrated category. In this case, we show all roles
1125  // contained in the subtree of the category.
1126  $loc_roles = $rbacreview->getAssignableRolesInSubtree($this->object->getRefId());
1127  }
1128  $l_roles = array();
1129 
1130  // create a search array with .
1131  $l_roles_mailbox_searcharray = array();
1132  require_once 'Services/Mail/classes/Address/Type/class.ilMailRoleAddressType.php';
1133  foreach ($loc_roles as $key => $loc_role) {
1134  // fetch context path of role
1135  $rolf = $rbacreview->getFoldersAssignedToRole($loc_role, true);
1136 
1137  // only process role folders that are not set to status "deleted"
1138  // and for which the user has write permissions.
1139  // We also don't show the roles which are in the ROLE_FOLDER_ID folder.
1140  // (The ROLE_FOLDER_ID folder contains the global roles).
1141  if (
1142  !$rbacreview->isDeleted($rolf[0]) &&
1143  $rbacsystem->checkAccess('write', $rolf[0]) &&
1144  $rolf[0] != ROLE_FOLDER_ID
1145  ) {
1146  // A local role is only displayed, if it is contained in the subtree of
1147  // the localy administrated category. If the import function has been
1148  // invoked from the user folder object, we show all local roles, because
1149  // the user folder object is considered the parent of all local roles.
1150  // Thus, if we start from the user folder object, we initialize the
1151  // isInSubtree variable with true. In all other cases it is initialized
1152  // with false, and only set to true if we find the object id of the
1153  // locally administrated category in the tree path to the local role.
1154  $isInSubtree = $this->object->getRefId() == USER_FOLDER_ID;
1155 
1156  $path_array = array();
1157  if ($this->tree->isInTree($rolf[0])) {
1158  // Create path. Paths which have more than 4 segments
1159  // are truncated in the middle.
1160  $tmpPath = $this->tree->getPathFull($rolf[0]);
1161  $tmpPath[] = $rolf[0];//adds target item to list
1162 
1163  for ($i = 1, $n = count($tmpPath) - 1; $i < $n; $i++) {
1164  if ($i < 3 || $i > $n - 3) {
1165  $path_array[] = $tmpPath[$i]['title'];
1166  } elseif ($i == 3 || $i == $n - 3) {
1167  $path_array[] = '...';
1168  }
1169 
1170  $isInSubtree |= $tmpPath[$i]['obj_id'] == $this->object->getId();
1171  }
1172  //revert this path for a better readability in dropdowns #18306
1173  $path = implode(" < ", array_reverse($path_array));
1174  } else {
1175  $path = "<b>Rolefolder " . $rolf[0] . " not found in tree! (Role " . $loc_role . ")</b>";
1176  }
1177  $roleMailboxAddress = (new \ilRoleMailboxAddress($loc_role))->value();
1178  $l_roles[$loc_role] = $roleMailboxAddress . ', ' . $path;
1179  }
1180  } //foreach role
1181 
1182  $l_roles[""] = "";
1183  natcasesort($l_roles);
1184  $l_roles[""] = $this->lng->txt("usrimport_ignore_role");
1185 
1186  $roleMailboxSearch = new \ilRoleMailboxSearch(new \ilMailRfc822AddressParserFactory());
1187  foreach ($roles as $role_id => $role) {
1188  if ($role["type"] == "Local") {
1189  $this->tpl->setCurrentBlock("local_role");
1190  $this->tpl->setVariable("TXT_IMPORT_LOCAL_ROLE", $role["name"]);
1191  $searchName = (substr($role['name'], 0, 1) == '#') ? $role['name'] : '#' . $role['name'];
1192  $matching_role_ids = $roleMailboxSearch->searchRoleIdsByAddressString($searchName);
1193  $pre_select = count($matching_role_ids) == 1 ? $matching_role_ids[0] : "";
1194  if ($this->object->getRefId() == USER_FOLDER_ID) {
1195  // There are too many roles in a large ILIAS installation
1196  // that's why whe show only a choice with the the option "ignore",
1197  // and the matching roles.
1198  $selectable_roles = array();
1199  $selectable_roles[""] = $this->lng->txt("usrimport_ignore_role");
1200  foreach ($matching_role_ids as $id) {
1201  $selectable_roles[$id] = $l_roles[$id];
1202  }
1203  $role_select = ilUtil::formSelect($pre_select, "role_assign[" . $role_id . "]", $selectable_roles, false, true);
1204  } else {
1205  $role_select = ilUtil::formSelect($pre_select, "role_assign[" . $role_id . "]", $l_roles, false, true);
1206  }
1207  $this->tpl->setVariable("SELECT_LOCAL_ROLE", $role_select);
1208  $this->tpl->parseCurrentBlock();
1209  }
1210  }
1211  }
1212  //
1213 
1214  $this->tpl->setVariable("TXT_CONFLICT_HANDLING", $lng->txt("conflict_handling"));
1215  $handlers = array(
1216  IL_IGNORE_ON_CONFLICT => "ignore_on_conflict",
1217  IL_UPDATE_ON_CONFLICT => "update_on_conflict"
1218  );
1219  $this->tpl->setVariable("TXT_CONFLICT_HANDLING_INFO", str_replace('\n', '<br>', $this->lng->txt("usrimport_conflict_handling_info")));
1220  $this->tpl->setVariable("TXT_CONFLICT_CHOICE", $lng->txt("conflict_handling"));
1221  $this->tpl->setVariable("SELECT_CONFLICT", ilUtil::formSelect(IL_IGNORE_ON_CONFLICT, "conflict_handling_choice", $handlers, false, false));
1222 
1223  // new account mail
1224  $this->lng->loadLanguageModule("mail");
1225  include_once './Services/User/classes/class.ilObjUserFolder.php';
1226  $amail = ilObjUserFolder::_lookupNewAccountMail($this->lng->getDefaultLanguage());
1227  if (trim($amail["body"]) != "" && trim($amail["subject"]) != "") {
1228  $this->tpl->setCurrentBlock("inform_user");
1229  $this->tpl->setVariable("TXT_ACCOUNT_MAIL", $lng->txt("mail_account_mail"));
1230  if (true) {
1231  $this->tpl->setVariable("SEND_MAIL", " checked=\"checked\"");
1232  }
1233  $this->tpl->setVariable(
1234  "TXT_INFORM_USER_MAIL",
1235  $this->lng->txt("user_send_new_account_mail")
1236  );
1237  $this->tpl->parseCurrentBlock();
1238  }
1239  } else {
1240  $this->form->setValuesByPost();
1241  $tpl->setContent($this->form->getHtml());
1242  }
1243  }
$path
Definition: aliased.php:25
getImportDir()
get user import directory name
global $DIC
Definition: saml.php:7
$_GET["client_id"]
const IL_IMPORT_FAILURE
if(!array_key_exists('StateId', $_REQUEST)) $id
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static getDir($a_dir, $a_rec=false, $a_sub_dir="")
get directory
const IL_EXTRACT_ROLES
const IL_IMPORT_WARNING
static _getAssignUsersStatus($a_role_id)
global $ilCtrl
Definition: ilias.php:18
const IL_IMPORT_SUCCESS
Class ilMailRfc822AddressParserFactory.
static _lookupNewAccountMail($a_lang)
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$n
Definition: RandomTest.php:85
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
const IL_VERIFY
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.
$i
Definition: disco.tpl.php:19
const USER_FOLDER_ID
Class ilObjUserFolder.
initUserImportForm()
Init user import form.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
$key
Definition: croninfo.php:18
const IL_UPDATE_ON_CONFLICT
const IL_IGNORE_ON_CONFLICT
+ Here is the call graph for this function:

◆ importUsersObject()

ilObjUserFolderGUI::importUsersObject ( )

import users

Definition at line 1248 of file class.ilObjUserFolderGUI.php.

References $_GET, $_POST, $DIC, $ilUser, ilObjectGUI\$lng, ilObjectGUI\$rbacreview, $rule, ilObjectGUI\$tree, ilObjRole\_getAssignUsersStatus(), ilUtil\delDir(), getImportDir(), getUserOwnerId(), IL_IGNORE_ON_CONFLICT, IL_IMPORT_FAILURE, IL_IMPORT_SUCCESS, IL_IMPORT_WARNING, IL_UPDATE_ON_CONFLICT, IL_USER_IMPORT, ilUtil\sendInfo(), and USER_FOLDER_ID.

1249  {
1250  global $DIC;
1251 
1252  $rbacreview = $DIC['rbacreview'];
1253  $ilUser = $DIC['ilUser'];
1254 
1255  // Blind out tabs for local user import
1256  if ($_GET["baseClass"] == 'ilRepositoryGUI') {
1257  $this->tabs_gui->clearTargets();
1258  }
1259 
1260  include_once './Services/AccessControl/classes/class.ilObjRole.php';
1261  include_once './Services/User/classes/class.ilUserImportParser.php';
1262 
1263  global $DIC;
1264 
1265  $rbacreview = $DIC['rbacreview'];
1266  $rbacsystem = $DIC['rbacsystem'];
1267  $tree = $DIC['tree'];
1268  $lng = $DIC['lng'];
1269 
1270  switch ($_POST["conflict_handling_choice"]) {
1271  case "update_on_conflict":
1273  break;
1274  case "ignore_on_conflict":
1275  default:
1277  break;
1278  }
1279  $importParser = new ilUserImportParser($_POST["xml_file"], IL_USER_IMPORT, $rule);
1280  $importParser->setFolderId($this->getUserOwnerId());
1281  $import_dir = $this->getImportDir();
1282 
1283  // Catch hack attempts
1284  // We check here again, if the role folders are in the tree, and if the
1285  // user has permission on the roles.
1286  if ($_POST["role_assign"]) {
1287  $global_roles = $rbacreview->getGlobalRoles();
1288  $roles_of_user = $rbacreview->assignedRoles($ilUser->getId());
1289  foreach ($_POST["role_assign"] as $role_id) {
1290  if ($role_id != "") {
1291  if (in_array($role_id, $global_roles)) {
1292  if (!in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
1293  if ($role_id == SYSTEM_ROLE_ID && !in_array(SYSTEM_ROLE_ID, $roles_of_user)
1294  || ($this->object->getRefId() != USER_FOLDER_ID
1295  && !ilObjRole::_getAssignUsersStatus($role_id))
1296  ) {
1297  ilUtil::delDir($import_dir);
1298  $this->ilias->raiseError(
1299  $this->lng->txt("usrimport_with_specified_role_not_permitted"),
1300  $this->ilias->error_obj->MESSAGE
1301  );
1302  }
1303  }
1304  } else {
1305  $rolf = $rbacreview->getFoldersAssignedToRole($role_id, true);
1306  if ($rbacreview->isDeleted($rolf[0])
1307  || !$rbacsystem->checkAccess('write', $rolf[0])) {
1308  ilUtil::delDir($import_dir);
1309  $this->ilias->raiseError(
1310  $this->lng->txt("usrimport_with_specified_role_not_permitted"),
1311  $this->ilias->error_obj->MESSAGE
1312  );
1313  return;
1314  }
1315  }
1316  }
1317  }
1318  }
1319 
1320  $importParser->setRoleAssignment($_POST["role_assign"]);
1321  $importParser->startParsing();
1322 
1323  // purge user import directory
1324  ilUtil::delDir($import_dir);
1325 
1326  switch ($importParser->getErrorLevel()) {
1327  case IL_IMPORT_SUCCESS:
1328  ilUtil::sendSuccess($this->lng->txt("user_imported"), true);
1329  break;
1330  case IL_IMPORT_WARNING:
1331  ilUtil::sendInfo($this->lng->txt("user_imported_with_warnings") . $importParser->getProtocolAsHTML($lng->txt("import_warning_log")), true);
1332  break;
1333  case IL_IMPORT_FAILURE:
1334  $this->ilias->raiseError(
1335  $this->lng->txt("user_import_failed")
1336  . $importParser->getProtocolAsHTML($lng->txt("import_failure_log")),
1337  $this->ilias->error_obj->MESSAGE
1338  );
1339  break;
1340  }
1341 
1342  if (strtolower($_GET["baseClass"]) == "iladministrationgui") {
1343  $this->ctrl->redirect($this, "view");
1344  //ilUtil::redirect($this->ctrl->getLinkTarget($this));
1345  } else {
1346  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
1347  }
1348  }
getImportDir()
get user import directory name
global $DIC
Definition: saml.php:7
$_GET["client_id"]
const IL_USER_IMPORT
const IL_IMPORT_FAILURE
const IL_IMPORT_WARNING
static _getAssignUsersStatus($a_role_id)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
const IL_IMPORT_SUCCESS
$rule
Definition: showstats.php:43
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
const USER_FOLDER_ID
Class ilObjUserFolder.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
$_POST["username"]
const IL_UPDATE_ON_CONFLICT
const IL_IGNORE_ON_CONFLICT
+ Here is the call graph for this function:

◆ initAccessRestrictionForm()

ilObjUserFolderGUI::initAccessRestrictionForm (   $a_from_search = false)
protected

Definition at line 543 of file class.ilObjUserFolderGUI.php.

References $_POST, $form, $from, getActionUserIds(), ilUtil\sendFailure(), ilFormPropertyGUI\setRequired(), and ilObjectGUI\viewObject().

Referenced by confirmaccessRestrictObject(), and setAccessRestrictionObject().

544  {
545  $user_ids = $this->getActionUserIds();
546  if (!$user_ids) {
547  ilUtil::sendFailure($this->lng->txt('select_one'));
548  return $this->viewObject();
549  }
550 
551  include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
552  $form = new ilPropertyFormGUI();
553  $form->setTitle($this->lng->txt("time_limit_add_time_limit_for_selected"));
554  $form->setFormAction($this->ctrl->getFormAction($this, "confirmaccessRestrict"));
555 
556  $from = new ilDateTimeInputGUI($this->lng->txt("access_from"), "from");
557  $from->setShowTime(true);
558  $from->setRequired(true);
559  $form->addItem($from);
560 
561  $to = new ilDateTimeInputGUI($this->lng->txt("access_until"), "to");
562  $to->setRequired(true);
563  $to->setShowTime(true);
564  $form->addItem($to);
565 
566  $form->addCommandButton("confirmaccessRestrict", $this->lng->txt("confirm"));
567  $form->addCommandButton("view", $this->lng->txt("cancel"));
568 
569  foreach ($user_ids as $user_id) {
570  $ufield = new ilHiddenInputGUI("id[]");
571  $ufield->setValue($user_id);
572  $form->addItem($ufield);
573  }
574 
575  // return to search?
576  if ($a_from_search || $_POST["frsrch"]) {
577  $field = new ilHiddenInputGUI("frsrch");
578  $field->setValue(1);
579  $form->addItem($field);
580  }
581 
582  return $form;
583  }
This class represents a property form user interface.
$from
viewObject()
list childs of current object
This class represents a date/time property in a property form.
getActionUserIds()
Get selected items for table action.
This class represents a hidden form property in a property form.
if(isset($_POST['submit'])) $form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormGeneralSettings()

ilObjUserFolderGUI::initFormGeneralSettings ( )
protected

init general settings form

Returns

Definition at line 1540 of file class.ilObjUserFolderGUI.php.

References $code, $DIC, $ilSetting, $log, $pass, $text, $time, ilSubEnabledFormPropertyGUI\addSubItem(), ilNumberInputGUI\allowDecimals(), ilSessionControl\DEFAULT_ALLOW_CLIENT_MAINTENANCE, ilSession\getSessionExpireValue(), ilDatePresentation\secondsToString(), ilSession\SESSION_HANDLING_FIXED, ilSession\SESSION_HANDLING_LOAD_DEPENDENT, ilRadioOption\setInfo(), ilFormPropertyGUI\setInfo(), ilTextInputGUI\setMaxLength(), setSubTabs(), ilCheckboxInputGUI\setValue(), and ilNonEditableValueGUI\setValue().

Referenced by generalSettingsObject(), and saveGeneralSettingsObject().

1541  {
1542  global $DIC;
1543 
1544  $ilSetting = $DIC['ilSetting'];
1545 
1546  $this->setSubTabs('settings');
1547  $this->tabs_gui->setTabActive('settings');
1548  $this->tabs_gui->setSubTabActive('general_settings');
1549 
1550  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1551  $this->form = new ilPropertyFormGUI();
1552  $this->form->setFormAction($this->ctrl->getFormAction($this, 'saveGeneralSettings'));
1553 
1554  $this->form->setTitle($this->lng->txt('general_settings'));
1555 
1556  $lua = new ilCheckboxInputGUI($this->lng->txt('enable_local_user_administration'), 'lua');
1557  $lua->setInfo($this->lng->txt('enable_local_user_administration_info'));
1558  $lua->setValue(1);
1559  $this->form->addItem($lua);
1560 
1561  $lrua = new ilCheckboxInputGUI($this->lng->txt('restrict_user_access'), 'lrua');
1562  $lrua->setInfo($this->lng->txt('restrict_user_access_info'));
1563  $lrua->setValue(1);
1564  $this->form->addItem($lrua);
1565 
1566  // enable alphabetical navigation in user administration
1567  $alph = new ilCheckboxInputGUI($this->lng->txt('user_adm_enable_alpha_nav'), 'user_adm_alpha_nav');
1568  //$alph->setInfo($this->lng->txt('restrict_user_access_info'));
1569  $alph->setValue(1);
1570  $this->form->addItem($alph);
1571 
1572  // account codes
1573  $code = new ilCheckboxInputGUI($this->lng->txt("user_account_code_setting"), "user_reactivate_code");
1574  $code->setInfo($this->lng->txt('user_account_code_setting_info'));
1575  $this->form->addItem($code);
1576 
1577  // delete own account
1578  $own = new ilCheckboxInputGUI($this->lng->txt("user_allow_delete_own_account"), "user_own_account");
1579  $this->form->addItem($own);
1580  $own_email = new ilEMailInputGUI($this->lng->txt("user_delete_own_account_notification_email"), "user_own_account_email");
1581  $own->addSubItem($own_email);
1582 
1583 
1584  // BEGIN SESSION SETTINGS
1585 
1586  // create session handling radio group
1587  $ssettings = new ilRadioGroupInputGUI($this->lng->txt('sess_mode'), 'session_handling_type');
1588 
1589  // first option, fixed session duration
1590  $fixed = new ilRadioOption($this->lng->txt('sess_fixed_duration'), ilSession::SESSION_HANDLING_FIXED);
1591 
1592  // create session reminder subform
1593  $cb = new ilCheckboxInputGUI($this->lng->txt("session_reminder"), "session_reminder_enabled");
1594  $expires = ilSession::getSessionExpireValue();
1595  $time = ilDatePresentation::secondsToString($expires, true);
1596  $cb->setInfo($this->lng->txt("session_reminder_info") . "<br />" .
1597  sprintf($this->lng->txt('session_reminder_session_duration'), $time));
1598  $fixed->addSubItem($cb);
1599 
1600  // add session handling to radio group
1601  $ssettings->addOption($fixed);
1602 
1603  // second option, session control
1604  $ldsh = new ilRadioOption($this->lng->txt('sess_load_dependent_session_handling'), ilSession::SESSION_HANDLING_LOAD_DEPENDENT);
1605 
1606  // add session control subform
1607  require_once('Services/Authentication/classes/class.ilSessionControl.php');
1608 
1609  // this is the max count of active sessions
1610  // that are getting started simlutanously
1611  $sub_ti = new ilTextInputGUI($this->lng->txt('session_max_count'), 'session_max_count');
1612  $sub_ti->setMaxLength(5);
1613  $sub_ti->setSize(5);
1614  $sub_ti->setInfo($this->lng->txt('session_max_count_info'));
1615  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1616  $sub_ti->setDisabled(true);
1617  }
1618  $ldsh->addSubItem($sub_ti);
1619 
1620  // after this (min) idle time the session can be deleted,
1621  // if there are further requests for new sessions,
1622  // but max session count is reached yet
1623  $sub_ti = new ilTextInputGUI($this->lng->txt('session_min_idle'), 'session_min_idle');
1624  $sub_ti->setMaxLength(5);
1625  $sub_ti->setSize(5);
1626  $sub_ti->setInfo($this->lng->txt('session_min_idle_info'));
1627  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1628  $sub_ti->setDisabled(true);
1629  }
1630  $ldsh->addSubItem($sub_ti);
1631 
1632  // after this (max) idle timeout the session expires
1633  // and become invalid, so it is not considered anymore
1634  // when calculating current count of active sessions
1635  $sub_ti = new ilTextInputGUI($this->lng->txt('session_max_idle'), 'session_max_idle');
1636  $sub_ti->setMaxLength(5);
1637  $sub_ti->setSize(5);
1638  $sub_ti->setInfo($this->lng->txt('session_max_idle_info'));
1639  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1640  $sub_ti->setDisabled(true);
1641  }
1642  $ldsh->addSubItem($sub_ti);
1643 
1644  // this is the max duration that can elapse between the first and the secnd
1645  // request to the system before the session is immidietly deleted
1646  $sub_ti = new ilTextInputGUI(
1647  $this->lng->txt('session_max_idle_after_first_request'),
1648  'session_max_idle_after_first_request'
1649  );
1650  $sub_ti->setMaxLength(5);
1651  $sub_ti->setSize(5);
1652  $sub_ti->setInfo($this->lng->txt('session_max_idle_after_first_request_info'));
1653  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1654  $sub_ti->setDisabled(true);
1655  }
1656  $ldsh->addSubItem($sub_ti);
1657 
1658  // add session control to radio group
1659  $ssettings->addOption($ldsh);
1660 
1661  // add radio group to form
1662  if ($ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1663  // just shows the status wether the session
1664  //setting maintenance is allowed by setup
1665  $this->form->addItem($ssettings);
1666  } else {
1667  // just shows the status wether the session
1668  //setting maintenance is allowed by setup
1669  $ti = new ilNonEditableValueGUI($this->lng->txt('session_config'), "session_config");
1670  $ti->setValue($this->lng->txt('session_config_maintenance_disabled'));
1671  $ssettings->setDisabled(true);
1672  $ti->addSubItem($ssettings);
1673  $this->form->addItem($ti);
1674  }
1675 
1676  // END SESSION SETTINGS
1677 
1678 
1679  $this->lng->loadLanguageModule('ps');
1680 
1681  $pass = new ilFormSectionHeaderGUI();
1682  $pass->setTitle($this->lng->txt('ps_password_settings'));
1683  $this->form->addItem($pass);
1684 
1685  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_change_on_first_login_enabled'), 'password_change_on_first_login_enabled');
1686  $check->setInfo($this->lng->txt('ps_password_change_on_first_login_enabled_info'));
1687  $this->form->addItem($check);
1688 
1689  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1690 
1691  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_must_not_contain_loginame'), 'password_must_not_contain_loginame');
1692  $check->setInfo($this->lng->txt('ps_password_must_not_contain_loginame_info'));
1693  $this->form->addItem($check);
1694 
1695  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_chars_and_numbers_enabled'), 'password_chars_and_numbers_enabled');
1696  //$check->setOptionTitle($this->lng->txt('ps_password_chars_and_numbers_enabled'));
1697  $check->setInfo($this->lng->txt('ps_password_chars_and_numbers_enabled_info'));
1698  $this->form->addItem($check);
1699 
1700  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_special_chars_enabled'), 'password_special_chars_enabled');
1701  //$check->setOptionTitle($this->lng->txt('ps_password_special_chars_enabled'));
1702  $check->setInfo($this->lng->txt('ps_password_special_chars_enabled_info'));
1703  $this->form->addItem($check);
1704 
1705  $text = new ilNumberInputGUI($this->lng->txt('ps_password_min_length'), 'password_min_length');
1706  $text->setInfo($this->lng->txt('ps_password_min_length_info'));
1707  $text->setSize(1);
1708  $text->setMaxLength(2);
1709  $this->form->addItem($text);
1710 
1711  $text = new ilNumberInputGUI($this->lng->txt('ps_password_max_length'), 'password_max_length');
1712  $text->setInfo($this->lng->txt('ps_password_max_length_info'));
1713  $text->setSize(2);
1714  $text->setMaxLength(3);
1715  $this->form->addItem($text);
1716 
1717  $text = new ilNumberInputGUI($this->lng->txt('ps_password_uppercase_chars_num'), 'password_ucase_chars_num');
1718  $text->setInfo($this->lng->txt('ps_password_uppercase_chars_num_info'));
1719  $text->setMinValue(0);
1720  $text->setSize(2);
1721  $text->setMaxLength(3);
1722  $this->form->addItem($text);
1723 
1724  $text = new ilNumberInputGUI($this->lng->txt('ps_password_lowercase_chars_num'), 'password_lowercase_chars_num');
1725  $text->setInfo($this->lng->txt('ps_password_lowercase_chars_num_info'));
1726  $text->setMinValue(0);
1727  $text->setSize(2);
1728  $text->setMaxLength(3);
1729  $this->form->addItem($text);
1730 
1731  $text = new ilNumberInputGUI($this->lng->txt('ps_password_max_age'), 'password_max_age');
1732  $text->setInfo($this->lng->txt('ps_password_max_age_info'));
1733  $text->setSize(2);
1734  $text->setMaxLength(3);
1735  $this->form->addItem($text);
1736 
1737  // password assistance
1738  $cb = new ilCheckboxInputGUI($this->lng->txt("enable_password_assistance"), "password_assistance");
1739  $cb->setInfo($this->lng->txt("password_assistance_info"));
1740  $this->form->addItem($cb);
1741 
1742  $pass = new ilFormSectionHeaderGUI();
1743  $pass->setTitle($this->lng->txt('ps_security_protection'));
1744  $this->form->addItem($pass);
1745 
1746  $text = new ilNumberInputGUI($this->lng->txt('ps_login_max_attempts'), 'login_max_attempts');
1747  $text->setInfo($this->lng->txt('ps_login_max_attempts_info'));
1748  $text->setSize(1);
1749  $text->setMaxLength(2);
1750  $this->form->addItem($text);
1751 
1752  // prevent login from multiple pcs at the same time
1753  $objCb = new ilCheckboxInputGUI($this->lng->txt('ps_prevent_simultaneous_logins'), 'ps_prevent_simultaneous_logins');
1754  $objCb->setValue(1);
1755  $objCb->setInfo($this->lng->txt('ps_prevent_simultaneous_logins_info'));
1756  $this->form->addItem($objCb);
1757 
1758 
1759 
1760 
1761  $log = new ilFormSectionHeaderGUI();
1762  $log->setTitle($this->lng->txt('loginname_settings'));
1763  $this->form->addItem($log);
1764 
1765  $chbChangeLogin = new ilCheckboxInputGUI($this->lng->txt('allow_change_loginname'), 'allow_change_loginname');
1766  $chbChangeLogin->setValue(1);
1767  $this->form->addItem($chbChangeLogin);
1768  $chbCreateHistory = new ilCheckboxInputGUI($this->lng->txt('history_loginname'), 'create_history_loginname');
1769  $chbCreateHistory->setInfo($this->lng->txt('loginname_history_info'));
1770  $chbCreateHistory->setValue(1);
1771 
1772  $chbChangeLogin->addSubItem($chbCreateHistory);
1773  $chbReuseLoginnames = new ilCheckboxInputGUI($this->lng->txt('reuse_of_loginnames_contained_in_history'), 'reuse_of_loginnames');
1774  $chbReuseLoginnames->setValue(1);
1775  $chbReuseLoginnames->setInfo($this->lng->txt('reuse_of_loginnames_contained_in_history_info'));
1776 
1777  $chbChangeLogin->addSubItem($chbReuseLoginnames);
1778  $chbChangeBlockingTime = new ilNumberInputGUI($this->lng->txt('loginname_change_blocking_time'), 'loginname_change_blocking_time');
1779  $chbChangeBlockingTime->allowDecimals(true);
1780  $chbChangeBlockingTime->setSuffix($this->lng->txt('days'));
1781  $chbChangeBlockingTime->setInfo($this->lng->txt('loginname_change_blocking_time_info'));
1782  $chbChangeBlockingTime->setSize(10);
1783  $chbChangeBlockingTime->setMaxLength(10);
1784  $chbChangeLogin->addSubItem($chbChangeBlockingTime);
1785 
1786  $la = new ilCheckboxInputGUI($this->lng->txt('usr_letter_avatars'), 'letter_avatars');
1787  $la->setValue(1);
1788  $la->setInfo($this->lng->txt('usr_letter_avatars_info'));
1789  $this->form->addItem($la);
1790 
1791  $this->form->addCommandButton('saveGeneralSettings', $this->lng->txt('save'));
1792  }
setSubTabs($a_tab)
set sub tabs
This class represents an option in a radio group.
This class represents a property form user interface.
global $DIC
Definition: saml.php:7
This class represents a section header in a property form.
$code
Definition: example_050.php:99
This class represents a checkbox property in a property form.
This class represents a email property in a property form.
const SESSION_HANDLING_FIXED
setInfo($a_info)
Set Info.
allowDecimals($a_value)
Toggle Decimals.
setInfo($a_info)
Set Information Text.
$time
Definition: cron.php:21
This class represents a property in a property form.
static secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
This class represents a number property in a property form.
setValue($a_value)
Set Value.
$text
Definition: errorreport.php:18
This class represents a text property in a property form.
setMaxLength($a_maxlength)
Set Max Length.
This class represents a non editable value in a property form.
global $ilSetting
Definition: privfeed.php:17
const SESSION_HANDLING_LOAD_DEPENDENT
static getSessionExpireValue()
Returns the session expiration value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initLoginSettingsForm()

ilObjUserFolderGUI::initLoginSettingsForm ( )
private

Definition at line 2525 of file class.ilObjUserFolderGUI.php.

References ilNumberInputGUI\allowDecimals(), ilFormGUI\setFormAction(), ilFormPropertyGUI\setInfo(), setSubTabs(), and ilCheckboxInputGUI\setValue().

Referenced by saveLoginnameSettingsObject(), and showLoginnameSettingsObject().

2526  {
2527  $this->setSubTabs('settings');
2528  $this->tabs_gui->setTabActive('settings');
2529  $this->tabs_gui->setSubTabActive('loginname_settings');
2530 
2531  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2532  $this->loginSettingsForm = new ilPropertyFormGUI;
2533  $this->loginSettingsForm->setFormAction($this->ctrl->getFormAction($this, 'saveLoginnameSettings'));
2534  $this->loginSettingsForm->setTitle($this->lng->txt('loginname_settings'));
2535 
2536  $chbChangeLogin = new ilCheckboxInputGUI($this->lng->txt('allow_change_loginname'), 'allow_change_loginname');
2537  $chbChangeLogin->setValue(1);
2538  $this->loginSettingsForm->addItem($chbChangeLogin);
2539  $chbCreateHistory = new ilCheckboxInputGUI($this->lng->txt('history_loginname'), 'create_history_loginname');
2540  $chbCreateHistory->setInfo($this->lng->txt('loginname_history_info'));
2541  $chbCreateHistory->setValue(1);
2542  $chbChangeLogin->addSubItem($chbCreateHistory);
2543  $chbReuseLoginnames = new ilCheckboxInputGUI($this->lng->txt('reuse_of_loginnames_contained_in_history'), 'reuse_of_loginnames');
2544  $chbReuseLoginnames->setValue(1);
2545  $chbReuseLoginnames->setInfo($this->lng->txt('reuse_of_loginnames_contained_in_history_info'));
2546  $chbChangeLogin->addSubItem($chbReuseLoginnames);
2547  $chbChangeBlockingTime = new ilNumberInputGUI($this->lng->txt('loginname_change_blocking_time'), 'loginname_change_blocking_time');
2548  $chbChangeBlockingTime->allowDecimals(true);
2549  $chbChangeBlockingTime->setSuffix($this->lng->txt('days'));
2550  $chbChangeBlockingTime->setInfo($this->lng->txt('loginname_change_blocking_time_info'));
2551  $chbChangeBlockingTime->setSize(10);
2552  $chbChangeBlockingTime->setMaxLength(10);
2553  $chbChangeLogin->addSubItem($chbChangeBlockingTime);
2554 
2555  $this->loginSettingsForm->addCommandButton('saveLoginnameSettings', $this->lng->txt('save'));
2556  }
setSubTabs($a_tab)
set sub tabs
This class represents a property form user interface.
This class represents a checkbox property in a property form.
setFormAction($a_formaction)
Set FormAction.
allowDecimals($a_value)
Toggle Decimals.
setInfo($a_info)
Set Information Text.
This class represents a number property in a property form.
setValue($a_value)
Set Value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initNewAccountMailForm()

ilObjUserFolderGUI::initNewAccountMailForm ( )
protected

Definition at line 2223 of file class.ilObjUserFolderGUI.php.

References $DIC, $form, $header, $ilCtrl, ilObjectGUI\$lng, $title, ilUtil\getImagePath(), ilTextInputGUI\setValue(), ilFileInputGUI\setValue(), and ilTextAreaInputGUI\setValue().

Referenced by newAccountMailObject().

2224  {
2225  global $DIC;
2226 
2227  $lng = $DIC['lng'];
2228  $ilCtrl = $DIC['ilCtrl'];
2229 
2230  $lng->loadLanguageModule("meta");
2231  $lng->loadLanguageModule("mail");
2232 
2233  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2234  $form = new ilPropertyFormGUI();
2235  $form->setFormAction($ilCtrl->getFormAction($this));
2236 
2237  $form->setTitleIcon(ilUtil::getImagePath("icon_mail.svg"));
2238  $form->setTitle($lng->txt("user_new_account_mail"));
2239  $form->setDescription($lng->txt("user_new_account_mail_desc"));
2240 
2241  $langs = $lng->getInstalledLanguages();
2242  foreach ($langs as $lang_key) {
2243  $amail = $this->object->_lookupNewAccountMail($lang_key);
2244 
2245  $title = $lng->txt("meta_l_" . $lang_key);
2246  if ($lang_key == $lng->getDefaultLanguage()) {
2247  $title .= " (" . $lng->txt("default") . ")";
2248  }
2249 
2251  $header->setTitle($title);
2252  $form->addItem($header);
2253 
2254  $subj = new ilTextInputGUI($lng->txt("subject"), "subject_" . $lang_key);
2255  // $subj->setRequired(true);
2256  $subj->setValue($amail["subject"]);
2257  $form->addItem($subj);
2258 
2259  $salg = new ilTextInputGUI($lng->txt("mail_salutation_general"), "sal_g_" . $lang_key);
2260  // $salg->setRequired(true);
2261  $salg->setValue($amail["sal_g"]);
2262  $form->addItem($salg);
2263 
2264  $salf = new ilTextInputGUI($lng->txt("mail_salutation_female"), "sal_f_" . $lang_key);
2265  // $salf->setRequired(true);
2266  $salf->setValue($amail["sal_f"]);
2267  $form->addItem($salf);
2268 
2269  $salm = new ilTextInputGUI($lng->txt("mail_salutation_male"), "sal_m_" . $lang_key);
2270  // $salm->setRequired(true);
2271  $salm->setValue($amail["sal_m"]);
2272  $form->addItem($salm);
2273 
2274  $body = new ilTextAreaInputGUI($lng->txt("message_content"), "body_" . $lang_key);
2275  // $body->setRequired(true);
2276  $body->setValue($amail["body"]);
2277  $body->setRows(10);
2278  $body->setCols(100);
2279  $form->addItem($body);
2280 
2281  $att = new ilFileInputGUI($lng->txt("attachment"), "att_" . $lang_key);
2282  $att->setAllowDeletion(true);
2283  if ($amail["att_file"]) {
2284  $att->setValue($amail["att_file"]);
2285  }
2286  $form->addItem($att);
2287  }
2288 
2289  $form->addCommandButton("saveNewAccountMail", $lng->txt("save"));
2290  $form->addCommandButton("cancelNewAccountMail", $lng->txt("cancel"));
2291 
2292  return $form;
2293  }
This class represents a property form user interface.
global $DIC
Definition: saml.php:7
This class represents a section header in a property form.
This class represents a file property in a property form.
setValue($a_value)
Set Value.
global $ilCtrl
Definition: ilias.php:18
setValue($a_value)
Set Value.
if(isset($_POST['submit'])) $form
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
This class represents a text property in a property form.
This class represents a text area property in a property form.
setValue($a_value)
Set Value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initUserImportForm()

ilObjUserFolderGUI::initUserImportForm ( )

Init user import form.

Parameters
int$a_modeEdit Mode

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

References $DIC, $ilCtrl, ilObjectGUI\$lng, and ilFileInputGUI\setSuffixes().

Referenced by importUserFormObject(), and importUserRoleAssignmentObject().

833  {
834  global $DIC;
835 
836  $lng = $DIC['lng'];
837  $ilCtrl = $DIC['ilCtrl'];
838 
839  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
840  $this->form = new ilPropertyFormGUI();
841 
842  // Import File
843  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
844  $fi = new ilFileInputGUI($lng->txt("import_file"), "importFile");
845  $fi->setSuffixes(array("xml", "zip"));
846  //$fi->enableFileNameSelection();
847  //$fi->setInfo($lng->txt(""));
848  $this->form->addItem($fi);
849 
850  $this->form->addCommandButton("importUserRoleAssignment", $lng->txt("import"));
851  $this->form->addCommandButton("importCancelled", $lng->txt("cancel"));
852 
853  $this->form->setTitle($lng->txt("import_users"));
854  $this->form->setFormAction($ilCtrl->getFormAction($this));
855  }
This class represents a property form user interface.
global $DIC
Definition: saml.php:7
This class represents a file property in a property form.
global $ilCtrl
Definition: ilias.php:18
setSuffixes($a_suffixes)
Set Accepted Suffixes.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jumpToUserObject()

ilObjUserFolderGUI::jumpToUserObject ( )

Jump to edit screen for user.

Definition at line 2626 of file class.ilObjUserFolderGUI.php.

References $_GET, $DIC, $ilCtrl, and ilObject\_lookupType().

2627  {
2628  global $DIC;
2629 
2630  $ilCtrl = $DIC['ilCtrl'];
2631 
2632  if (((int) $_GET["jmpToUser"]) > 0 && ilObject::_lookupType((int) $_GET["jmpToUser"]) == "usr") {
2633  $ilCtrl->setParameterByClass("ilobjusergui", "obj_id", (int) $_GET["jmpToUser"]);
2634  $ilCtrl->redirectByClass("ilobjusergui", "view");
2635  }
2636  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
global $ilCtrl
Definition: ilias.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
+ Here is the call graph for this function:

◆ learningProgressObject()

ilObjUserFolderGUI::learningProgressObject ( )

Definition at line 147 of file class.ilObjUserFolderGUI.php.

References $DIC, $tbl, ilObjectGUI\$tpl, ilObjUserTracking\_enabledLearningProgress(), ilObjUserTracking\_enabledUserRelatedData(), and exit.

148  {
149  global $DIC;
150 
151  $rbacsystem = $DIC['rbacsystem'];
152  $tpl = $DIC['tpl'];
153 
154  // deprecated JF 27 May 2013
155  exit();
156 
157  if (!$rbacsystem->checkAccess("read", $this->object->getRefId()) ||
160  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
161  }
162 
163  include_once "Services/User/classes/class.ilUserLPTableGUI.php";
164  $tbl = new ilUserLPTableGUI($this, "learningProgress", $this->object->getRefId());
165 
166  $tpl->setContent($tbl->getHTML());
167  }
global $DIC
Definition: saml.php:7
$tbl
Definition: example_048.php:81
Learning progress account list for user administration.
static _enabledUserRelatedData()
check wether user related tracking is enabled or not
static _enabledLearningProgress()
check wether learing progress is enabled or not
redirection script todo: (a better solution should control the processing via a xml file) ...
exit
Definition: backend.php:16
+ Here is the call graph for this function:

◆ mailObject()

ilObjUserFolderGUI::mailObject ( )

Definition at line 2748 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilUser, $list, getActionUserIds(), ilMailFormCall\getRedirectTarget(), ilMail\getSavedData(), ilMailingList\MODE_TEMPORARY, ilUtil\redirect(), ilMail\savePostData(), ilUtil\sendFailure(), and ilObjectGUI\viewObject().

Referenced by showActionConfirmation().

2749  {
2750  global $DIC;
2751 
2752  $ilUser = $DIC['ilUser'];
2753 
2754  $user_ids = $this->getActionUserIds();
2755  if (!$user_ids) {
2756  ilUtil::sendFailure($this->lng->txt('select_one'));
2757  return $this->viewObject();
2758  }
2759 
2760  // remove existing (temporary) lists
2761  include_once "Services/Contact/classes/class.ilMailingLists.php";
2762  $list = new ilMailingLists($ilUser);
2763  $list->deleteTemporaryLists();
2764 
2765  // create (temporary) mailing list
2766  include_once "Services/Contact/classes/class.ilMailingList.php";
2767  $list = new ilMailingList($ilUser);
2769  $list->setTitle("-TEMPORARY SYSTEM LIST-");
2770  $list->setDescription("-USER ACCOUNTS MAIL-");
2771  $list->setCreateDate(date("Y-m-d H:i:s"));
2772  $list->insert();
2773  $list_id = $list->getId();
2774 
2775  // after list has been saved...
2776  foreach ($user_ids as $user_id) {
2777  $list->assignUser($user_id);
2778  }
2779 
2780  include_once "Services/Mail/classes/class.ilFormatMail.php";
2781  $umail = new ilFormatMail($ilUser->getId());
2782  $mail_data = $umail->getSavedData();
2783 
2784  if (!is_array($mail_data)) {
2785  $mail_data = array("user_id" => $ilUser->getId());
2786  }
2787 
2788  // ???
2789  // $mail_data = $umail->appendSearchResult(array('#il_ml_'.$list_id), 'to');
2790 
2791  $umail->savePostData(
2792  $mail_data['user_id'],
2793  $mail_data['attachments'],
2794  '#il_ml_' . $list_id, // $mail_data['rcp_to'],
2795  $mail_data['rcp_cc'],
2796  $mail_data['rcp_bcc'],
2797  $mail_data['m_type'],
2798  $mail_data['m_email'],
2799  $mail_data['m_subject'],
2800  $mail_data['m_message'],
2801  $mail_data['use_placeholders'],
2802  $mail_data['tpl_ctx_id'],
2803  $mail_data['tpl_ctx_params']
2804  );
2805 
2806  require_once 'Services/Mail/classes/class.ilMailFormCall.php';
2809  $this,
2810  '',
2811  array(),
2812  array(
2813  'type' => 'search_res'
2814  )
2815  )
2816  );
2817  }
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
global $DIC
Definition: saml.php:7
viewObject()
list childs of current object
getActionUserIds()
Get selected items for table action.
Class UserMail this class handles user mails.
$ilUser
Definition: imgupload.php:18
savePostData( $a_user_id, $a_attachments, $a_rcp_to, $a_rcp_cc, $a_rcp_bcc, $a_m_type, $a_m_email, $a_m_subject, $a_m_message, $a_use_placeholders, $a_tpl_context_id=null, $a_tpl_ctx_params=array())
save post data in table public
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static getRedirectTarget($gui, $cmd, array $gui_params=array(), array $mail_params=array(), array $context_params=array())
static redirect($a_script)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ newAccountMailObject()

ilObjUserFolderGUI::newAccountMailObject ( )

new account mail administration

Definition at line 2298 of file class.ilObjUserFolderGUI.php.

References $DIC, $form, ilObjectGUI\$lng, initNewAccountMailForm(), and setSubTabs().

2299  {
2300  global $DIC;
2301 
2302  $lng = $DIC['lng'];
2303 
2304  $this->setSubTabs('settings');
2305  $this->tabs_gui->setTabActive('settings');
2306  $this->tabs_gui->setSubTabActive('user_new_account_mail');
2307 
2308  $form = $this->initNewAccountMailForm();
2309 
2310  $ftpl = new ilTemplate('tpl.usrf_new_account_mail.html', true, true, 'Services/User');
2311  $ftpl->setVariable("FORM", $form->getHTML());
2312  unset($form);
2313 
2314  // placeholder help text
2315  $ftpl->setVariable("TXT_USE_PLACEHOLDERS", $lng->txt("mail_nacc_use_placeholder"));
2316  $ftpl->setVariable("TXT_MAIL_SALUTATION", $lng->txt("mail_nacc_salutation"));
2317  $ftpl->setVariable("TXT_FIRST_NAME", $lng->txt("firstname"));
2318  $ftpl->setVariable("TXT_LAST_NAME", $lng->txt("lastname"));
2319  $ftpl->setVariable("TXT_EMAIL", $lng->txt("email"));
2320  $ftpl->setVariable("TXT_LOGIN", $lng->txt("mail_nacc_login"));
2321  $ftpl->setVariable("TXT_PASSWORD", $lng->txt("password"));
2322  $ftpl->setVariable("TXT_PASSWORD_BLOCK", $lng->txt("mail_nacc_pw_block"));
2323  $ftpl->setVariable("TXT_NOPASSWORD_BLOCK", $lng->txt("mail_nacc_no_pw_block"));
2324  $ftpl->setVariable("TXT_ADMIN_MAIL", $lng->txt("mail_nacc_admin_mail"));
2325  $ftpl->setVariable("TXT_ILIAS_URL", $lng->txt("mail_nacc_ilias_url"));
2326  $ftpl->setVariable("TXT_CLIENT_NAME", $lng->txt("mail_nacc_client_name"));
2327  $ftpl->setVariable("TXT_TARGET", $lng->txt("mail_nacc_target"));
2328  $ftpl->setVariable("TXT_TARGET_TITLE", $lng->txt("mail_nacc_target_title"));
2329  $ftpl->setVariable("TXT_TARGET_TYPE", $lng->txt("mail_nacc_target_type"));
2330  $ftpl->setVariable("TXT_TARGET_BLOCK", $lng->txt("mail_nacc_target_block"));
2331  $ftpl->setVariable("TXT_IF_TIMELIMIT", $lng->txt("mail_nacc_if_timelimit"));
2332  $ftpl->setVariable("TXT_TIMELIMIT", $lng->txt("mail_nacc_timelimit"));
2333 
2334  $this->tpl->setContent($ftpl->get());
2335  }
setSubTabs($a_tab)
set sub tabs
global $DIC
Definition: saml.php:7
if(isset($_POST['submit'])) $form
special template class to simplify handling of ITX/PEAR
+ Here is the call graph for this function:

◆ resetFilterObject()

ilObjUserFolderGUI::resetFilterObject ( )

Reset filter (note: this function existed before data table filter has been introduced.

Definition at line 173 of file class.ilObjUserFolderGUI.php.

References ilObjectGUI\viewObject().

174  {
175  include_once("./Services/User/classes/class.ilUserTableGUI.php");
176  $utab = new ilUserTableGUI($this, "view");
177  $utab->resetOffset();
178  $utab->resetFilter();
179 
180  // from "old" implementation
181  $this->viewObject(true);
182  }
viewObject()
list childs of current object
TableGUI class for user administration.
+ Here is the call graph for this function:

◆ restrictAccessObject()

ilObjUserFolderGUI::restrictAccessObject ( )

Restrict access.

Definition at line 784 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

785  {
786  $_POST["selectedAction"] = "accessRestrict";
787  $this->showActionConfirmation($_POST["selectedAction"]);
788  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ saveGeneralSettingsObject()

ilObjUserFolderGUI::saveGeneralSettingsObject ( )

Save user account settings.

Returns

Definition at line 1423 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $ilSetting, $ilUser, $valid, ilSecuritySettings\_getInstance(), ilSessionControl\DEFAULT_ALLOW_CLIENT_MAINTENANCE, ilUserAccountSettings\getInstance(), initFormGeneralSettings(), ilUtil\sendFailure(), ilSession\SESSION_HANDLING_FIXED, ilSession\SESSION_HANDLING_LOAD_DEPENDENT, and ilSessionStatistics\updateLimitLog().

1424  {
1425  global $DIC;
1426 
1427  $ilUser = $DIC['ilUser'];
1428  $ilSetting = $DIC['ilSetting'];
1429 
1430  $this->initFormGeneralSettings();
1431  if ($this->form->checkInput()) {
1432  $valid = true;
1433 
1434  if (!strlen($this->form->getInput('loginname_change_blocking_time'))) {
1435  $valid = false;
1436  $this->form->getItemByPostVar('loginname_change_blocking_time')
1437  ->setAlert($this->lng->txt('loginname_change_blocking_time_invalidity_info'));
1438  }
1439 
1440  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1441  $security = ilSecuritySettings::_getInstance();
1442 
1443  // account security settings
1444  $security->setPasswordCharsAndNumbersEnabled((bool) $_POST["password_chars_and_numbers_enabled"]);
1445  $security->setPasswordSpecialCharsEnabled((bool) $_POST["password_special_chars_enabled"]);
1446  $security->setPasswordMinLength((int) $_POST["password_min_length"]);
1447  $security->setPasswordMaxLength((int) $_POST["password_max_length"]);
1448  $security->setPasswordNumberOfUppercaseChars((int) $_POST['password_ucase_chars_num']);
1449  $security->setPasswordNumberOfLowercaseChars((int) $_POST['password_lowercase_chars_num']);
1450  $security->setPasswordMaxAge((int) $_POST["password_max_age"]);
1451  $security->setLoginMaxAttempts((int) $_POST["login_max_attempts"]);
1452  $security->setPreventionOfSimultaneousLogins((bool) $_POST['ps_prevent_simultaneous_logins']);
1453  $security->setPasswordChangeOnFirstLoginEnabled((bool) $_POST['password_change_on_first_login_enabled']);
1454  $security->setPasswordMustNotContainLoginnameStatus((int) $_POST['password_must_not_contain_loginame']);
1455 
1456  if (!$security->validate($this->form)) {
1457  $valid = false;
1458  }
1459 
1460  if ($valid) {
1461  $security->save();
1462 
1463  include_once './Services/User/classes/class.ilUserAccountSettings.php';
1464  ilUserAccountSettings::getInstance()->enableLocalUserAdministration($this->form->getInput('lua'));
1465  ilUserAccountSettings::getInstance()->restrictUserAccess($this->form->getInput('lrua'));
1467 
1468  $ilSetting->set('allow_change_loginname', (int) $this->form->getInput('allow_change_loginname'));
1469  $ilSetting->set('create_history_loginname', (int) $this->form->getInput('create_history_loginname'));
1470  $ilSetting->set('reuse_of_loginnames', (int) $this->form->getInput('reuse_of_loginnames'));
1471  $save_blocking_time_in_seconds = (int) ($this->form->getInput('loginname_change_blocking_time') * 86400);
1472  $ilSetting->set('loginname_change_blocking_time', (int) $save_blocking_time_in_seconds);
1473  $ilSetting->set('user_adm_alpha_nav', (int) $this->form->getInput('user_adm_alpha_nav'));
1474  $ilSetting->set('user_reactivate_code', (int) $this->form->getInput('user_reactivate_code'));
1475 
1476  $ilSetting->set('user_delete_own_account', (int) $this->form->getInput('user_own_account'));
1477  $ilSetting->set('user_delete_own_account_email', $this->form->getInput('user_own_account_email'));
1478 
1479  $ilSetting->set("password_assistance", $this->form->getInput("password_assistance"));
1480 
1481  // BEGIN SESSION SETTINGS
1482  $ilSetting->set(
1483  'session_handling_type',
1484  (int) $this->form->getInput('session_handling_type')
1485  );
1486 
1487  if ($this->form->getInput('session_handling_type') == ilSession::SESSION_HANDLING_FIXED) {
1488  $ilSetting->set(
1489  'session_reminder_enabled',
1490  $this->form->getInput('session_reminder_enabled')
1491  );
1492  } elseif ($this->form->getInput('session_handling_type') == ilSession::SESSION_HANDLING_LOAD_DEPENDENT) {
1493  require_once 'Services/Authentication/classes/class.ilSessionControl.php';
1494  if (
1495  $ilSetting->get(
1496  'session_allow_client_maintenance',
1498  )
1499  ) {
1500  // has to be done BEFORE updating the setting!
1501  include_once "Services/Authentication/classes/class.ilSessionStatistics.php";
1502  ilSessionStatistics::updateLimitLog((int) $this->form->getInput('session_max_count'));
1503 
1504  $ilSetting->set(
1505  'session_max_count',
1506  (int) $this->form->getInput('session_max_count')
1507  );
1508  $ilSetting->set(
1509  'session_min_idle',
1510  (int) $this->form->getInput('session_min_idle')
1511  );
1512  $ilSetting->set(
1513  'session_max_idle',
1514  (int) $this->form->getInput('session_max_idle')
1515  );
1516  $ilSetting->set(
1517  'session_max_idle_after_first_request',
1518  (int) $this->form->getInput('session_max_idle_after_first_request')
1519  );
1520  }
1521  }
1522  // END SESSION SETTINGS
1523  $ilSetting->set('letter_avatars', (int) $this->form->getInput('letter_avatars'));
1524  ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
1525  } else {
1526  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
1527  }
1528  } else {
1529  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
1530  }
1531  $this->form->setValuesByPost();
1532  $this->tpl->setContent($this->form->getHTML());
1533  }
global $DIC
Definition: saml.php:7
$valid
initFormGeneralSettings()
init general settings form
const SESSION_HANDLING_FIXED
static updateLimitLog($a_new_value)
Log max session setting.
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilSetting
Definition: privfeed.php:17
static getInstance()
Singelton get instance.
const SESSION_HANDLING_LOAD_DEPENDENT
static _getInstance()
Get instance of ilSecuritySettings.
$_POST["username"]
+ Here is the call graph for this function:

◆ saveGlobalUserSettingsObject()

ilObjUserFolderGUI::saveGlobalUserSettingsObject (   $action = "")

Definition at line 1837 of file class.ilObjUserFolderGUI.php.

References $_POST, $action, $DIC, $ilSetting, ilObjectGUI\$lng, $valid, ilPrivacySettings\_getInstance(), ilUserSearchOptions\_isSearchable(), ilMemberAgreement\_reset(), ilUserSearchOptions\_saveStatus(), ilUtil\sendFailure(), settingsObject(), and ilUtil\stripSlashes().

Referenced by confirmSavedObject().

1838  {
1839  include_once 'Services/Search/classes/class.ilUserSearchOptions.php';
1840  include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
1841 
1842  global $DIC;
1843 
1844  $ilias = $DIC['ilias'];
1845  $ilSetting = $DIC['ilSetting'];
1846 
1847  // see ilUserFieldSettingsTableGUI
1848  include_once("./Services/User/classes/class.ilUserProfile.php");
1849  $up = new ilUserProfile();
1850  $up->skipField("username");
1851  $field_properties = $up->getStandardFields();
1852  $profile_fields = array_keys($field_properties);
1853 
1854  $valid = true;
1855  foreach ($profile_fields as $field) {
1856  if ($_POST["chb"]["required_" . $field] &&
1857  !(int) $_POST['chb']['visib_reg_' . $field]
1858  ) {
1859  $valid = false;
1860  break;
1861  }
1862  }
1863 
1864  if (!$valid) {
1865  global $DIC;
1866 
1867  $lng = $DIC['lng'];
1868  ilUtil::sendFailure($lng->txt('invalid_visible_required_options_selected'));
1869  $this->confirm_change = 1;
1870  $this->settingsObject();
1871  return;
1872  }
1873 
1874  // For the following fields, the required state can not be changed
1875  $fixed_required_fields = array(
1876  "firstname" => 1,
1877  "lastname" => 1,
1878  "upload" => 0,
1879  "password" => 0,
1880  "language" => 0,
1881  "skin_style" => 0,
1882  "hits_per_page" => 0,
1883  /*"show_users_online" => 0,*/
1884  "hide_own_online_status" => 0
1885  );
1886 
1887  // check if a course export state of any field has been added
1888  $privacy = ilPrivacySettings::_getInstance();
1889  if ($privacy->enabledCourseExport() == true &&
1890  $privacy->courseConfirmationRequired() == true &&
1891  $action != "save") {
1892  foreach ($profile_fields as $field) {
1893  if (!$ilias->getSetting("usr_settings_course_export_" . $field) && $_POST["chb"]["course_export_" . $field] == "1") {
1894  #ilUtil::sendQuestion($this->lng->txt('confirm_message_course_export'));
1895  #$this->confirm_change = 1;
1896  #$this->settingsObject();
1897  #return;
1898  }
1899  }
1900  }
1901  // Reset user confirmation
1902  if ($action == 'save') {
1903  include_once('Services/Membership/classes/class.ilMemberAgreement.php');
1905  }
1906 
1907  foreach ($profile_fields as $field) {
1908  // Enable disable searchable
1909  if (ilUserSearchOptions::_isSearchable($field)) {
1910  ilUserSearchOptions::_saveStatus($field, (bool) $_POST['chb']['searchable_' . $field]);
1911  }
1912 
1913  if (!$_POST["chb"]["visible_" . $field] && !$field_properties[$field]["visible_hide"]) {
1914  $ilias->setSetting("usr_settings_hide_" . $field, "1");
1915  } else {
1916  $ilias->deleteSetting("usr_settings_hide_" . $field);
1917  }
1918 
1919  if (!$_POST["chb"]["changeable_" . $field] && !$field_properties[$field]["changeable_hide"]) {
1920  $ilias->setSetting("usr_settings_disable_" . $field, "1");
1921  } else {
1922  $ilias->deleteSetting("usr_settings_disable_" . $field);
1923  }
1924 
1925  // registration visible
1926  if ((int) $_POST['chb']['visib_reg_' . $field] && !$field_properties[$field]["visib_reg_hide"]) {
1927  $ilSetting->set('usr_settings_visib_reg_' . $field, '1');
1928  } else {
1929  $ilSetting->set('usr_settings_visib_reg_' . $field, '0');
1930  }
1931 
1932  if ((int) $_POST['chb']['visib_lua_' . $field]) {
1933  $ilSetting->set('usr_settings_visib_lua_' . $field, '1');
1934  } else {
1935  $ilSetting->set('usr_settings_visib_lua_' . $field, '0');
1936  }
1937 
1938  if ((int) $_POST['chb']['changeable_lua_' . $field]) {
1939  $ilSetting->set('usr_settings_changeable_lua_' . $field, '1');
1940  } else {
1941  $ilSetting->set('usr_settings_changeable_lua_' . $field, '0');
1942  }
1943 
1944  if ($_POST["chb"]["export_" . $field] && !$field_properties[$field]["export_hide"]) {
1945  $ilias->setSetting("usr_settings_export_" . $field, "1");
1946  } else {
1947  $ilias->deleteSetting("usr_settings_export_" . $field);
1948  }
1949 
1950  // Course export/visibility
1951  if ($_POST["chb"]["course_export_" . $field] && !$field_properties[$field]["course_export_hide"]) {
1952  $ilias->setSetting("usr_settings_course_export_" . $field, "1");
1953  } else {
1954  $ilias->deleteSetting("usr_settings_course_export_" . $field);
1955  }
1956 
1957  // Group export/visibility
1958  if ($_POST["chb"]["group_export_" . $field] && !$field_properties[$field]["group_export_hide"]) {
1959  $ilias->setSetting("usr_settings_group_export_" . $field, "1");
1960  } else {
1961  $ilias->deleteSetting("usr_settings_group_export_" . $field);
1962  }
1963 
1964  $is_fixed = array_key_exists($field, $fixed_required_fields);
1965  if ($is_fixed && $fixed_required_fields[$field] || !$is_fixed && $_POST["chb"]["required_" . $field]) {
1966  $ilias->setSetting("require_" . $field, "1");
1967  } else {
1968  $ilias->deleteSetting("require_" . $field);
1969  }
1970  }
1971 
1972  if ($_POST["select"]["default_hits_per_page"]) {
1973  $ilias->setSetting("hits_per_page", $_POST["select"]["default_hits_per_page"]);
1974  }
1975 
1976  /*if ($_POST["select"]["default_show_users_online"])
1977  {
1978  $ilias->setSetting("show_users_online",$_POST["select"]["default_show_users_online"]);
1979  }*/
1980 
1981  if ($_POST["chb"]["export_preferences"]) {
1982  $ilias->setSetting("usr_settings_export_preferences", $_POST["chb"]["export_preferences"]);
1983  } else {
1984  $ilias->deleteSetting("usr_settings_export_preferences");
1985  }
1986 
1987  $ilias->setSetting('mail_incoming_mail', (int) $_POST['select']['default_mail_incoming_mail']);
1988  $ilias->setSetting('chat_osc_accept_msg', ilUtil::stripSlashes($_POST['select']['default_chat_osc_accept_msg']));
1989  $ilias->setSetting('bs_allow_to_contact_me', ilUtil::stripSlashes($_POST['select']['default_bs_allow_to_contact_me']));
1990  $ilias->setSetting('hide_own_online_status', ilUtil::stripSlashes($_POST['select']['default_hide_own_online_status']));
1991 
1992  ilUtil::sendSuccess($this->lng->txt("usr_settings_saved"));
1993  $this->settingsObject();
1994  }
$action
global $DIC
Definition: saml.php:7
$valid
Class ilUserProfile.
settingsObject()
Global user settings.
static _reset()
Reset all.
static _saveStatus($a_key, $a_enabled)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilSetting
Definition: privfeed.php:17
static _getInstance()
Get instance of ilPrivacySettings.
$_POST["username"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saveLoginnameSettingsObject()

ilObjUserFolderGUI::saveLoginnameSettingsObject ( )

Definition at line 2558 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilSetting, $ilUser, $valid, initLoginSettingsForm(), and ilUtil\sendFailure().

2559  {
2560  global $DIC;
2561 
2562  $ilUser = $DIC['ilUser'];
2563  $ilSetting = $DIC['ilSetting'];
2564 
2565  $this->initLoginSettingsForm();
2566  if ($this->loginSettingsForm->checkInput()) {
2567  $valid = true;
2568 
2569  if (!strlen($this->loginSettingsForm->getInput('loginname_change_blocking_time'))) {
2570  $valid = false;
2571  $this->loginSettingsForm->getItemByPostVar('loginname_change_blocking_time')
2572  ->setAlert($this->lng->txt('loginname_change_blocking_time_invalidity_info'));
2573  }
2574 
2575  if ($valid) {
2576  $save_blocking_time_in_seconds = (int) $this->loginSettingsForm->getInput('loginname_change_blocking_time') * 86400;
2577 
2578  $ilSetting->set('allow_change_loginname', (int) $this->loginSettingsForm->getInput('allow_change_loginname'));
2579  $ilSetting->set('create_history_loginname', (int) $this->loginSettingsForm->getInput('create_history_loginname'));
2580  $ilSetting->set('reuse_of_loginnames', (int) $this->loginSettingsForm->getInput('reuse_of_loginnames'));
2581  $ilSetting->set('loginname_change_blocking_time', (int) $save_blocking_time_in_seconds);
2582 
2583  ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
2584  } else {
2585  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
2586  }
2587  } else {
2588  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
2589  }
2590  $this->loginSettingsForm->setValuesByPost();
2591 
2592  $this->tpl->setVariable('ADM_CONTENT', $this->loginSettingsForm->getHTML());
2593  }
global $DIC
Definition: saml.php:7
$valid
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilSetting
Definition: privfeed.php:17
+ Here is the call graph for this function:

◆ saveNewAccountMailObject()

ilObjUserFolderGUI::saveNewAccountMailObject ( )

Definition at line 2342 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, ilObjectGUI\$lng, and ilUtil\stripSlashes().

2343  {
2344  global $DIC;
2345 
2346  $lng = $DIC['lng'];
2347 
2348  $langs = $lng->getInstalledLanguages();
2349  foreach ($langs as $lang_key) {
2350  $this->object->_writeNewAccountMail(
2351  $lang_key,
2352  ilUtil::stripSlashes($_POST["subject_" . $lang_key]),
2353  ilUtil::stripSlashes($_POST["sal_g_" . $lang_key]),
2354  ilUtil::stripSlashes($_POST["sal_f_" . $lang_key]),
2355  ilUtil::stripSlashes($_POST["sal_m_" . $lang_key]),
2356  ilUtil::stripSlashes($_POST["body_" . $lang_key])
2357  );
2358 
2359  if ($_FILES["att_" . $lang_key]["tmp_name"]) {
2360  $this->object->_updateAccountMailAttachment(
2361  $lang_key,
2362  $_FILES["att_" . $lang_key]["tmp_name"],
2363  $_FILES["att_" . $lang_key]["name"]
2364  );
2365  }
2366 
2367  if ($_POST["att_" . $lang_key . "_delete"]) {
2368  $this->object->_deleteAccountMailAttachment($lang_key);
2369  }
2370  }
2371 
2372  ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
2373  $this->ctrl->redirect($this, "newAccountMail");
2374  }
global $DIC
Definition: saml.php:7
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$_POST["username"]
+ Here is the call graph for this function:

◆ searchResultHandler()

ilObjUserFolderGUI::searchResultHandler (   $a_usr_ids,
  $a_cmd 
)

Handles multi command from repository search gui.

Definition at line 2641 of file class.ilObjUserFolderGUI.php.

References $_POST, ilUtil\sendFailure(), and showActionConfirmation().

2642  {
2643  if (!count((array) $a_usr_ids)) {
2644  ilUtil::sendFailure($this->lng->txt('select_one'));
2645  return false;
2646  }
2647 
2648  $_POST['id'] = $a_usr_ids;
2649 
2650  // no real confirmation here
2651  if (stristr($a_cmd, "export")) {
2652  $cmd = $a_cmd . "Object";
2653  return $this->$cmd();
2654  }
2655 
2656  $_POST['selectedAction'] = $a_cmd;
2657  return $this->showActionConfirmation($a_cmd, true);
2658  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
+ Here is the call graph for this function:

◆ setAccessRestrictionObject()

ilObjUserFolderGUI::setAccessRestrictionObject (   $a_form = null,
  $a_from_search = false 
)

Definition at line 532 of file class.ilObjUserFolderGUI.php.

References initAccessRestrictionForm().

Referenced by confirmaccessRestrictObject(), and showActionConfirmation().

533  {
534  if (!$a_form) {
535  $a_form = $this->initAccessRestrictionForm($a_from_search);
536  }
537  $this->tpl->setContent($a_form->getHTML());
538 
539  // #10963
540  return true;
541  }
initAccessRestrictionForm($a_from_search=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setSubTabs()

ilObjUserFolderGUI::setSubTabs (   $a_tab)

set sub tabs

Definition at line 2451 of file class.ilObjUserFolderGUI.php.

References $DIC, and $ilUser.

Referenced by executeCommand(), initFormGeneralSettings(), initLoginSettingsForm(), newAccountMailObject(), and settingsObject().

2452  {
2453  global $DIC;
2454 
2455  $rbacsystem = $DIC['rbacsystem'];
2456  $ilUser = $DIC['ilUser'];
2457 
2458  switch ($a_tab) {
2459  case "settings":
2460  $this->tabs_gui->addSubTabTarget(
2461  'general_settings',
2462  $this->ctrl->getLinkTarget($this, 'generalSettings'),
2463  'generalSettings',
2464  get_class($this)
2465  );
2466  $this->tabs_gui->addSubTabTarget(
2467  "standard_fields",
2468  $this->ctrl->getLinkTarget($this, 'settings'),
2469  array("settings", "saveGlobalUserSettings"),
2470  get_class($this)
2471  );
2472  $this->tabs_gui->addSubTabTarget(
2473  "user_defined_fields",
2474  $this->ctrl->getLinkTargetByClass("ilcustomuserfieldsgui", "listUserDefinedFields"),
2475  "listUserDefinedFields",
2476  get_class($this)
2477  );
2478  $this->tabs_gui->addSubTabTarget(
2479  "user_new_account_mail",
2480  $this->ctrl->getLinkTarget($this, 'newAccountMail'),
2481  "newAccountMail",
2482  get_class($this)
2483  );
2484 
2485  $this->tabs_gui->addSubTabTarget(
2486  "starting_points",
2487  $this->ctrl->getLinkTargetByClass("iluserstartingpointgui", "startingPoints"),
2488  "startingPoints",
2489  get_class($this)
2490  );
2491 
2492 
2493  $this->tabs_gui->addSubTabTarget(
2494  "user_profile_info",
2495  $this->ctrl->getLinkTargetByClass("ilUserProfileInfoSettingsGUI", ''),
2496  "",
2497  "ilUserProfileInfoSettingsGUI"
2498  );
2499 
2500  #$this->tabs_gui->addSubTab("account_codes", $this->lng->txt("user_account_codes"),
2501  # $this->ctrl->getLinkTargetByClass("ilaccountcodesgui"));
2502  break;
2503  }
2504  }
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18
+ Here is the caller graph for this function:

◆ settingsObject()

ilObjUserFolderGUI::settingsObject ( )

Global user settings.

Allows to define global settings for user accounts

Note: The Global user settings form allows to specify default values for some user preferences. To avoid redundant implementations, specification of default values can be done elsewhere in ILIAS are not supported by this form.

Definition at line 1807 of file class.ilObjUserFolderGUI.php.

References $DIC, ilObjectGUI\$lng, $tab, ilObjectGUI\$tpl, and setSubTabs().

Referenced by saveGlobalUserSettingsObject().

1808  {
1809  global $DIC;
1810 
1811  $tpl = $DIC['tpl'];
1812  $lng = $DIC['lng'];
1813  $ilias = $DIC['ilias'];
1814  $ilTabs = $DIC['ilTabs'];
1815 
1816  include_once 'Services/Search/classes/class.ilUserSearchOptions.php';
1817  $lng->loadLanguageModule("administration");
1818  $lng->loadLanguageModule("mail");
1819  $lng->loadLanguageModule("chatroom");
1820  $this->setSubTabs('settings');
1821  $ilTabs->activateTab('settings');
1822  $ilTabs->activateSubTab('standard_fields');
1823 
1824  include_once("./Services/User/classes/class.ilUserFieldSettingsTableGUI.php");
1825  $tab = new ilUserFieldSettingsTableGUI($this, "settings");
1826  if ($this->confirm_change) {
1827  $tab->setConfirmChange();
1828  }
1829  $tpl->setContent($tab->getHTML());
1830  }
setSubTabs($a_tab)
set sub tabs
global $DIC
Definition: saml.php:7
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUserOwnerId()

ilObjUserFolderGUI::setUserOwnerId (   $a_id)

Definition at line 50 of file class.ilObjUserFolderGUI.php.

51  {
52  $this->user_owner_id = $a_id;
53  }

◆ showActionConfirmation()

ilObjUserFolderGUI::showActionConfirmation (   $action,
  $a_from_search = false 
)

display activation confirmation screen

Definition at line 689 of file class.ilObjUserFolderGUI.php.

References $action, $DIC, $id, $login, ilObjectGUI\$user, data, ilDatePresentation\formatDate(), getActionUserIds(), IL_CAL_DATETIME, mailObject(), and setAccessRestrictionObject().

Referenced by activateUsersObject(), deactivateUsersObject(), deleteUsersObject(), freeAccessObject(), restrictAccessObject(), searchResultHandler(), and userActionObject().

690  {
691  global $DIC;
692 
693  $ilTabs = $DIC['ilTabs'];
694 
695  $user_ids = $this->getActionUserIds();
696  if (!$user_ids) {
697  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
698  }
699 
700  if (!$a_from_search) {
701  $ilTabs->activateTab("obj_usrf");
702  } else {
703  $ilTabs->activateTab("search_user_extended");
704  }
705 
706  if (strcmp($action, "accessRestrict") == 0) {
707  return $this->setAccessRestrictionObject(null, $a_from_search);
708  }
709  if (strcmp($action, "mail") == 0) {
710  return $this->mailObject();
711  }
712 
713  unset($this->data);
714 
715  if (!$a_from_search) {
716  $cancel = "cancelUserFolderAction";
717  } else {
718  $cancel = "cancelSearchAction";
719  }
720 
721  // display confirmation message
722  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
723  $cgui = new ilConfirmationGUI();
724  $cgui->setFormAction($this->ctrl->getFormAction($this));
725  $cgui->setHeaderText($this->lng->txt("info_" . $action . "_sure"));
726  $cgui->setCancel($this->lng->txt("cancel"), $cancel);
727  $cgui->setConfirm($this->lng->txt("confirm"), "confirm" . $action);
728 
729  if ($a_from_search) {
730  $cgui->addHiddenItem("frsrch", 1);
731  }
732 
733  foreach ($user_ids as $id) {
734  $user = new ilObjUser($id);
735 
736  $login = $user->getLastLogin();
737  if (!$login) {
738  $login = $this->lng->txt("never");
739  } else {
741  }
742 
743  $caption = $user->getFullname() . " (" . $user->getLogin() . ")" . ", " .
744  $user->getEmail() . " - " . $this->lng->txt("last_login") . ": " . $login;
745 
746  $cgui->addItem("id[]", $id, $caption);
747  }
748 
749  $this->tpl->setContent($cgui->getHTML());
750 
751  return true;
752  }
const IL_CAL_DATETIME
$action
global $DIC
Definition: saml.php:7
if(!array_key_exists('StateId', $_REQUEST)) $id
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
getActionUserIds()
Get selected items for table action.
Date and time handling
redirection script todo: (a better solution should control the processing via a xml file) ...
$this data['403_header']
$login
Definition: cron.php:13
setAccessRestrictionObject($a_form=null, $a_from_search=false)
Confirmation screen class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showActions()

ilObjUserFolderGUI::showActions (   $with_subobjects = false)

show possible action (form buttons)

Parameters
booleanpublic

Definition at line 312 of file class.ilObjUserFolderGUI.php.

References $_POST, ilObjectGUI\$actions, $d, $DIC, $row, data, ilUtil\getImagePath(), and showPossibleSubObjects().

313  {
314  global $DIC;
315 
316  $rbacsystem = $DIC['rbacsystem'];
317 
318  $operations = array();
319  //var_dump($this->actions);
320  if ($this->actions == "") {
321  $d = array(
322  "delete" => array("name" => "delete", "lng" => "delete"),
323  "activate" => array("name" => "activate", "lng" => "activate"),
324  "deactivate" => array("name" => "deactivate", "lng" => "deactivate"),
325  "accessRestrict" => array("name" => "accessRestrict", "lng" => "accessRestrict"),
326  "accessFree" => array("name" => "accessFree", "lng" => "accessFree"),
327  "export" => array("name" => "export", "lng" => "export")
328  );
329  } else {
330  $d = $this->actions;
331  }
332  foreach ($d as $row) {
333  if ($rbacsystem->checkAccess($row["name"], $this->object->getRefId())) {
334  $operations[] = $row;
335  }
336  }
337 
338  if (count($operations) > 0) {
339  $select = "<select name=\"selectedAction\">\n";
340  foreach ($operations as $val) {
341  $select .= "<option value=\"" . $val["name"] . "\"";
342  if (strcmp($_POST["selectedAction"], $val["name"]) == 0) {
343  $select .= " selected=\"selected\"";
344  }
345  $select .= ">";
346  $select .= $this->lng->txt($val["lng"]);
347  $select .= "</option>";
348  }
349  $select .= "</select>";
350  $this->tpl->setCurrentBlock("tbl_action_select");
351  $this->tpl->setVariable("SELECT_ACTION", $select);
352  $this->tpl->setVariable("BTN_NAME", "userAction");
353  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("submit"));
354  $this->tpl->parseCurrentBlock();
355  }
356 
357  if ($with_subobjects === true) {
358  $subobjs = $this->showPossibleSubObjects();
359  }
360 
361  if ((count($operations) > 0) or $subobjs === true) {
362  $this->tpl->setCurrentBlock("tbl_action_row");
363  $this->tpl->setVariable("COLUMN_COUNTS", count($this->data["cols"]));
364  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
365  $this->tpl->setVariable("ALT_ARROW", $this->lng->txt("actions"));
366  $this->tpl->parseCurrentBlock();
367  }
368  }
global $DIC
Definition: saml.php:7
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$row
showPossibleSubObjects()
show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local...
$this data['403_header']
$_POST["username"]
for($i=6; $i< 13; $i++) for($i=1; $i< 13; $i++) $d
Definition: date.php:296
+ Here is the call graph for this function:

◆ showLoginnameSettingsObject()

ilObjUserFolderGUI::showLoginnameSettingsObject ( )

Definition at line 2506 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilSetting, and initLoginSettingsForm().

2507  {
2508  global $DIC;
2509 
2510  $ilSetting = $DIC['ilSetting'];
2511 
2512  $show_blocking_time_in_days = (int) $ilSetting->get('loginname_change_blocking_time') / 86400;
2513 
2514  $this->initLoginSettingsForm();
2515  $this->loginSettingsForm->setValuesByArray(array(
2516  'allow_change_loginname' => (bool) $ilSetting->get('allow_change_loginname'),
2517  'create_history_loginname' => (bool) $ilSetting->get('create_history_loginname'),
2518  'reuse_of_loginnames' => (bool) $ilSetting->get('reuse_of_loginnames'),
2519  'loginname_change_blocking_time' => (float) $show_blocking_time_in_days
2520  ));
2521 
2522  $this->tpl->setVariable('ADM_CONTENT', $this->loginSettingsForm->getHTML());
2523  }
global $DIC
Definition: saml.php:7
global $ilSetting
Definition: privfeed.php:17
+ Here is the call graph for this function:

◆ showPossibleSubObjects()

ilObjUserFolderGUI::showPossibleSubObjects ( )

show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local role folders

public

Definition at line 376 of file class.ilObjUserFolderGUI.php.

References $d, $DIC, $i, $row, data, and ilUtil\formSelect().

Referenced by showActions().

377  {
378  global $DIC;
379 
380  $rbacsystem = $DIC['rbacsystem'];
381 
382  $d = $this->objDefinition->getCreatableSubObjects($this->object->getType());
383 
384  if (!$rbacsystem->checkAccess('create_usr', $this->object->getRefId())) {
385  unset($d["usr"]);
386  }
387 
388  if (count($d) > 0) {
389  foreach ($d as $row) {
390  $count = 0;
391  if ($row["max"] > 0) {
392  //how many elements are present?
393  for ($i = 0; $i < count($this->data["ctrl"]); $i++) {
394  if ($this->data["ctrl"][$i]["type"] == $row["name"]) {
395  $count++;
396  }
397  }
398  }
399  if ($row["max"] == "" || $count < $row["max"]) {
400  $subobj[] = $row["name"];
401  }
402  }
403  }
404 
405  if (is_array($subobj)) {
406  //build form
407  $opts = ilUtil::formSelect(12, "new_type", $subobj);
408  $this->tpl->setCurrentBlock("add_object");
409  $this->tpl->setVariable("SELECT_OBJTYPE", $opts);
410  $this->tpl->setVariable("BTN_NAME", "create");
411  $this->tpl->setVariable("TXT_ADD", $this->lng->txt("add"));
412  $this->tpl->parseCurrentBlock();
413 
414  return true;
415  }
416 
417  return false;
418  }
global $DIC
Definition: saml.php:7
$row
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.
$this data['403_header']
$i
Definition: disco.tpl.php:19
for($i=6; $i< 13; $i++) for($i=1; $i< 13; $i++) $d
Definition: date.php:296
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ userActionObject()

ilObjUserFolderGUI::userActionObject ( )

Definition at line 799 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

800  {
801  $this->showActionConfirmation($_POST["selectedAction"]);
802  }
showActionConfirmation($action, $a_from_search=false)
display activation confirmation screen
$_POST["username"]
+ Here is the call graph for this function:

◆ usrExportCsvObject()

ilObjUserFolderGUI::usrExportCsvObject ( )

Definition at line 2726 of file class.ilObjUserFolderGUI.php.

References getActionUserIds(), ilUtil\sendFailure(), and ilObjectGUI\viewObject().

2727  {
2728  $user_ids = $this->getActionUserIds();
2729  if (!$user_ids) {
2730  ilUtil::sendFailure($this->lng->txt('select_one'));
2731  return $this->viewObject();
2732  }
2733  $this->object->buildExportFile("userfolder_export_csv", $user_ids);
2734  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2735  }
viewObject()
list childs of current object
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ usrExportX86Object()

ilObjUserFolderGUI::usrExportX86Object ( )

Definition at line 2715 of file class.ilObjUserFolderGUI.php.

References getActionUserIds(), ilUtil\sendFailure(), and ilObjectGUI\viewObject().

2716  {
2717  $user_ids = $this->getActionUserIds();
2718  if (!$user_ids) {
2719  ilUtil::sendFailure($this->lng->txt('select_one'));
2720  return $this->viewObject();
2721  }
2722  $this->object->buildExportFile("userfolder_export_excel_x86", $user_ids);
2723  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2724  }
viewObject()
list childs of current object
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ usrExportXmlObject()

ilObjUserFolderGUI::usrExportXmlObject ( )

Definition at line 2737 of file class.ilObjUserFolderGUI.php.

References getActionUserIds(), ilUtil\sendFailure(), and ilObjectGUI\viewObject().

2738  {
2739  $user_ids = $this->getActionUserIds();
2740  if (!$user_ids) {
2741  ilUtil::sendFailure($this->lng->txt('select_one'));
2742  return $this->viewObject();
2743  }
2744  $this->object->buildExportFile("userfolder_export_xml", $user_ids);
2745  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2746  }
viewObject()
list childs of current object
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ viewObject()

ilObjUserFolderGUI::viewObject (   $reset_filter = false)

list users

public

Definition at line 220 of file class.ilObjUserFolderGUI.php.

References $_GET, $ai, $DIC, $ilSetting, $ilUser, ilObjectGUI\$lng, ilObjectGUI\$tpl, ilObjUser\getFirstLettersOfLastnames(), ilLinkButton\getInstance(), and ilUserAccountSettings\getInstance().

221  {
222  global $DIC;
223 
224  $rbacsystem = $DIC['rbacsystem'];
225  $ilUser = $DIC['ilUser'];
226  $ilToolbar = $DIC['ilToolbar'];
227  $tpl = $DIC['tpl'];
228  $ilSetting = $DIC['ilSetting'];
229  $lng = $DIC['lng'];
230 
231  include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
232 
233  if ($rbacsystem->checkAccess('create_usr', $this->object->getRefId()) ||
234  $rbacsystem->checkAccess('cat_administrate_users', $this->object->getRefId())) {
235  $button = ilLinkButton::getInstance();
236  $button->setCaption("usr_add");
237  $button->setUrl($this->ctrl->getLinkTarget($this, "addUser"));
238  $ilToolbar->addButtonInstance($button);
239 
240  $button = ilLinkButton::getInstance();
241  $button->setCaption("import_users");
242  $button->setUrl($this->ctrl->getLinkTarget($this, "importUserForm"));
243  $ilToolbar->addButtonInstance($button);
244  }
245 
246  // alphabetical navigation
247  include_once './Services/User/classes/class.ilUserAccountSettings.php';
249  if ((int) $ilSetting->get('user_adm_alpha_nav')) {
250  $ilToolbar->addSeparator();
251 
252  // alphabetical navigation
253  include_once("./Services/Form/classes/class.ilAlphabetInputGUI.php");
254  $ai = new ilAlphabetInputGUI("", "first");
255  include_once("./Services/User/classes/class.ilObjUser.php");
257  /*$ai->setLetters(array("A","B","C","D","E","F","G","H","I","J",
258  "K","L","M","N","O","P","Q","R","S","T",
259  "U","V","W","X","Y","Z","1","2","3","4","_",
260  "Ä","Ü","Ö",":",";","+","*","#","§","%","&"));*/
261  $ai->setParentCommand($this, "chooseLetter");
262  $ai->setHighlighted($_GET["letter"]);
263  $ilToolbar->addInputItem($ai, true);
264  }
265 
266  include_once("./Services/User/classes/class.ilUserTableGUI.php");
267  $utab = new ilUserTableGUI($this, "view");
268  $tpl->setContent($utab->getHTML());
269  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
This class represents a text property in a property form.
$ai
Definition: langwiz.php:238
TableGUI class for user administration.
$ilUser
Definition: imgupload.php:18
global $ilSetting
Definition: privfeed.php:17
static getInstance()
Singelton get instance.
static getFirstLettersOfLastnames()
Get first letters of all lastnames.
+ Here is the call graph for this function:

Field Documentation

◆ $ctrl

ilObjUserFolderGUI::$ctrl

Definition at line 22 of file class.ilObjUserFolderGUI.php.

◆ $log

ilObjUserFolderGUI::$log
protected

Definition at line 24 of file class.ilObjUserFolderGUI.php.

Referenced by initFormGeneralSettings().


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