ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
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...
 
 filterUserIdsByRbacOrPositionOfCurrentUser (array $user_ids)
 
 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...
 
 setAccessRestrictionObject ($a_form=null, $a_from_search=false)
 
 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 with new FileSystem implementation More...
 
 importUserRoleAssignmentObject ()
 display form for user import with new FileSystem implementation More...
 
 verifyXmlData ($importParser)
 
 importUsersObject ()
 Import Users with new form implementation. 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 ()
 
 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...
 
 searchUserAccessFilterCallable (array $a_user_ids)
 
 searchResultHandler ($a_usr_ids, $a_cmd)
 Handles multi command from repository search gui. More...
 
 getUserMultiCommands ($a_search_form=false)
 
 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 ()
 viewObject container presentation for "administration -> repository, trash, permissions" 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...
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 

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
 
 $object
 
- 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

 checkAccess ($a_permission)
 
 checkAccessBool ($a_permission)
 
 addUserAutoCompleteObject ()
 Show auto complete results. More...
 
 confirmaccessFreeObject ()
 "access free" More...
 
 initAccessRestrictionForm ($a_from_search=false)
 
 confirmaccessRestrictObject ()
 
 getActionUserIds ()
 Get selected items for table action. More...
 
 generalSettingsObject ()
 Show user account general settings. More...
 
 forceUserPasswordResetObject ()
 
 askForUserPasswordResetObject ()
 
 initFormGeneralSettings ()
 init general settings form More...
 
 performExportObject ()
 
 initNewAccountMailForm ()
 
 usrExportX86Object ()
 Export excel. More...
 
 usrExportCsvObject ()
 Export csv. More...
 
 usrExportXmlObject ()
 Export xml. More...
 
 mailObject ()
 
 addToClipboardObject ()
 Add users to clipboard. More...
 
- 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...
 
 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
 
 $user_settings_config
 
- Protected Attributes inherited from ilObjectGUI
 $ilErr
 
 $locator
 
 $user
 
 $access
 
 $rbacsystem
 
 $settings
 
 $rbacreview
 
 $toolbar
 
 $tmp_import_dir
 
 $tabs_gui = null
 
 $ctrl
 
 $object_service
 
 $favourites
 

Private Member Functions

 checkUserManipulationAccessBool ()
 Check if current user has access to manipulate user data. More...
 
 initUserRoleAssignmentForm ($xml_file_full_path)
 
 handleUploadedFiles ()
 Handles uploaded zip/xmp files with Filesystem implementation. More...
 
 getPasswordPolicySettingsMap (\ilSecuritySettings $security)
 
 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 38 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilCtrl, ILIAS\GlobalScreen\Provider\__construct(), and ilLoggerFactory\getLogger().

39  {
40  global $DIC;
41 
42  $ilCtrl = $DIC['ilCtrl'];
43  // TODO: move this to class.ilias.php
44  define('USER_FOLDER_ID', 7);
45  $this->type = "usrf";
46  parent::__construct($a_data, $a_id, $a_call_by_reference, false);
47 
48  $this->lng->loadLanguageModule('search');
49  $this->lng->loadLanguageModule("user");
50 
51  $ilCtrl->saveParameter($this, "letter");
52 
53  $this->user_settings_config = new ilUserSettingsConfig();
54 
55  $this->log = ilLoggerFactory::getLogger("user");
56  }
global $ilCtrl
Definition: ilias.php:18
__construct(Container $dic, ilPlugin $plugin)
$DIC
Definition: xapitoken.php:46
User settings configuration (what preferences can be visible/changed/...)
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 2312 of file class.ilObjUserFolderGUI.php.

References $_SESSION, and ilUtil\formSelect().

2313  {
2314  $action[-1] = $this->lng->txt('all_users');
2315  $action[1] = $this->lng->txt('usr_active_only');
2316  $action[0] = $this->lng->txt('usr_inactive_only');
2317  $action[2] = $this->lng->txt('usr_limited_access_only');
2318  $action[3] = $this->lng->txt('usr_without_courses');
2319  $action[4] = $this->lng->txt('usr_filter_lastlogin');
2320  $action[5] = $this->lng->txt("usr_filter_coursemember");
2321  $action[6] = $this->lng->txt("usr_filter_groupmember");
2322  $action[7] = $this->lng->txt("usr_filter_role");
2323 
2324  return ilUtil::formSelect($_SESSION['user_filter'], "user_filter", $action, false, true);
2325  }
$_SESSION["AccountId"]
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 2820 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.

2821  {
2822  global $DIC;
2823 
2824  $ilAccess = $DIC['ilAccess'];
2825  $ilErr = $DIC['ilErr'];
2826  $lng = $DIC['lng'];
2827 
2828  $a_target = USER_FOLDER_ID;
2829 
2830  if ($ilAccess->checkAccess("read", "", $a_target)) {
2831  ilUtil::redirect("ilias.php?baseClass=ilAdministrationGUI&ref_id=" . $a_target . "&jmpToUser=" . $a_user);
2832  exit;
2833  } else {
2834  if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
2835  ilUtil::sendFailure(sprintf(
2836  $lng->txt("msg_no_perm_read_item"),
2838  ), true);
2840  }
2841  }
2842  $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2843  }
exit
Definition: login.php:29
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.
$DIC
Definition: xapitoken.php:46
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 882 of file class.ilObjUserFolderGUI.php.

References $_POST, and showActionConfirmation().

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

◆ addToClipboardObject()

ilObjUserFolderGUI::addToClipboardObject ( )
protected

Add users to clipboard.

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

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

3133  {
3134  $users = $this->getActionUserIds();
3135  if (!count($users)) {
3136  ilUtil::sendFailure($this->lng->txt('select_one'), true);
3137  $this->ctrl->redirect($this, 'view');
3138  }
3139  include_once './Services/User/classes/class.ilUserClipboard.php';
3140  $clip = ilUserClipboard::getInstance($GLOBALS['DIC']['ilUser']->getId());
3141  $clip->add($users);
3142  $clip->save();
3143 
3144  ilUtil::sendSuccess($this->lng->txt('clipboard_user_added'), true);
3145  $this->ctrl->redirect($this, 'view');
3146  }
static getInstance($a_usr_id)
Get singelton instance.
getActionUserIds()
Get selected items for table action.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ addToExternalSettingsForm()

ilObjUserFolderGUI::addToExternalSettingsForm (   $a_form_id)

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

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

3097  {
3098  switch ($a_form_id) {
3100 
3101  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
3102  $security = ilSecuritySettings::_getInstance();
3103 
3104  $fields = array();
3105 
3106  $subitems = array(
3107  'ps_password_change_on_first_login_enabled' => array($security->isPasswordChangeOnFirstLoginEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
3108  'ps_password_must_not_contain_loginame' => array((bool) $security->getPasswordMustNotContainLoginnameStatus(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
3109  'ps_password_chars_and_numbers_enabled' => array($security->isPasswordCharsAndNumbersEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
3110  'ps_password_special_chars_enabled' => array($security->isPasswordSpecialCharsEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL),
3111  'ps_password_min_length' => (int) $security->getPasswordMinLength(),
3112  'ps_password_max_length' => (int) $security->getPasswordMaxLength(),
3113  'ps_password_uppercase_chars_num' => (int) $security->getPasswordNumberOfUppercaseChars(),
3114  'ps_password_lowercase_chars_num' => (int) $security->getPasswordNumberOfLowercaseChars(),
3115  'ps_password_max_age' => (int) $security->getPasswordMaxAge()
3116  );
3117  $fields['ps_password_settings'] = array(null, null, $subitems);
3118 
3119  $subitems = array(
3120  'ps_login_max_attempts' => (int) $security->getLoginMaxAttempts(),
3121  'ps_prevent_simultaneous_logins' => array($security->isPreventionOfSimultaneousLoginsEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL)
3122  );
3123  $fields['ps_security_protection'] = array(null, null, $subitems);
3124 
3125  return array(array("generalSettings", $fields));
3126  }
3127  }
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 327 of file class.ilObjUserFolderGUI.php.

References exit, and ilUserAutoComplete\MAX_ENTRIES.

328  {
329  include_once './Services/User/classes/class.ilUserAutoComplete.php';
330  $auto = new ilUserAutoComplete();
331  $auto->addUserAccessFilterCallable([$this,'filterUserIdsByRbacOrPositionOfCurrentUser']);
332  $auto->setSearchFields(array('login','firstname','lastname','email', 'second_email'));
333  $auto->enableFieldSearchableCheck(false);
334  $auto->setMoreLinkAvailable(true);
335 
336  if (($_REQUEST['fetchall'])) {
337  $auto->setLimit(ilUserAutoComplete::MAX_ENTRIES);
338  }
339 
340  echo $auto->getList($_REQUEST['term']);
341  exit();
342  }
exit
Definition: login.php:29
Auto completion class for user lists.

◆ addUserObject()

ilObjUserFolderGUI::addUserObject ( )

Add new user;.

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

References $DIC, and $ilCtrl.

226  {
227  global $DIC;
228 
229  $ilCtrl = $DIC['ilCtrl'];
230 
231  $ilCtrl->setParameterByClass("ilobjusergui", "new_type", "usr");
232  $ilCtrl->redirectByClass(array("iladministrationgui", "ilobjusergui"), "create");
233  }
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46

◆ applyFilterObject()

ilObjUserFolderGUI::applyFilterObject ( )

Apply filter.

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

References $DIC, and ilObjectGUI\viewObject().

240  {
241  global $DIC;
242 
243  $ilTabs = $DIC['ilTabs'];
244 
245  include_once("./Services/User/classes/class.ilUserTableGUI.php");
246  $utab = new ilUserTableGUI($this, "view");
247  $utab->resetOffset();
248  $utab->writeFilterToSession();
249  $this->viewObject();
250  $ilTabs->activateTab("usrf");
251  }
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions" ...
TableGUI class for user administration.
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ askForUserPasswordResetObject()

ilObjUserFolderGUI::askForUserPasswordResetObject ( )
protected

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

1830  {
1831  $this->lng->loadLanguageModule('ps');
1832 
1833  $confirmation = new \ilConfirmationGUI();
1834  $confirmation->setFormAction($this->ctrl->getFormAction($this, 'askForUserPasswordReset'));
1835  $confirmation->setHeaderText($this->lng->txt('ps_passwd_policy_changed_force_user_reset'));
1836  $confirmation->setConfirm($this->lng->txt('yes'), 'forceUserPasswordReset');
1837  $confirmation->setCancel($this->lng->txt('no'), 'generalSettings');
1838 
1839  $this->tpl->setContent($confirmation->getHTML());
1840  }

◆ cancelDeleteExportFileObject()

ilObjUserFolderGUI::cancelDeleteExportFileObject ( )

cancel deletion of export files

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

2379  {
2380  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2381  }

◆ cancelNewAccountMailObject()

ilObjUserFolderGUI::cancelNewAccountMailObject ( )

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

2565  {
2566  $this->ctrl->redirect($this, "settings");
2567  }

◆ cancelSearchActionObject()

ilObjUserFolderGUI::cancelSearchActionObject ( )

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

496  {
497  $this->ctrl->redirectByClass('ilrepositorysearchgui', 'showSearchResults');
498  }

◆ cancelUserFolderActionObject()

ilObjUserFolderGUI::cancelUserFolderActionObject ( )

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

491  {
492  $this->ctrl->redirect($this, 'view');
493  }

◆ checkAccess()

ilObjUserFolderGUI::checkAccess (   $a_permission)
protected
Parameters
string$a_permission

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

References $DIC, ilObjectGUI\$ilErr, and checkAccessBool().

166  {
167  global $DIC;
168 
169  $ilErr = $DIC['ilErr'];
170 
171  if (!$this->checkAccessBool($a_permission)) {
172  $ilErr->raiseError($this->lng->txt('msg_no_perm_read'), $ilErr->WARNING);
173  }
174  }
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ checkAccessBool()

ilObjUserFolderGUI::checkAccessBool (   $a_permission)
protected
Parameters
string$a_permission
Returns
bool

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

Referenced by checkAccess(), and getUserMultiCommands().

181  {
182  return $this->access->checkAccess($a_permission, '', $this->ref_id);
183  }
+ Here is the caller graph for this function:

◆ checkUserManipulationAccessBool()

ilObjUserFolderGUI::checkUserManipulationAccessBool ( )
private

Check if current user has access to manipulate user data.

Returns
bool

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

References ilObjectGUI\$access, $DIC, ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

Referenced by confirmaccessFreeObject(), confirmaccessRestrictObject(), confirmactivateObject(), confirmdeactivateObject(), usrExportCsvObject(), usrExportX86Object(), and usrExportXmlObject().

791  {
792  global $DIC;
793 
794  $access = $DIC->access();
795  return $access->checkRbacOrPositionPermissionAccess(
796  'write',
799  );
800  }
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
+ Here is the caller graph for this function:

◆ chooseLetterObject()

ilObjUserFolderGUI::chooseLetterObject ( )

Choose first letter.

Parameters

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

References $DIC, and $ilCtrl.

367  {
368  global $DIC;
369 
370  $ilCtrl = $DIC['ilCtrl'];
371 
372  $ilCtrl->redirect($this, "view");
373  }
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46

◆ confirmaccessFreeObject()

ilObjUserFolderGUI::confirmaccessFreeObject ( )
protected

"access free"

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

References $_POST, $DIC, $ilUser, ilObjectGUI\$rbacsystem, checkUserManipulationAccessBool(), getActionUserIds(), and ilObjectFactory\getInstanceByObjId().

570  {
571  global $DIC;
572 
573  $rbacsystem = $DIC['rbacsystem'];
574  $ilUser = $DIC['ilUser'];
575 
576  if (!$this->checkUserManipulationAccessBool()) {
577  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
578  }
579 
580  foreach ($this->getActionUserIds() as $id) {
581  $obj = \ilObjectFactory::getInstanceByObjId($id, false);
582  if ($obj instanceof \ilObjUser) {
583  $obj->setTimeLimitUnlimited(1);
584  $obj->setTimeLimitFrom("");
585  $obj->setTimeLimitUntil("");
586  $obj->setTimeLimitMessage(0);
587  $obj->update();
588  }
589  }
590 
591  // Feedback
592  ilUtil::sendSuccess($this->lng->txt("access_free_granted"), true);
593 
594  if ($_POST["frsrch"]) {
595  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
596  } else {
597  $this->ctrl->redirect($this, "view");
598  }
599  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ confirmaccessRestrictObject()

ilObjUserFolderGUI::confirmaccessRestrictObject ( )
protected
Returns
bool
Exceptions

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

References $_POST, $DIC, $ilUser, checkUserManipulationAccessBool(), getActionUserIds(), ilObjectFactory\getInstanceByObjId(), IL_CAL_UNIX, initAccessRestrictionForm(), ilUtil\sendFailure(), and setAccessRestrictionObject().

664  {
665  global $DIC;
666 
667  $ilUser = $DIC->user();
668 
669  $form = $this->initAccessRestrictionForm();
670  if (!$form->checkInput()) {
671  return $this->setAccessRestrictionObject($form);
672  }
673 
674  $timefrom = $form->getItemByPostVar("from")->getDate()->get(IL_CAL_UNIX);
675  $timeuntil = $form->getItemByPostVar("to")->getDate()->get(IL_CAL_UNIX);
676  if ($timeuntil <= $timefrom) {
677  ilUtil::sendFailure($this->lng->txt("time_limit_not_valid"));
678  return $this->setAccessRestrictionObject($form);
679  }
680 
681 
682  if (!$this->checkUserManipulationAccessBool()) {
683  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
684  }
685  foreach ($this->getActionUserIds() as $id) {
686  $obj = \ilObjectFactory::getInstanceByObjId($id, false);
687  if ($obj instanceof \ilObjUser) {
688  $obj->setTimeLimitUnlimited(0);
689  $obj->setTimeLimitFrom($timefrom);
690  $obj->setTimeLimitUntil($timeuntil);
691  $obj->setTimeLimitMessage(0);
692  $obj->update();
693  }
694  }
695  ilUtil::sendSuccess($this->lng->txt("access_restricted"), true);
696 
697  if ($_POST["frsrch"]) {
698  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
699  } else {
700  $this->ctrl->redirect($this, "view");
701  }
702  }
const IL_CAL_UNIX
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
initAccessRestrictionForm($a_from_search=false)
$DIC
Definition: xapitoken.php:46
$_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 505 of file class.ilObjUserFolderGUI.php.

References $_POST, $DIC, $ilUser, checkUserManipulationAccessBool(), getActionUserIds(), and ilObjectFactory\getInstanceByObjId().

506  {
507  global $DIC;
508 
509  $ilUser = $DIC['ilUser'];
510 
511  if (!$this->checkUserManipulationAccessBool()) {
512  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
513  }
514 
515  // FOR ALL SELECTED OBJECTS
516  foreach ($this->getActionUserIds() as $id) {
517  $obj = \ilObjectFactory::getInstanceByObjId($id, false);
518  if ($obj instanceof \ilObjUser) {
519  $obj->setActive(true, $ilUser->getId());
520  $obj->update();
521  }
522  }
523 
524  ilUtil::sendSuccess($this->lng->txt("user_activated"), true);
525 
526  if ($_POST["frsrch"]) {
527  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
528  } else {
529  $this->ctrl->redirect($this, "view");
530  }
531  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ confirmdeactivateObject()

ilObjUserFolderGUI::confirmdeactivateObject ( )

Set the selected users inactive.

public

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

References $_POST, $DIC, $ilUser, checkUserManipulationAccessBool(), getActionUserIds(), and ilObjectFactory\getInstanceByObjId().

539  {
540  global $DIC;
541 
542  $ilUser = $DIC['ilUser'];
543 
544  if (!$this->checkUserManipulationAccessBool()) {
545  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->WARNING);
546  }
547  // FOR ALL SELECTED OBJECTS
548  foreach ($this->getActionUserIds() as $id) {
549  $obj = \ilObjectFactory::getInstanceByObjId($id, false);
550  if ($obj instanceof \ilObjUser) {
551  $obj->setActive(false, $ilUser->getId());
552  $obj->update();
553  }
554  }
555 
556  // Feedback
557  ilUtil::sendSuccess($this->lng->txt("user_deactivated"), true);
558 
559  if ($_POST["frsrch"]) {
560  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
561  } else {
562  $this->ctrl->redirect($this, "view");
563  }
564  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ confirmDeleteExportFileObject()

ilObjUserFolderGUI::confirmDeleteExportFileObject ( )

confirmation screen for export file deletion

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

References $_POST.

2353  {
2354  if (!isset($_POST["file"])) {
2355  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
2356  }
2357 
2358  // display confirmation message
2359  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
2360  $cgui = new ilConfirmationGUI();
2361  $cgui->setFormAction($this->ctrl->getFormAction($this));
2362  $cgui->setHeaderText($this->lng->txt("info_delete_sure"));
2363  $cgui->setCancel($this->lng->txt("cancel"), "cancelDeleteExportFile");
2364  $cgui->setConfirm($this->lng->txt("confirm"), "deleteExportFile");
2365 
2366  // BEGIN TABLE DATA
2367  foreach ($_POST["file"] as $file) {
2368  $cgui->addItem("file[]", $file, $file, ilObject::_getIcon($this->object->getId()), $this->lng->txt("obj_usrf"));
2369  }
2370 
2371  $this->tpl->setContent($cgui->getHTML());
2372  }
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 709 of file class.ilObjUserFolderGUI.php.

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

710  {
711  global $DIC;
712 
713  $rbacsystem = $DIC['rbacsystem'];
714  $ilCtrl = $DIC['ilCtrl'];
715  $ilUser = $DIC['ilUser'];
716 
717  // FOR NON_REF_OBJECTS WE CHECK ACCESS ONLY OF PARENT OBJECT ONCE
718  if (!$rbacsystem->checkAccess('delete', $this->object->getRefId())) {
719  ilUtil::sendFailure($this->lng->txt("msg_no_perm_delete"), true);
720  $ilCtrl->redirect($this, "view");
721  }
722 
723  if (in_array($ilUser->getId(), $_POST["id"])) {
724  $this->ilias->raiseError($this->lng->txt("msg_no_delete_yourself"), $this->ilias->error_obj->WARNING);
725  }
726 
727  // FOR ALL SELECTED OBJECTS
728  foreach ($_POST["id"] as $id) {
729  // instatiate correct object class (usr)
730  $obj = &$this->ilias->obj_factory->getInstanceByObjId($id);
731  $obj->delete();
732  }
733 
734  // Feedback
735  ilUtil::sendSuccess($this->lng->txt("user_deleted"), true);
736 
737  if ($_POST["frsrch"]) {
738  $this->ctrl->redirectByClass('ilRepositorySearchGUI', 'show');
739  } else {
740  $this->ctrl->redirect($this, "view");
741  }
742  }
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.
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ confirmSavedObject()

ilObjUserFolderGUI::confirmSavedObject ( )

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

References saveGlobalUserSettingsObject().

2143  {
2144  $this->saveGlobalUserSettingsObject("save");
2145  }
+ Here is the call graph for this function:

◆ deactivateUsersObject()

ilObjUserFolderGUI::deactivateUsersObject ( )

Deactivate users.

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

References $_POST, and showActionConfirmation().

892  {
893  $_POST["selectedAction"] = "deactivate";
894  $this->showActionConfirmation($_POST["selectedAction"]);
895  }
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 2387 of file class.ilObjUserFolderGUI.php.

References $_POST.

2388  {
2389  $export_dir = $this->object->getExportDirectory();
2390  foreach ($_POST["file"] as $file) {
2391  $file = basename($file);
2392 
2393  $exp_file = $export_dir . "/" . $file;
2394  if (@is_file($exp_file)) {
2395  unlink($exp_file);
2396  }
2397  }
2398  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2399  }
$_POST["username"]

◆ deleteUsersObject()

ilObjUserFolderGUI::deleteUsersObject ( )

Delete users.

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

References $_POST, and showActionConfirmation().

874  {
875  $_POST["selectedAction"] = "delete";
876  $this->showActionConfirmation($_POST["selectedAction"]);
877  }
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 2333 of file class.ilObjUserFolderGUI.php.

References $_POST, and ilUtil\deliverFile().

2334  {
2335  if (!isset($_POST["file"])) {
2336  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
2337  }
2338 
2339  if (count($_POST["file"]) > 1) {
2340  $this->ilias->raiseError($this->lng->txt("select_max_one_item"), $this->ilias->error_obj->MESSAGE);
2341  }
2342 
2343  $file = basename($_POST["file"][0]);
2344 
2345  $export_dir = $this->object->getExportDirectory();
2346  ilUtil::deliverFile($export_dir . "/" . $file, $file);
2347  }
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 67 of file class.ilObjUserFolderGUI.php.

References ilObjectGUI\$access, $DIC, $ret, getUserMultiCommands(), ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, ilObjectGUI\prepareOutput(), setSubTabs(), and USER_FOLDER_ID.

68  {
69  global $DIC;
70 
71  $ilTabs = $DIC['ilTabs'];
72  $access = $DIC->access();
73 
74  $next_class = $this->ctrl->getNextClass($this);
75  $cmd = $this->ctrl->getCmd();
76  $this->prepareOutput();
77 
78  switch ($next_class) {
79  case 'ilusertablegui':
80  include_once("./Services/User/classes/class.ilUserTableGUI.php");
81  $u_table = new ilUserTableGUI($this, "view");
82  $u_table->initFilter();
83  $this->ctrl->setReturn($this, 'view');
84  $this->ctrl->forwardCommand($u_table);
85  break;
86 
87  case 'ilpermissiongui':
88  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
89  $perm_gui = new ilPermissionGUI($this);
90  $ret = &$this->ctrl->forwardCommand($perm_gui);
91  break;
92 
93  case 'ilrepositorysearchgui':
94 
95  if (!$access->checkRbacOrPositionPermissionAccess("read_users", \ilObjUserFolder::ORG_OP_EDIT_USER_ACCOUNTS, USER_FOLDER_ID)) {
96  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
97  }
98 
99  include_once('./Services/Search/classes/class.ilRepositorySearchGUI.php');
100  $user_search = new ilRepositorySearchGUI();
101  $user_search->setTitle($this->lng->txt("search_user_extended")); // #17502
102  $user_search->enableSearchableCheck(false);
103  $user_search->setUserLimitations(false);
104  $user_search->setCallback(
105  $this,
106  'searchResultHandler',
107  $this->getUserMultiCommands(true)
108  );
109  $user_search->addUserAccessFilterCallable(array($this, "searchUserAccessFilterCallable"));
110  $this->tabs_gui->setTabActive('search_user_extended');
111  $this->ctrl->setReturn($this, 'view');
112  $ret = &$this->ctrl->forwardCommand($user_search);
113  break;
114 
115  case 'ilaccountcodesgui':
116  $this->tabs_gui->setTabActive('settings');
117  $this->setSubTabs("settings");
118  $ilTabs->activateSubTab("account_codes");
119  include_once("./Services/User/classes/class.ilAccountCodesGUI.php");
120  $acc = new ilAccountCodesGUI($this->ref_id);
121  $this->ctrl->forwardCommand($acc);
122  break;
123 
124  case 'ilcustomuserfieldsgui':
125  $this->tabs_gui->setTabActive('settings');
126  $this->setSubTabs("settings");
127  $ilTabs->activateSubTab("user_defined_fields");
128  include_once("./Services/User/classes/class.ilCustomUserFieldsGUI.php");
129  $cf = new ilCustomUserFieldsGUI();
130  $this->ctrl->forwardCommand($cf);
131  break;
132 
133  case 'iluserstartingpointgui':
134  $this->tabs_gui->setTabActive('settings');
135  $this->setSubTabs("settings");
136  $ilTabs->activateSubTab("starting_points");
137  include_once("./Services/User/classes/class.ilUserStartingPointGUI.php");
138  $cf = new ilUserStartingPointGUI($this->ref_id);
139  $this->ctrl->forwardCommand($cf);
140  break;
141 
142  case 'iluserprofileinfosettingsgui':
143  $this->tabs_gui->setTabActive('settings');
144  $this->setSubTabs("settings");
145  $ilTabs->activateSubTab("user_profile_info");
146  $ps = new ilUserProfileInfoSettingsGUI();
147  $this->ctrl->forwardCommand($ps);
148  break;
149 
150  default:
151  if (!$cmd) {
152  $cmd = "view";
153  }
154  $cmd .= "Object";
155  $this->$cmd();
156 
157  break;
158  }
159  return true;
160  }
setSubTabs($a_tab)
set sub tabs
GUI class for account codes.
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)
redirection script todo: (a better solution should control the processing via a xml file) ...
$ret
Definition: parser.php:6
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
+ Here is the call graph for this function:

◆ exportObject()

ilObjUserFolderGUI::exportObject ( )

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

References $DIC, ilObjectGUI\$toolbar, $type, ilObjectGUI\checkPermission(), and ilSubmitButton\getInstance().

2416  {
2417  global $DIC;
2418 
2419  $this->checkPermission("write,read_users");
2420 
2421  $button = ilSubmitButton::getInstance();
2422  $button->setCaption('create_export_file');
2423  $button->setCommand('performExport');
2424  $toolbar = $DIC->toolbar();
2425  $toolbar->setFormAction($this->ctrl->getFormAction($this));
2426 
2427  $export_types = array(
2428  "userfolder_export_excel_x86",
2429  "userfolder_export_csv",
2430  "userfolder_export_xml"
2431  );
2432  $options = [];
2433  foreach ($export_types as $type) {
2434  $options[$type] = $this->lng->txt($type);
2435  }
2436  $type_selection = new \ilSelectInputGUI('', 'export_type');
2437  $type_selection->setOptions($options);
2438 
2439  $toolbar->addInputItem($type_selection, true);
2440  $toolbar->addButtonInstance($button);
2441 
2442  $table = new \ilUserExportFileTableGUI($this, 'export');
2443  $table->init();
2444  $table->parse($this->object->getExportFiles());
2445 
2446  $this->tpl->setContent($table->getHTML());
2447  }
$type
$DIC
Definition: xapitoken.php:46
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
+ Here is the call graph for this function:

◆ filterUserIdsByRbacOrPositionOfCurrentUser()

ilObjUserFolderGUI::filterUserIdsByRbacOrPositionOfCurrentUser ( array  $user_ids)
Parameters
int[]$user_ids

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

References ilObjectGUI\$access, $DIC, ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

348  {
349  global $DIC;
350 
351  $access = $DIC->access();
352  return $access->filterUserIdsByRbacOrPositionOfCurrentUser(
353  'read_users',
356  $user_ids
357  );
358  }
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.

◆ forceUserPasswordResetObject()

ilObjUserFolderGUI::forceUserPasswordResetObject ( )
protected

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

References ilUserPasswordManager\getInstance().

1818  {
1819  \ilUserPasswordManager::getInstance()->resetLastPasswordChangeForLocalUsers();
1820  $this->lng->loadLanguageModule('ps');
1821 
1822  \ilUtil::sendSuccess($this->lng->txt('ps_passwd_policy_change_force_user_reset_succ'), true);
1823  $this->ctrl->redirect($this, 'generalSettings');
1824  }
static getInstance()
Single method to reduce footprint (included files, created instances)
+ Here is the call graph for this function:

◆ freeAccessObject()

ilObjUserFolderGUI::freeAccessObject ( )

Free access.

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

References $_POST, and showActionConfirmation().

910  {
911  $_POST["selectedAction"] = "accessFree";
912  $this->showActionConfirmation($_POST["selectedAction"]);
913  }
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 1608 of file class.ilObjUserFolderGUI.php.

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

1609  {
1610  global $DIC;
1611 
1612  $ilSetting = $DIC['ilSetting'];
1613 
1614  $this->initFormGeneralSettings();
1615 
1616  include_once './Services/User/classes/class.ilUserAccountSettings.php';
1618 
1619  $show_blocking_time_in_days = $ilSetting->get('loginname_change_blocking_time') / 86400;
1620  $show_blocking_time_in_days = (float) $show_blocking_time_in_days;
1621 
1622  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1623  $security = ilSecuritySettings::_getInstance();
1624 
1625  $settings = [
1626  'lua' => $aset->isLocalUserAdministrationEnabled(),
1627  'lrua' => $aset->isUserAccessRestricted(),
1628  'allow_change_loginname' => (bool) $ilSetting->get('allow_change_loginname'),
1629  'create_history_loginname' => (bool) $ilSetting->get('create_history_loginname'),
1630  'reuse_of_loginnames' => (bool) $ilSetting->get('reuse_of_loginnames'),
1631  'loginname_change_blocking_time' => (float) $show_blocking_time_in_days,
1632  'user_adm_alpha_nav' => (int) $ilSetting->get('user_adm_alpha_nav'),
1633  // 'user_ext_profiles' => (int)$ilSetting->get('user_ext_profiles')
1634  'user_reactivate_code' => (int) $ilSetting->get('user_reactivate_code'),
1635  'user_own_account' => (int) $ilSetting->get('user_delete_own_account'),
1636  'user_own_account_email' => $ilSetting->get('user_delete_own_account_email'),
1637 
1638  'session_handling_type' => $ilSetting->get('session_handling_type', ilSession::SESSION_HANDLING_FIXED),
1639  'session_reminder_enabled' => $ilSetting->get('session_reminder_enabled'),
1640  'session_max_count' => $ilSetting->get('session_max_count', ilSessionControl::DEFAULT_MAX_COUNT),
1641  'session_min_idle' => $ilSetting->get('session_min_idle', ilSessionControl::DEFAULT_MIN_IDLE),
1642  'session_max_idle' => $ilSetting->get('session_max_idle', ilSessionControl::DEFAULT_MAX_IDLE),
1643  'session_max_idle_after_first_request' => $ilSetting->get(
1644  'session_max_idle_after_first_request',
1646  ),
1647 
1648  'login_max_attempts' => $security->getLoginMaxAttempts(),
1649  'ps_prevent_simultaneous_logins' => (int) $security->isPreventionOfSimultaneousLoginsEnabled(),
1650  'password_assistance' => (bool) $ilSetting->get("password_assistance"),
1651  'letter_avatars' => (int) $ilSetting->get('letter_avatars'),
1652  'password_change_on_first_login_enabled' => $security->isPasswordChangeOnFirstLoginEnabled() ? 1 : 0,
1653  'password_max_age' => $security->getPasswordMaxAge()
1654  ];
1655 
1656  $passwordPolicySettings = $this->getPasswordPolicySettingsMap($security);
1657  $this->form->setValuesByArray(array_merge(
1658  $settings,
1659  $passwordPolicySettings,
1660  ['pw_policy_hash' => md5(implode('', $passwordPolicySettings))]
1661  ));
1662 
1663  $this->tpl->setContent($this->form->getHTML());
1664  }
const DEFAULT_MAX_COUNT
default value for settings that have not been defined in setup or administration yet ...
initFormGeneralSettings()
init general settings form
getPasswordPolicySettingsMap(\ilSecuritySettings $security)
const SESSION_HANDLING_FIXED
global $ilSetting
Definition: privfeed.php:17
static getInstance()
Singelton get instance.
$DIC
Definition: xapitoken.php:46
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
int[]

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

References $_POST, ilObjectGUI\$access, $DIC, ilLocalUser\_getAllUserIds(), ilLocalUser\_getUserFolderId(), ilUserTableGUI\MODE_USER_FOLDER, ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

Referenced by addToClipboardObject(), confirmaccessFreeObject(), confirmaccessRestrictObject(), confirmactivateObject(), confirmdeactivateObject(), initAccessRestrictionForm(), mailObject(), showActionConfirmation(), usrExportCsvObject(), usrExportX86Object(), and usrExportXmlObject().

750  {
751  global $DIC;
752  $access = $DIC->access();
753 
754  if ($_POST["select_cmd_all"]) {
755  include_once("./Services/User/classes/class.ilUserTableGUI.php");
756  $utab = new ilUserTableGUI($this, "view", ilUserTableGUI::MODE_USER_FOLDER, false);
757 
758  if (!$access->checkAccess('read_users', '', USER_FOLDER_ID) &&
759  $access->checkRbacOrPositionPermissionAccess(
760  'read_users',
763  )) {
765  $filtered_users = $access->filterUserIdsByRbacOrPositionOfCurrentUser(
766  'read_users',
769  $users
770  );
771 
772  $utab->addFilterItemValue("user_ids", $filtered_users);
773  }
774 
775  return $utab->getUserIdsForFilter();
776  } else {
777  return $access->filterUserIdsByRbacOrPositionOfCurrentUser(
778  'read_users',
781  (array) $_POST['id']
782  );
783  }
784  }
TableGUI class for user administration.
static _getUserFolderId()
static _getAllUserIds($a_filter=0)
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
$_POST["username"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getAdminTabs()

ilObjUserFolderGUI::getAdminTabs ( )

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

References getTabs().

2604  {
2605  $this->getTabs();
2606  }
+ Here is the call graph for this function:

◆ getImportDir()

ilObjUserFolderGUI::getImportDir ( )

get user import directory name with new FileSystem implementation

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

References $DIC, and $ilUser.

Referenced by handleUploadedFiles(), importCancelledObject(), importUsersObject(), and verifyXmlData().

1004  {
1005  // For each user session a different directory must be used to prevent
1006  // that one user session overwrites the import data that another session
1007  // is currently importing.
1008  global $DIC;
1009 
1010  $ilUser = $DIC->user();
1011 
1012  $importDir = 'user_import/usr_' . $ilUser->getId() . '_' . session_id();
1013 
1014  return $importDir;
1015  }
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ Here is the caller graph for this function:

◆ getPasswordPolicySettingsMap()

ilObjUserFolderGUI::getPasswordPolicySettingsMap ( \ilSecuritySettings  $security)
private
Parameters
ilSecuritySettings$security
Returns
array

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

References ilSecuritySettings\getPasswordMaxLength(), ilSecuritySettings\getPasswordMinLength(), ilSecuritySettings\getPasswordMustNotContainLoginnameStatus(), ilSecuritySettings\getPasswordNumberOfLowercaseChars(), ilSecuritySettings\getPasswordNumberOfUppercaseChars(), ilSecuritySettings\isPasswordCharsAndNumbersEnabled(), and ilSecuritySettings\isPasswordSpecialCharsEnabled().

Referenced by generalSettingsObject(), and saveGeneralSettingsObject().

1671  : array
1672  {
1673  return [
1674  'password_must_not_contain_loginame' => $security->getPasswordMustNotContainLoginnameStatus() ? 1 : 0,
1675  'password_chars_and_numbers_enabled' => $security->isPasswordCharsAndNumbersEnabled() ? 1 : 0,
1676  'password_special_chars_enabled' => $security->isPasswordSpecialCharsEnabled() ? 1 : 0,
1677  'password_min_length' => $security->getPasswordMinLength(),
1678  'password_max_length' => $security->getPasswordMaxLength(),
1679  'password_ucase_chars_num' => $security->getPasswordNumberOfUppercaseChars(),
1680  'password_lowercase_chars_num' => $security->getPasswordNumberOfLowercaseChars(),
1681  ];
1682  }
+ 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 2613 of file class.ilObjUserFolderGUI.php.

References ilObjectGUI\$access, $DIC, ilObjectGUI\$rbacsystem, ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

Referenced by getAdminTabs().

2614  {
2615  include_once 'Services/Tracking/classes/class.ilObjUserTracking.php';
2616 
2617  global $DIC;
2618 
2619  $rbacsystem = $DIC['rbacsystem'];
2620  $access = $DIC->access();
2621 
2622  if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
2623  $this->tabs_gui->addTarget(
2624  "usrf",
2625  $this->ctrl->getLinkTarget($this, "view"),
2626  array("view","delete","resetFilter", "userAction", ""),
2627  "",
2628  ""
2629  );
2630  }
2631 
2632  if ($access->checkRbacOrPositionPermissionAccess("read_users", \ilObjUserFolder::ORG_OP_EDIT_USER_ACCOUNTS, USER_FOLDER_ID)) {
2633  $this->tabs_gui->addTarget(
2634  "search_user_extended",
2635  $this->ctrl->getLinkTargetByClass('ilRepositorySearchGUI', ''),
2636  array(),
2637  "ilrepositorysearchgui",
2638  ""
2639  );
2640  }
2641 
2642 
2643  if ($rbacsystem->checkAccess("write,read_users", $this->object->getRefId())) {
2644  $this->tabs_gui->addTarget(
2645  "settings",
2646  $this->ctrl->getLinkTarget($this, "generalSettings"),
2647  array('askForUserPasswordReset', 'forceUserPasswordReset', 'settings','generalSettings','listUserDefinedField','newAccountMail')
2648  );
2649 
2650  $this->tabs_gui->addTarget(
2651  "export",
2652  $this->ctrl->getLinkTarget($this, "export"),
2653  "export",
2654  "",
2655  ""
2656  );
2657  }
2658 
2659  if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) {
2660  $this->tabs_gui->addTarget(
2661  "perm_settings",
2662  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"),
2663  array("perm","info","owner"),
2664  'ilpermissiongui'
2665  );
2666  }
2667  }
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
+ Here is the caller graph for this function:

◆ getUserMultiCommands()

ilObjUserFolderGUI::getUserMultiCommands (   $a_search_form = false)

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

References $DIC, $ilUser, ilObjectGUI\$rbacsystem, $type, and checkAccessBool().

Referenced by executeCommand().

2903  {
2904  global $DIC;
2905 
2906  $rbacsystem = $DIC['rbacsystem'];
2907  $ilUser = $DIC['ilUser'];
2908 
2909  $cmds = array();
2910  // see searchResultHandler()
2911  if ($a_search_form) {
2912  if ($this->checkAccessBool('write')) {
2913  $cmds = array(
2914  'activate' => $this->lng->txt('activate'),
2915  'deactivate' => $this->lng->txt('deactivate'),
2916  'accessRestrict' => $this->lng->txt('accessRestrict'),
2917  'accessFree' => $this->lng->txt('accessFree')
2918  );
2919  }
2920 
2921  if ($this->checkAccessBool('delete')) {
2922  $cmds["delete"] = $this->lng->txt("delete");
2923  }
2924  }
2925  // show confirmation
2926  else {
2927  if ($this->checkAccessBool('write')) {
2928  $cmds = array(
2929  'activateUsers' => $this->lng->txt('activate'),
2930  'deactivateUsers' => $this->lng->txt('deactivate'),
2931  'restrictAccess' => $this->lng->txt('accessRestrict'),
2932  'freeAccess' => $this->lng->txt('accessFree')
2933  );
2934  }
2935 
2936  if ($this->checkAccessBool('delete')) {
2937  $cmds["deleteUsers"] = $this->lng->txt("delete");
2938  }
2939  }
2940 
2941  if ($this->checkAccessBool('write')) {
2942  $export_types = array("userfolder_export_excel_x86", "userfolder_export_csv", "userfolder_export_xml");
2943  foreach ($export_types as $type) {
2944  $cmd = explode("_", $type);
2945  $cmd = array_pop($cmd);
2946  $cmds['usrExport' . ucfirst($cmd)] = $this->lng->txt('export') . ' - ' .
2947  $this->lng->txt($type);
2948  }
2949  }
2950 
2951  // check if current user may send mails
2952  include_once "Services/Mail/classes/class.ilMail.php";
2953  $mail = new ilMail($ilUser->getId());
2954  if ($rbacsystem->checkAccess('internal_mail', $mail->getMailObjectReferenceId())) {
2955  $cmds["mail"] = $this->lng->txt("send_mail");
2956  }
2957 
2958  $cmds['addToClipboard'] = $this->lng->txt('clipboard_add_btn');
2959 
2960  return $cmds;
2961  }
$type
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUserOwnerId()

ilObjUserFolderGUI::getUserOwnerId ( )

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

References USER_FOLDER_ID.

Referenced by importUsersObject().

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

◆ handleUploadedFiles()

ilObjUserFolderGUI::handleUploadedFiles ( )
private

Handles uploaded zip/xmp files with Filesystem implementation.

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

References Vendor\Package\$a, $DIC, $ilUser, ilUtil\getDataDir(), getImportDir(), ILIAS\FileUpload\DTO\ProcessingStatus\OK, and ilUtil\unzip().

Referenced by importUserRoleAssignmentObject().

1354  : string
1355  {
1356  global $DIC;
1357 
1358  $ilUser = $DIC->user();
1359 
1360  $upload = $DIC->upload();
1361 
1362  $filesystem = $DIC->filesystem()->storage();
1363  $import_dir = $this->getImportDir();
1364 
1365  if (!$upload->hasBeenProcessed()) {
1366  $upload->process();
1367  }
1368 
1369  // recreate user import directory
1370  if ($filesystem->hasDir($import_dir)) {
1371  $filesystem->deleteDir($import_dir);
1372  }
1373  $filesystem->createDir($import_dir);
1374 
1375 
1376  foreach ($upload->getResults() as $single_file_upload) {
1377  $file_name = $single_file_upload->getName();
1378  $parts = pathinfo($file_name);
1379 
1380  //check if upload status is ok
1381  if ($single_file_upload->getStatus() != \ILIAS\FileUpload\DTO\ProcessingStatus::OK) {
1382  $filesystem->deleteDir($import_dir);
1383  $this->ilias->raiseError($this->lng->txt("no_import_file_found"), $this->ilias->error_obj->MESSAGE);
1384  }
1385 
1386  // move uploaded file to user import directory
1387  $upload->moveFilesTo(
1388  $import_dir,
1389  \ILIAS\FileUpload\Location::STORAGE
1390  );
1391 
1392  // handle zip file
1393  if ($single_file_upload->getMimeType() == "application/zip") {
1394  // Workaround: unzip function needs full path to file. Should be replaced once Filesystem has own unzip implementation
1395  $full_path = ilUtil::getDataDir() . '/user_import/usr_' . $ilUser->getId() . '_' . session_id() . "/" . $file_name;
1396  ilUtil::unzip($full_path);
1397 
1398  $xml_file = null;
1399  $file_list = $filesystem->listContents($import_dir);
1400 
1401  foreach ($file_list as $key => $a_file) {
1402  if (substr($a_file->getPath(), -4) == '.xml') {
1403  unset($file_list[$key]);
1404  $xml_file = $a_file->getPath();
1405  break;
1406  }
1407  }
1408 
1409  //Removing all files except the one to be imported, to make sure to get the right one in import-function
1410  foreach ($file_list as $a_file) {
1411  $filesystem->delete($a_file->getPath());
1412  }
1413 
1414  if (is_null($xml_file)) {
1415  $subdir = basename($parts["basename"], "." . $parts["extension"]);
1416  $xml_file = $import_dir . "/" . $subdir . "/" . $subdir . ".xml";
1417  }
1418  }
1419  // handle xml file
1420  else {
1421  $a = $filesystem->listContents($import_dir);
1422  $file = end($a);
1423  $xml_file = $file->getPath();
1424  }
1425 
1426  // check xml file
1427  if (!$filesystem->has($xml_file)) {
1428  $filesystem->deleteDir($import_dir);
1429  $this->ilias->raiseError($this->lng->txt("no_xml_file_found_in_zip")
1430  . " " . $subdir . "/" . $subdir . ".xml", $this->ilias->error_obj->MESSAGE);
1431  }
1432  }
1433 
1434  return $xml_file;
1435  }
getImportDir()
get user import directory name with new FileSystem implementation
Class ChatMainBarProvider .
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getDataDir()
get data directory (outside webspace)
$DIC
Definition: xapitoken.php:46
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hitsperpageObject()

ilObjUserFolderGUI::hitsperpageObject ( )

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

References ilObjectGUI\viewObject().

1599  {
1600  parent::hitsperpageObject();
1601  $this->viewObject();
1602  }
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions" ...
+ Here is the call graph for this function:

◆ importCancelledObject()

ilObjUserFolderGUI::importCancelledObject ( )

import cancelled

private

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

References $_GET, $DIC, and getImportDir().

983  {
984  global $DIC;
985  $filesystem = $DIC->filesystem()->storage();
986 
987  // purge user import directory
988  $import_dir = $this->getImportDir();
989  if ($filesystem->hasDir($import_dir)) {
990  $filesystem->deleteDir($import_dir);
991  }
992 
993  if (strtolower($_GET["baseClass"]) == 'iladministrationgui') {
994  $this->ctrl->redirect($this, "view");
995  } else {
996  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
997  }
998  }
getImportDir()
get user import directory name with new FileSystem implementation
$_GET["client_id"]
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ importUserFormObject()

ilObjUserFolderGUI::importUserFormObject ( )

display form for user import

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

References ilObjectGUI\$access, $DIC, $ilCtrl, ilObjectGUI\$rbacsystem, ilObjectGUI\$tpl, and initUserImportForm().

924  {
925  global $DIC;
926 
927  $tpl = $DIC['tpl'];
928  $rbacsystem = $DIC['rbacsystem'];
929  $ilCtrl = $DIC->ctrl();
930  $access = $DIC->access();
931 
932  $this->tabs_gui->clearTargets();
933  $this->tabs_gui->setBackTarget($this->lng->txt('usrf'), $ilCtrl->getLinkTarget($this, 'view'));
934 
935  if (
936  !$rbacsystem->checkAccess('create_usr', $this->object->getRefId()) &&
937  !$access->checkAccess('cat_administrate_users', '', $this->object->getRefId())
938  ) {
939  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
940  }
941 
942  $this->initUserImportForm();
943  $tpl->setContent($this->form->getHTML());
944  }
global $ilCtrl
Definition: ilias.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
$DIC
Definition: xapitoken.php:46
initUserImportForm()
Init user import form.
+ Here is the call graph for this function:

◆ importUserRoleAssignmentObject()

ilObjUserFolderGUI::importUserRoleAssignmentObject ( )

display form for user import with new FileSystem implementation

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

References $DIC, $ilCtrl, ilObjectGUI\$tpl, ilUtil\getDataDir(), handleUploadedFiles(), initUserImportForm(), and initUserRoleAssignmentForm().

1022  {
1023  global $DIC;
1024 
1025  $tpl = $DIC->ui()->mainTemplate();
1026  $ilCtrl = $DIC->ctrl();
1027  $renderer = $DIC->ui()->renderer();
1028 
1029 
1030  $this->tabs_gui->clearTargets();
1031  $this->tabs_gui->setBackTarget($this->lng->txt('usrf'), $ilCtrl->getLinkTarget($this, 'view'));
1032 
1033  $this->initUserImportForm();
1034  if ($this->form->checkInput()) {
1035  $xml_file = $this->handleUploadedFiles();
1036  //importParser needs the full path to xml file
1037  $xml_file_full_path = ilUtil::getDataDir() . '/' . $xml_file;
1038 
1039  $form = $this->initUserRoleAssignmentForm($xml_file_full_path);
1040 
1041  $tpl->setContent($renderer->render($form));
1042  } else {
1043  $this->form->setValuesByPost();
1044  $tpl->setContent($this->form->getHtml());
1045  }
1046  }
handleUploadedFiles()
Handles uploaded zip/xmp files with Filesystem implementation.
initUserRoleAssignmentForm($xml_file_full_path)
global $ilCtrl
Definition: ilias.php:18
static getDataDir()
get data directory (outside webspace)
$DIC
Definition: xapitoken.php:46
initUserImportForm()
Init user import form.
+ Here is the call graph for this function:

◆ importUsersObject()

ilObjUserFolderGUI::importUsersObject ( )

Import Users with new form implementation.

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

References $_GET, $DIC, $ilUser, $keys, ilObjectGUI\$rbacreview, ilObjectGUI\$rbacsystem, $result, ilObjRole\_getAssignUsersStatus(), ilUtil\getDataDir(), getImportDir(), getUserOwnerId(), IL_IMPORT_FAILURE, IL_IMPORT_SUCCESS, IL_IMPORT_WARNING, IL_USER_IMPORT, initUserRoleAssignmentForm(), and USER_FOLDER_ID.

1464  {
1465  global $DIC;
1466 
1467  $ilUser = $DIC->user();
1468  $request = $DIC->http()->request();
1469  $rbacreview = $DIC->rbac()->review();
1470  $rbacsystem = $DIC->rbac()->system();
1471  $filesystem = $DIC->filesystem()->storage();
1472  $import_dir = $this->getImportDir();
1473 
1474 
1475  $file_list = $filesystem->listContents($import_dir);
1476 
1477  //Make sure there's only one file in the import directory at this point
1478  if (count($file_list) > 1) {
1479  $filesystem->deleteDir($import_dir);
1480  $this->ilias->raiseError(
1481  $this->lng->txt("usrimport_wrong_file_count"),
1482  $this->ilias->error_obj->MESSAGE
1483  );
1484  if (strtolower($_GET["baseClass"]) == "iladministrationgui") {
1485  $this->ctrl->redirect($this, "view");
1486  } else {
1487  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
1488  }
1489  } else {
1490  $xml_file = $file_list[0]->getPath();
1491  }
1492 
1493 
1494  //Need full path to xml file to initialise form
1495  $xml_path = ilUtil::getDataDir() . '/' . $xml_file;
1496 
1497 
1498  if ($request->getMethod() == "POST") {
1499  $form = $this->initUserRoleAssignmentForm($xml_path)->withRequest($request);
1500  $result = $form->getData();
1501  } else {
1502  $this->ilias->raiseError(
1503  $this->lng->txt("usrimport_form_not_evaluabe"),
1504  $this->ilias->error_obj->MESSAGE
1505  );
1506  if (strtolower($_GET["baseClass"]) == "iladministrationgui") {
1507  $this->ctrl->redirect($this, "view");
1508  } else {
1509  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
1510  }
1511  }
1512 
1513  $rule = $result["conflict_action"][0];
1514 
1515  //If local roles exist, merge the roles that are to be assigned, otherwise just take the array that has global roles
1516  $roles = isset($result["local_role_selection"]) ? array_merge($result["global_role_selection"], $result["local_role_selection"]) : $result["global_role_selection"];
1517 
1518  $role_assignment = array();
1519  foreach ($roles as $value) {
1520  $keys = explode("-", $value);
1521  $role_assignment[$keys[0]] = $keys[1];
1522  }
1523 
1524  $importParser = new ilUserImportParser($xml_path, IL_USER_IMPORT, $rule);
1525  $importParser->setFolderId($this->getUserOwnerId());
1526 
1527  // Catch hack attempts
1528  // We check here again, if the role folders are in the tree, and if the
1529  // user has permission on the roles.
1530  if (!empty($role_assignment)) {
1531  $global_roles = $rbacreview->getGlobalRoles();
1532  $roles_of_user = $rbacreview->assignedRoles($ilUser->getId());
1533  foreach ($role_assignment as $role_id) {
1534  if ($role_id != "") {
1535  if (in_array($role_id, $global_roles)) {
1536  if (!in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
1537  if ($role_id == SYSTEM_ROLE_ID && !in_array(SYSTEM_ROLE_ID, $roles_of_user)
1538  || ($this->object->getRefId() != USER_FOLDER_ID
1539  && !ilObjRole::_getAssignUsersStatus($role_id))
1540  ) {
1541  $filesystem->deleteDir($import_dir);
1542  $this->ilias->raiseError(
1543  $this->lng->txt("usrimport_with_specified_role_not_permitted"),
1544  $this->ilias->error_obj->MESSAGE
1545  );
1546  }
1547  }
1548  } else {
1549  $rolf = $rbacreview->getFoldersAssignedToRole($role_id, true);
1550  if ($rbacreview->isDeleted($rolf[0])
1551  || !$rbacsystem->checkAccess('write', $rolf[0])) {
1552  $filesystem->deleteDir($import_dir);
1553  $this->ilias->raiseError(
1554  $this->lng->txt("usrimport_with_specified_role_not_permitted"),
1555  $this->ilias->error_obj->MESSAGE
1556  );
1557  return;
1558  }
1559  }
1560  }
1561  }
1562  }
1563 
1564  if (isset($result['send_mail'])) {
1565  $importParser->setSendMail($result['send_mail'][0]);
1566  }
1567 
1568  $importParser->setRoleAssignment($role_assignment);
1569  $importParser->startParsing();
1570 
1571  // purge user import directory
1572  $filesystem->deleteDir($import_dir);
1573 
1574  switch ($importParser->getErrorLevel()) {
1575  case IL_IMPORT_SUCCESS:
1576  ilUtil::sendSuccess($this->lng->txt("user_imported"), true);
1577  break;
1578  case IL_IMPORT_WARNING:
1579  ilUtil::sendSuccess($this->lng->txt("user_imported_with_warnings") . $importParser->getProtocolAsHTML($this->lng->txt("import_warning_log")), true);
1580  break;
1581  case IL_IMPORT_FAILURE:
1582  $this->ilias->raiseError(
1583  $this->lng->txt("user_import_failed")
1584  . $importParser->getProtocolAsHTML($this->lng->txt("import_failure_log")),
1585  $this->ilias->error_obj->MESSAGE
1586  );
1587  break;
1588  }
1589 
1590  if (strtolower($_GET["baseClass"]) == "iladministrationgui") {
1591  $this->ctrl->redirect($this, "view");
1592  //ilUtil::redirect($this->ctrl->getLinkTarget($this));
1593  } else {
1594  $this->ctrl->redirectByClass('ilobjcategorygui', 'listUsers');
1595  }
1596  }
$result
getImportDir()
get user import directory name with new FileSystem implementation
$_GET["client_id"]
const IL_USER_IMPORT
const IL_IMPORT_FAILURE
const IL_IMPORT_WARNING
initUserRoleAssignmentForm($xml_file_full_path)
static _getAssignUsersStatus($a_role_id)
const IL_IMPORT_SUCCESS
$keys
Definition: metadata.php:187
$ilUser
Definition: imgupload.php:18
redirection script todo: (a better solution should control the processing via a xml file) ...
static getDataDir()
get data directory (outside webspace)
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
+ Here is the call graph for this function:

◆ initAccessRestrictionForm()

ilObjUserFolderGUI::initAccessRestrictionForm (   $a_from_search = false)
protected
Parameters
bool$a_from_search
Returns
|void

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

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

Referenced by confirmaccessRestrictObject(), and setAccessRestrictionObject().

617  {
618  $user_ids = $this->getActionUserIds();
619  if (!$user_ids) {
620  ilUtil::sendFailure($this->lng->txt('select_one'));
621  return $this->viewObject();
622  }
623 
624  include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
625  $form = new ilPropertyFormGUI();
626  $form->setTitle($this->lng->txt("time_limit_add_time_limit_for_selected"));
627  $form->setFormAction($this->ctrl->getFormAction($this, "confirmaccessRestrict"));
628 
629  $from = new ilDateTimeInputGUI($this->lng->txt("access_from"), "from");
630  $from->setShowTime(true);
631  $from->setRequired(true);
632  $form->addItem($from);
633 
634  $to = new ilDateTimeInputGUI($this->lng->txt("access_until"), "to");
635  $to->setRequired(true);
636  $to->setShowTime(true);
637  $form->addItem($to);
638 
639  $form->addCommandButton("confirmaccessRestrict", $this->lng->txt("confirm"));
640  $form->addCommandButton("view", $this->lng->txt("cancel"));
641 
642  foreach ($user_ids as $user_id) {
643  $ufield = new ilHiddenInputGUI("id[]");
644  $ufield->setValue($user_id);
645  $form->addItem($ufield);
646  }
647 
648  // return to search?
649  if ($a_from_search || $_POST["frsrch"]) {
650  $field = new ilHiddenInputGUI("frsrch");
651  $field->setValue(1);
652  $form->addItem($field);
653  }
654 
655  return $form;
656  }
This class represents a property form user interface.
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions" ...
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.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$_POST["username"]
setRequired($a_required)
Set Required.
setShowTime($a_showtime)
Set Show Time Information.
+ 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 1847 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilSetting, $log, $pass, 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(), setSubTabs(), ilCheckboxInputGUI\setValue(), and ilNonEditableValueGUI\setValue().

Referenced by generalSettingsObject(), and saveGeneralSettingsObject().

1848  {
1849  global $DIC;
1850 
1851  $ilSetting = $DIC['ilSetting'];
1852 
1853  $this->setSubTabs('settings');
1854  $this->tabs_gui->setTabActive('settings');
1855  $this->tabs_gui->setSubTabActive('general_settings');
1856 
1857  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1858  $this->form = new ilPropertyFormGUI();
1859  $this->form->setFormAction($this->ctrl->getFormAction($this, 'saveGeneralSettings'));
1860 
1861  $this->form->setTitle($this->lng->txt('general_settings'));
1862 
1863  $lua = new ilCheckboxInputGUI($this->lng->txt('enable_local_user_administration'), 'lua');
1864  $lua->setInfo($this->lng->txt('enable_local_user_administration_info'));
1865  $lua->setValue(1);
1866  $this->form->addItem($lua);
1867 
1868  $lrua = new ilCheckboxInputGUI($this->lng->txt('restrict_user_access'), 'lrua');
1869  $lrua->setInfo($this->lng->txt('restrict_user_access_info'));
1870  $lrua->setValue(1);
1871  $this->form->addItem($lrua);
1872 
1873  // enable alphabetical navigation in user administration
1874  $alph = new ilCheckboxInputGUI($this->lng->txt('user_adm_enable_alpha_nav'), 'user_adm_alpha_nav');
1875  //$alph->setInfo($this->lng->txt('restrict_user_access_info'));
1876  $alph->setValue(1);
1877  $this->form->addItem($alph);
1878 
1879  // account codes
1880  $code = new ilCheckboxInputGUI($this->lng->txt("user_account_code_setting"), "user_reactivate_code");
1881  $code->setInfo($this->lng->txt('user_account_code_setting_info'));
1882  $this->form->addItem($code);
1883 
1884  // delete own account
1885  $own = new ilCheckboxInputGUI($this->lng->txt("user_allow_delete_own_account"), "user_own_account");
1886  $this->form->addItem($own);
1887  $own_email = new ilEMailInputGUI($this->lng->txt("user_delete_own_account_notification_email"), "user_own_account_email");
1888  $own->addSubItem($own_email);
1889 
1890 
1891  // BEGIN SESSION SETTINGS
1892 
1893  // create session handling radio group
1894  $ssettings = new ilRadioGroupInputGUI($this->lng->txt('sess_mode'), 'session_handling_type');
1895 
1896  // first option, fixed session duration
1897  $fixed = new ilRadioOption($this->lng->txt('sess_fixed_duration'), ilSession::SESSION_HANDLING_FIXED);
1898 
1899  // create session reminder subform
1900  $cb = new ilCheckboxInputGUI($this->lng->txt("session_reminder"), "session_reminder_enabled");
1901  $expires = ilSession::getSessionExpireValue();
1902  $time = ilDatePresentation::secondsToString($expires, true);
1903  $cb->setInfo($this->lng->txt("session_reminder_info") . "<br />" .
1904  sprintf($this->lng->txt('session_reminder_session_duration'), $time));
1905  $fixed->addSubItem($cb);
1906 
1907  // add session handling to radio group
1908  $ssettings->addOption($fixed);
1909 
1910  // second option, session control
1911  $ldsh = new ilRadioOption($this->lng->txt('sess_load_dependent_session_handling'), ilSession::SESSION_HANDLING_LOAD_DEPENDENT);
1912 
1913  // add session control subform
1914  require_once('Services/Authentication/classes/class.ilSessionControl.php');
1915 
1916  // this is the max count of active sessions
1917  // that are getting started simlutanously
1918  $sub_ti = new ilTextInputGUI($this->lng->txt('session_max_count'), 'session_max_count');
1919  $sub_ti->setMaxLength(5);
1920  $sub_ti->setSize(5);
1921  $sub_ti->setInfo($this->lng->txt('session_max_count_info'));
1922  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1923  $sub_ti->setDisabled(true);
1924  }
1925  $ldsh->addSubItem($sub_ti);
1926 
1927  // after this (min) idle time the session can be deleted,
1928  // if there are further requests for new sessions,
1929  // but max session count is reached yet
1930  $sub_ti = new ilTextInputGUI($this->lng->txt('session_min_idle'), 'session_min_idle');
1931  $sub_ti->setMaxLength(5);
1932  $sub_ti->setSize(5);
1933  $sub_ti->setInfo($this->lng->txt('session_min_idle_info'));
1934  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1935  $sub_ti->setDisabled(true);
1936  }
1937  $ldsh->addSubItem($sub_ti);
1938 
1939  // after this (max) idle timeout the session expires
1940  // and become invalid, so it is not considered anymore
1941  // when calculating current count of active sessions
1942  $sub_ti = new ilTextInputGUI($this->lng->txt('session_max_idle'), 'session_max_idle');
1943  $sub_ti->setMaxLength(5);
1944  $sub_ti->setSize(5);
1945  $sub_ti->setInfo($this->lng->txt('session_max_idle_info'));
1946  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1947  $sub_ti->setDisabled(true);
1948  }
1949  $ldsh->addSubItem($sub_ti);
1950 
1951  // this is the max duration that can elapse between the first and the secnd
1952  // request to the system before the session is immidietly deleted
1953  $sub_ti = new ilTextInputGUI(
1954  $this->lng->txt('session_max_idle_after_first_request'),
1955  'session_max_idle_after_first_request'
1956  );
1957  $sub_ti->setMaxLength(5);
1958  $sub_ti->setSize(5);
1959  $sub_ti->setInfo($this->lng->txt('session_max_idle_after_first_request_info'));
1960  if (!$ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1961  $sub_ti->setDisabled(true);
1962  }
1963  $ldsh->addSubItem($sub_ti);
1964 
1965  // add session control to radio group
1966  $ssettings->addOption($ldsh);
1967 
1968  // add radio group to form
1969  if ($ilSetting->get('session_allow_client_maintenance', ilSessionControl::DEFAULT_ALLOW_CLIENT_MAINTENANCE)) {
1970  // just shows the status wether the session
1971  //setting maintenance is allowed by setup
1972  $this->form->addItem($ssettings);
1973  } else {
1974  // just shows the status wether the session
1975  //setting maintenance is allowed by setup
1976  $ti = new ilNonEditableValueGUI($this->lng->txt('session_config'), "session_config");
1977  $ti->setValue($this->lng->txt('session_config_maintenance_disabled'));
1978  $ssettings->setDisabled(true);
1979  $ti->addSubItem($ssettings);
1980  $this->form->addItem($ti);
1981  }
1982 
1983  // END SESSION SETTINGS
1984 
1985 
1986  $this->lng->loadLanguageModule('ps');
1987 
1988  $pass = new ilFormSectionHeaderGUI();
1989  $pass->setTitle($this->lng->txt('ps_password_settings'));
1990  $this->form->addItem($pass);
1991 
1992  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_change_on_first_login_enabled'), 'password_change_on_first_login_enabled');
1993  $check->setInfo($this->lng->txt('ps_password_change_on_first_login_enabled_info'));
1994  $this->form->addItem($check);
1995 
1996  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1997 
1998  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_must_not_contain_loginame'), 'password_must_not_contain_loginame');
1999  $check->setInfo($this->lng->txt('ps_password_must_not_contain_loginame_info'));
2000  $this->form->addItem($check);
2001 
2002  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_chars_and_numbers_enabled'), 'password_chars_and_numbers_enabled');
2003  //$check->setOptionTitle($this->lng->txt('ps_password_chars_and_numbers_enabled'));
2004  $check->setInfo($this->lng->txt('ps_password_chars_and_numbers_enabled_info'));
2005  $this->form->addItem($check);
2006 
2007  $check = new ilCheckboxInputGUI($this->lng->txt('ps_password_special_chars_enabled'), 'password_special_chars_enabled');
2008  //$check->setOptionTitle($this->lng->txt('ps_password_special_chars_enabled'));
2009  $check->setInfo($this->lng->txt('ps_password_special_chars_enabled_info'));
2010  $this->form->addItem($check);
2011 
2012  $text = new ilNumberInputGUI($this->lng->txt('ps_password_min_length'), 'password_min_length');
2013  $text->setInfo($this->lng->txt('ps_password_min_length_info'));
2014  $text->setSize(1);
2015  $text->setMaxLength(2);
2016  $this->form->addItem($text);
2017 
2018  $text = new ilNumberInputGUI($this->lng->txt('ps_password_max_length'), 'password_max_length');
2019  $text->setInfo($this->lng->txt('ps_password_max_length_info'));
2020  $text->setSize(2);
2021  $text->setMaxLength(3);
2022  $this->form->addItem($text);
2023 
2024  $text = new ilNumberInputGUI($this->lng->txt('ps_password_uppercase_chars_num'), 'password_ucase_chars_num');
2025  $text->setInfo($this->lng->txt('ps_password_uppercase_chars_num_info'));
2026  $text->setMinValue(0);
2027  $text->setSize(2);
2028  $text->setMaxLength(3);
2029  $this->form->addItem($text);
2030 
2031  $text = new ilNumberInputGUI($this->lng->txt('ps_password_lowercase_chars_num'), 'password_lowercase_chars_num');
2032  $text->setInfo($this->lng->txt('ps_password_lowercase_chars_num_info'));
2033  $text->setMinValue(0);
2034  $text->setSize(2);
2035  $text->setMaxLength(3);
2036  $this->form->addItem($text);
2037 
2038  $text = new ilNumberInputGUI($this->lng->txt('ps_password_max_age'), 'password_max_age');
2039  $text->setInfo($this->lng->txt('ps_password_max_age_info'));
2040  $text->setSize(2);
2041  $text->setMaxLength(3);
2042  $this->form->addItem($text);
2043 
2044  // password assistance
2045  $cb = new ilCheckboxInputGUI($this->lng->txt("enable_password_assistance"), "password_assistance");
2046  $cb->setInfo($this->lng->txt("password_assistance_info"));
2047  $this->form->addItem($cb);
2048 
2049  $pass = new ilFormSectionHeaderGUI();
2050  $pass->setTitle($this->lng->txt('ps_security_protection'));
2051  $this->form->addItem($pass);
2052 
2053  $text = new ilNumberInputGUI($this->lng->txt('ps_login_max_attempts'), 'login_max_attempts');
2054  $text->setInfo($this->lng->txt('ps_login_max_attempts_info'));
2055  $text->setSize(1);
2056  $text->setMaxLength(2);
2057  $this->form->addItem($text);
2058 
2059  // prevent login from multiple pcs at the same time
2060  $objCb = new ilCheckboxInputGUI($this->lng->txt('ps_prevent_simultaneous_logins'), 'ps_prevent_simultaneous_logins');
2061  $objCb->setValue(1);
2062  $objCb->setInfo($this->lng->txt('ps_prevent_simultaneous_logins_info'));
2063  $this->form->addItem($objCb);
2064 
2065 
2066 
2067 
2068  $log = new ilFormSectionHeaderGUI();
2069  $log->setTitle($this->lng->txt('loginname_settings'));
2070  $this->form->addItem($log);
2071 
2072  $chbChangeLogin = new ilCheckboxInputGUI($this->lng->txt('allow_change_loginname'), 'allow_change_loginname');
2073  $chbChangeLogin->setValue(1);
2074  $this->form->addItem($chbChangeLogin);
2075  $chbCreateHistory = new ilCheckboxInputGUI($this->lng->txt('history_loginname'), 'create_history_loginname');
2076  $chbCreateHistory->setInfo($this->lng->txt('loginname_history_info'));
2077  $chbCreateHistory->setValue(1);
2078 
2079  $chbChangeLogin->addSubItem($chbCreateHistory);
2080  $chbReuseLoginnames = new ilCheckboxInputGUI($this->lng->txt('reuse_of_loginnames_contained_in_history'), 'reuse_of_loginnames');
2081  $chbReuseLoginnames->setValue(1);
2082  $chbReuseLoginnames->setInfo($this->lng->txt('reuse_of_loginnames_contained_in_history_info'));
2083 
2084  $chbChangeLogin->addSubItem($chbReuseLoginnames);
2085  $chbChangeBlockingTime = new ilNumberInputGUI($this->lng->txt('loginname_change_blocking_time'), 'loginname_change_blocking_time');
2086  $chbChangeBlockingTime->allowDecimals(true);
2087  $chbChangeBlockingTime->setSuffix($this->lng->txt('days'));
2088  $chbChangeBlockingTime->setInfo($this->lng->txt('loginname_change_blocking_time_info'));
2089  $chbChangeBlockingTime->setSize(10);
2090  $chbChangeBlockingTime->setMaxLength(10);
2091  $chbChangeLogin->addSubItem($chbChangeBlockingTime);
2092 
2093  $la = new ilCheckboxInputGUI($this->lng->txt('usr_letter_avatars'), 'letter_avatars');
2094  $la->setValue(1);
2095  $la->setInfo($this->lng->txt('usr_letter_avatars_info'));
2096  $this->form->addItem($la);
2097 
2098  $passwordPolicySettingsHash = new \ilHiddenInputGUI('pw_policy_hash');
2099  $this->form->addItem($passwordPolicySettingsHash);
2100 
2101  $this->form->addCommandButton('saveGeneralSettings', $this->lng->txt('save'));
2102  }
setSubTabs($a_tab)
set sub tabs
This class represents an option in a radio group.
This class represents a property form user interface.
This class represents a section header in a property form.
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.
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.
This class represents a non editable value in a property form.
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
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 2747 of file class.ilObjUserFolderGUI.php.

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

Referenced by saveLoginnameSettingsObject(), and showLoginnameSettingsObject().

2748  {
2749  $this->setSubTabs('settings');
2750  $this->tabs_gui->setTabActive('settings');
2751  $this->tabs_gui->setSubTabActive('loginname_settings');
2752 
2753  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2754  $this->loginSettingsForm = new ilPropertyFormGUI;
2755  $this->loginSettingsForm->setFormAction($this->ctrl->getFormAction($this, 'saveLoginnameSettings'));
2756  $this->loginSettingsForm->setTitle($this->lng->txt('loginname_settings'));
2757 
2758  $chbChangeLogin = new ilCheckboxInputGUI($this->lng->txt('allow_change_loginname'), 'allow_change_loginname');
2759  $chbChangeLogin->setValue(1);
2760  $this->loginSettingsForm->addItem($chbChangeLogin);
2761  $chbCreateHistory = new ilCheckboxInputGUI($this->lng->txt('history_loginname'), 'create_history_loginname');
2762  $chbCreateHistory->setInfo($this->lng->txt('loginname_history_info'));
2763  $chbCreateHistory->setValue(1);
2764  $chbChangeLogin->addSubItem($chbCreateHistory);
2765  $chbReuseLoginnames = new ilCheckboxInputGUI($this->lng->txt('reuse_of_loginnames_contained_in_history'), 'reuse_of_loginnames');
2766  $chbReuseLoginnames->setValue(1);
2767  $chbReuseLoginnames->setInfo($this->lng->txt('reuse_of_loginnames_contained_in_history_info'));
2768  $chbChangeLogin->addSubItem($chbReuseLoginnames);
2769  $chbChangeBlockingTime = new ilNumberInputGUI($this->lng->txt('loginname_change_blocking_time'), 'loginname_change_blocking_time');
2770  $chbChangeBlockingTime->allowDecimals(true);
2771  $chbChangeBlockingTime->setSuffix($this->lng->txt('days'));
2772  $chbChangeBlockingTime->setInfo($this->lng->txt('loginname_change_blocking_time_info'));
2773  $chbChangeBlockingTime->setSize(10);
2774  $chbChangeBlockingTime->setMaxLength(10);
2775  $chbChangeLogin->addSubItem($chbChangeBlockingTime);
2776 
2777  $this->loginSettingsForm->addCommandButton('saveLoginnameSettings', $this->lng->txt('save'));
2778  }
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 2450 of file class.ilObjUserFolderGUI.php.

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

Referenced by newAccountMailObject().

2451  {
2452  global $DIC;
2453 
2454  $lng = $DIC['lng'];
2455  $ilCtrl = $DIC['ilCtrl'];
2456 
2457  $lng->loadLanguageModule("meta");
2458  $lng->loadLanguageModule("mail");
2459 
2460  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
2461  $form = new ilPropertyFormGUI();
2462  $form->setFormAction($ilCtrl->getFormAction($this));
2463 
2464  $form->setTitleIcon(ilUtil::getImagePath("icon_mail.svg"));
2465  $form->setTitle($lng->txt("user_new_account_mail"));
2466  $form->setDescription($lng->txt("user_new_account_mail_desc"));
2467 
2468  $langs = $lng->getInstalledLanguages();
2469  foreach ($langs as $lang_key) {
2470  $amail = $this->object->_lookupNewAccountMail($lang_key);
2471 
2472  $title = $lng->txt("meta_l_" . $lang_key);
2473  if ($lang_key == $lng->getDefaultLanguage()) {
2474  $title .= " (" . $lng->txt("default") . ")";
2475  }
2476 
2477  $header = new ilFormSectionHeaderGUI();
2478  $header->setTitle($title);
2479  $form->addItem($header);
2480 
2481  $subj = new ilTextInputGUI($lng->txt("subject"), "subject_" . $lang_key);
2482  // $subj->setRequired(true);
2483  $subj->setValue($amail["subject"]);
2484  $form->addItem($subj);
2485 
2486  $salg = new ilTextInputGUI($lng->txt("mail_salutation_general"), "sal_g_" . $lang_key);
2487  // $salg->setRequired(true);
2488  $salg->setValue($amail["sal_g"]);
2489  $form->addItem($salg);
2490 
2491  $salf = new ilTextInputGUI($lng->txt("mail_salutation_female"), "sal_f_" . $lang_key);
2492  // $salf->setRequired(true);
2493  $salf->setValue($amail["sal_f"]);
2494  $form->addItem($salf);
2495 
2496  $salm = new ilTextInputGUI($lng->txt("mail_salutation_male"), "sal_m_" . $lang_key);
2497  // $salm->setRequired(true);
2498  $salm->setValue($amail["sal_m"]);
2499  $form->addItem($salm);
2500 
2501  $body = new ilTextAreaInputGUI($lng->txt("message_content"), "body_" . $lang_key);
2502  // $body->setRequired(true);
2503  $body->setValue($amail["body"]);
2504  $body->setRows(10);
2505  $body->setCols(100);
2506  $form->addItem($body);
2507 
2508  $att = new ilFileInputGUI($lng->txt("attachment"), "att_" . $lang_key);
2509  $att->setAllowDeletion(true);
2510  if ($amail["att_file"]) {
2511  $att->setValue($amail["att_file"]);
2512  }
2513  $form->addItem($att);
2514  }
2515 
2516  $form->addCommandButton("saveNewAccountMail", $lng->txt("save"));
2517  $form->addCommandButton("cancelNewAccountMail", $lng->txt("cancel"));
2518 
2519  return $form;
2520  }
This class represents a property form user interface.
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.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
This class represents a text area property in a property form.
$DIC
Definition: xapitoken.php:46
+ 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 951 of file class.ilObjUserFolderGUI.php.

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

Referenced by importUserFormObject(), and importUserRoleAssignmentObject().

952  {
953  global $DIC;
954 
955  $lng = $DIC['lng'];
956  $ilCtrl = $DIC['ilCtrl'];
957 
958  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
959  $this->form = new ilPropertyFormGUI();
960 
961  // Import File
962  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
963  $fi = new ilFileInputGUI($lng->txt("import_file"), "importFile");
964  $fi->setSuffixes(array("xml", "zip"));
965  $fi->setRequired(true);
966  //$fi->enableFileNameSelection();
967  //$fi->setInfo($lng->txt(""));
968  $this->form->addItem($fi);
969 
970  $this->form->addCommandButton("importUserRoleAssignment", $lng->txt("import"));
971  $this->form->addCommandButton("importCancelled", $lng->txt("cancel"));
972 
973  $this->form->setTitle($lng->txt("import_users"));
974  $this->form->setFormAction($ilCtrl->getFormAction($this));
975  }
This class represents a property form user interface.
This class represents a file property in a property form.
global $ilCtrl
Definition: ilias.php:18
$DIC
Definition: xapitoken.php:46
setSuffixes($a_suffixes)
Set Accepted Suffixes.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initUserRoleAssignmentForm()

ilObjUserFolderGUI::initUserRoleAssignmentForm (   $xml_file_full_path)
private

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

References $DIC, $i, $ilUser, $n, ilObjectGUI\$rbacreview, ilObjectGUI\$rbacsystem, ilObjRole\_getAssignUsersStatus(), ilObjUserFolder\_lookupNewAccountMail(), IL_EXTRACT_ROLES, IL_IGNORE_ON_CONFLICT, IL_UPDATE_ON_CONFLICT, IL_VERIFY, USER_FOLDER_ID, and verifyXmlData().

Referenced by importUserRoleAssignmentObject(), and importUsersObject().

1049  {
1050  global $DIC;
1051 
1052  $ilUser = $DIC->user();
1053  $rbacreview = $DIC->rbac()->review();
1054  $rbacsystem = $DIC->rbac()->system();
1055  $ui = $DIC->ui()->factory();
1056 
1057  $importParser = new ilUserImportParser($xml_file_full_path, IL_VERIFY);
1058  $importParser->startParsing();
1059 
1060  $this->verifyXmlData($importParser);
1061 
1062  $xml_file_name = explode("/", $xml_file_full_path);
1063  $roles_import_filename = $ui->input()->field()->text($this->lng->txt("import_file"))
1064  ->withDisabled(true)
1065  ->withValue(end($xml_file_name));
1066 
1067 
1068  $roles_import_count = $ui->input()->field()->numeric($this->lng->txt("num_users"))
1069  ->withDisabled(true)
1070  ->withValue($importParser->getUserCount());
1071 
1072  $importParser = new ilUserImportParser($xml_file_full_path, IL_EXTRACT_ROLES);
1073  $importParser->startParsing();
1074  // Extract the roles
1075  $roles = $importParser->getCollectedRoles();
1076 
1077  // get global roles
1078  $all_gl_roles = $rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
1079  $gl_roles = array();
1080  $roles_of_user = $rbacreview->assignedRoles($ilUser->getId());
1081  foreach ($all_gl_roles as $obj_data) {
1082  // check assignment permission if called from local admin
1083  if ($this->object->getRefId() != USER_FOLDER_ID) {
1084  if (!in_array(SYSTEM_ROLE_ID, $roles_of_user) && !ilObjRole::_getAssignUsersStatus($obj_data['obj_id'])) {
1085  continue;
1086  }
1087  }
1088  // exclude anonymous role from list
1089  if ($obj_data["obj_id"] != ANONYMOUS_ROLE_ID) {
1090  // do not allow to assign users to administrator role if current user does not has SYSTEM_ROLE_ID
1091  if ($obj_data["obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID, $roles_of_user)) {
1092  $gl_roles[$obj_data["obj_id"]] = $obj_data["title"];
1093  }
1094  }
1095  }
1096 
1097  // global roles
1098  $got_globals = false;
1099  $global_selects = array();
1100  foreach ($roles as $role_id => $role) {
1101  if ($role["type"] == "Global") {
1102  if (!$got_globals) {
1103  $got_globals = true;
1104 
1105  $global_roles_assignment_info = $ui->input()->field()->text($this->lng->txt("roles_of_import_global"))
1106  ->withDisabled(true)
1107  ->withValue($this->lng->txt("assign_global_role"));
1108  }
1109 
1110  //select options for new form input to still have both ids
1111  $select_options = array();
1112  foreach ($gl_roles as $key => $value) {
1113  $select_options[$role_id . "-" . $key] = $value;
1114  }
1115 
1116  // pre selection for role
1117  $pre_select = array_search($role["name"], $select_options);
1118  if (!$pre_select) {
1119  switch ($role["name"]) {
1120  case "Administrator": // ILIAS 2/3 Administrator
1121  $pre_select = array_search("Administrator", $select_options);
1122  break;
1123 
1124  case "Autor": // ILIAS 2 Author
1125  $pre_select = array_search("User", $select_options);
1126  break;
1127 
1128  case "Lerner": // ILIAS 2 Learner
1129  $pre_select = array_search("User", $select_options);
1130  break;
1131 
1132  case "Gast": // ILIAS 2 Guest
1133  $pre_select = array_search("Guest", $select_options);
1134  break;
1135 
1136  default:
1137  $pre_select = array_search("User", $select_options);
1138  break;
1139  }
1140  }
1141 
1142  $select = $ui->input()->field()->select($role["name"], $select_options)
1143  ->withValue($pre_select)
1144  ->withRequired(true);
1145  array_push($global_selects, $select);
1146  }
1147  }
1148 
1149  // Check if local roles need to be assigned
1150  $got_locals = false;
1151  foreach ($roles as $role_id => $role) {
1152  if ($role["type"] == "Local") {
1153  $got_locals = true;
1154  break;
1155  }
1156  }
1157 
1158  if ($got_locals) {
1159  $local_roles_assignment_info = $ui->input()->field()->text($this->lng->txt("roles_of_import_local"))
1160  ->withDisabled(true)
1161  ->withValue($this->lng->txt("assign_local_role"));
1162 
1163 
1164  // get local roles
1165  if ($this->object->getRefId() == USER_FOLDER_ID) {
1166  // The import function has been invoked from the user folder
1167  // object. In this case, we show only matching roles,
1168  // because the user folder object is considered the parent of all
1169  // local roles and may contains thousands of roles on large ILIAS
1170  // installations.
1171  $loc_roles = array();
1172 
1173  $roleMailboxSearch = new \ilRoleMailboxSearch(new \ilMailRfc822AddressParserFactory());
1174  foreach ($roles as $role_id => $role) {
1175  if ($role["type"] == "Local") {
1176  $searchName = (substr($role['name'], 0, 1) == '#') ? $role['name'] : '#' . $role['name'];
1177  $matching_role_ids = $roleMailboxSearch->searchRoleIdsByAddressString($searchName);
1178  foreach ($matching_role_ids as $mid) {
1179  if (!in_array($mid, $loc_roles)) {
1180  $loc_roles[] = $mid;
1181  }
1182  }
1183  }
1184  }
1185  } else {
1186  // The import function has been invoked from a locally
1187  // administrated category. In this case, we show all roles
1188  // contained in the subtree of the category.
1189  $loc_roles = $rbacreview->getAssignableRolesInSubtree($this->object->getRefId());
1190  }
1191  $l_roles = array();
1192 
1193  // create a search array with .
1194  $l_roles_mailbox_searcharray = array();
1195  foreach ($loc_roles as $key => $loc_role) {
1196  // fetch context path of role
1197  $rolf = $rbacreview->getFoldersAssignedToRole($loc_role, true);
1198 
1199  // only process role folders that are not set to status "deleted"
1200  // and for which the user has write permissions.
1201  // We also don't show the roles which are in the ROLE_FOLDER_ID folder.
1202  // (The ROLE_FOLDER_ID folder contains the global roles).
1203  if (
1204  !$rbacreview->isDeleted($rolf[0]) &&
1205  $rbacsystem->checkAccess('write', $rolf[0]) &&
1206  $rolf[0] != ROLE_FOLDER_ID
1207  ) {
1208  // A local role is only displayed, if it is contained in the subtree of
1209  // the localy administrated category. If the import function has been
1210  // invoked from the user folder object, we show all local roles, because
1211  // the user folder object is considered the parent of all local roles.
1212  // Thus, if we start from the user folder object, we initialize the
1213  // isInSubtree variable with true. In all other cases it is initialized
1214  // with false, and only set to true if we find the object id of the
1215  // locally administrated category in the tree path to the local role.
1216  $isInSubtree = $this->object->getRefId() == USER_FOLDER_ID;
1217 
1218  $path_array = array();
1219  if ($this->tree->isInTree($rolf[0])) {
1220  // Create path. Paths which have more than 4 segments
1221  // are truncated in the middle.
1222  $tmpPath = $this->tree->getPathFull($rolf[0]);
1223  $tmpPath[] = $rolf[0];//adds target item to list
1224 
1225  for ($i = 1, $n = count($tmpPath) - 1; $i < $n; $i++) {
1226  if ($i < 3 || $i > $n - 3) {
1227  $path_array[] = $tmpPath[$i]['title'];
1228  } elseif ($i == 3 || $i == $n - 3) {
1229  $path_array[] = '...';
1230  }
1231 
1232  $isInSubtree |= $tmpPath[$i]['obj_id'] == $this->object->getId();
1233  }
1234  //revert this path for a better readability in dropdowns #18306
1235  $path = implode(" < ", array_reverse($path_array));
1236  } else {
1237  $path = "<b>Rolefolder " . $rolf[0] . " not found in tree! (Role " . $loc_role . ")</b>";
1238  }
1239  $roleMailboxAddress = (new \ilRoleMailboxAddress($loc_role))->value();
1240  $l_roles[$loc_role] = $roleMailboxAddress . ', ' . $path;
1241  }
1242  } //foreach role
1243 
1244  natcasesort($l_roles);
1245  $l_roles["ignore"] = $this->lng->txt("usrimport_ignore_role");
1246 
1247  $roleMailboxSearch = new \ilRoleMailboxSearch(new \ilMailRfc822AddressParserFactory());
1248  $local_selects = [];
1249  foreach ($roles as $role_id => $role) {
1250  if ($role["type"] == "Local") {
1251  /*$this->tpl->setCurrentBlock("local_role");
1252  $this->tpl->setVariable("TXT_IMPORT_LOCAL_ROLE", $role["name"]);*/
1253  $searchName = (substr($role['name'], 0, 1) == '#') ? $role['name'] : '#' . $role['name'];
1254  $matching_role_ids = $roleMailboxSearch->searchRoleIdsByAddressString($searchName);
1255  $pre_select = count($matching_role_ids) == 1 ? $role_id . "-" . $matching_role_ids[0] : "ignore";
1256 
1257  $selectable_roles = [];
1258  if ($this->object->getRefId() == USER_FOLDER_ID) {
1259  // There are too many roles in a large ILIAS installation
1260  // that's why whe show only a choice with the the option "ignore",
1261  // and the matching roles.
1262  $selectable_roles["ignore"] = $this->lng->txt("usrimport_ignore_role");
1263  foreach ($matching_role_ids as $id) {
1264  $selectable_roles[$role_id . "-" . $id] = $l_roles[$id];
1265  }
1266  } else {
1267  foreach ($l_roles as $local_role_id => $value) {
1268  if ($local_role_id !== "ignore") {
1269  $selectable_roles[$role_id . "-" . $local_role_id] = $value;
1270  }
1271  }
1272  }
1273 
1274  if (count($selectable_roles) > 0) {
1275  $select = $ui->input()->field()
1276  ->select($role["name"], $selectable_roles)
1277  ->withRequired(true);
1278  if (array_key_exists($pre_select, $selectable_roles)) {
1279  $select = $select->withValue($pre_select);
1280  }
1281  $local_selects[] = $select;
1282  }
1283  }
1284  }
1285  }
1286 
1287 
1288  $handlers = array(
1289  IL_IGNORE_ON_CONFLICT => $this->lng->txt("ignore_on_conflict"),
1290  IL_UPDATE_ON_CONFLICT => $this->lng->txt("update_on_conflict")
1291  );
1292 
1293  $conflict_action_select = $ui->input()->field()->select($this->lng->txt("conflict_handling"), $handlers, str_replace('\n', '<br>', $this->lng->txt("usrimport_conflict_handling_info")))
1294  ->withValue(IL_IGNORE_ON_CONFLICT)
1295  ->withRequired(true);
1296 
1297  // new account mail
1298  $this->lng->loadLanguageModule("mail");
1299  $amail = ilObjUserFolder::_lookupNewAccountMail($this->lng->getDefaultLanguage());
1300  if (trim($amail["body"]) != "" && trim($amail["subject"]) != "") {
1301  $send_checkbox = $ui->input()->field()->checkbox($this->lng->txt("user_send_new_account_mail"))
1302  ->withValue(true);
1303 
1304  $mail_section = $ui->input()->field()->section([$send_checkbox], $this->lng->txt("mail_account_mail"));
1305  }
1306 
1307  $file_info_section = $ui->input()->field()->section(
1308  [
1309  "filename" => $roles_import_filename,
1310  "import_count" => $roles_import_count,
1311  ],
1312  $this->lng->txt("file_info")
1313  );
1314 
1315  $form_action = $DIC->ctrl()->getFormActionByClass('ilObjUserFolderGui', 'importUsers');
1316 
1317  $form_elements = [
1318  "file_info" => $file_info_section
1319  ];
1320 
1321  if (!empty($global_selects)) {
1322  $global_role_info_section = $ui->input()
1323  ->field()
1324  ->section([$global_roles_assignment_info], $this->lng->txt("global_role_assignment"));
1325  $global_role_selection_section = $ui->input()->field()->section($global_selects, "");
1326  $form_elements["global_role_info"] = $global_role_info_section;
1327  $form_elements["global_role_selection"] = $global_role_selection_section;
1328  }
1329 
1330 
1331  if (!empty($local_selects)) {
1332  $local_role_info_section = $ui->input()->field()->section([$local_roles_assignment_info], $this->lng->txt("local_role_assignment"));
1333  $local_role_selection_section = $ui->input()->field()->section($local_selects, "");
1334 
1335  $form_elements["local_role_info"] = $local_role_info_section;
1336  $form_elements["local_role_selection"] = $local_role_selection_section;
1337  }
1338 
1339  $form_elements["conflict_action"] = $ui->input()->field()->section([$conflict_action_select], "");
1340 
1341  if (!empty($mail_section)) {
1342  $form_elements["send_mail"] = $mail_section;
1343  }
1344 
1345  return $ui->input()->container()->form()->standard(
1346  $form_action,
1347  $form_elements
1348  );
1349  }
const IL_EXTRACT_ROLES
static _getAssignUsersStatus($a_role_id)
Class ilMailRfc822AddressParserFactory.
static _lookupNewAccountMail($a_lang)
$ilUser
Definition: imgupload.php:18
$n
Definition: RandomTest.php:85
const IL_VERIFY
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
const IL_UPDATE_ON_CONFLICT
const IL_IGNORE_ON_CONFLICT
$i
Definition: metadata.php:24
+ 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 2848 of file class.ilObjUserFolderGUI.php.

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

2849  {
2850  global $DIC;
2851 
2852  $ilCtrl = $DIC['ilCtrl'];
2853 
2854  if (((int) $_GET["jmpToUser"]) > 0 && ilObject::_lookupType((int) $_GET["jmpToUser"]) == "usr") {
2855  $ilCtrl->setParameterByClass("ilobjusergui", "obj_id", (int) $_GET["jmpToUser"]);
2856  $ilCtrl->redirectByClass("ilobjusergui", "view");
2857  }
2858  }
$_GET["client_id"]
global $ilCtrl
Definition: ilias.php:18
static _lookupType($a_id, $a_reference=false)
lookup object type
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ learningProgressObject()

ilObjUserFolderGUI::learningProgressObject ( )

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

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

186  {
187  global $DIC;
188 
189  $rbacsystem = $DIC['rbacsystem'];
190  $tpl = $DIC['tpl'];
191 
192  // deprecated JF 27 May 2013
193  exit();
194 
195  if (!$rbacsystem->checkAccess("read", $this->object->getRefId()) ||
198  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
199  }
200 
201  include_once "Services/User/classes/class.ilUserLPTableGUI.php";
202  $tbl = new ilUserLPTableGUI($this, "learningProgress", $this->object->getRefId());
203 
204  $tpl->setContent($tbl->getHTML());
205  }
exit
Definition: login.php:29
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) ...
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ mailObject()

ilObjUserFolderGUI::mailObject ( )
protected

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

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

Referenced by showActionConfirmation().

3026  {
3027  global $DIC;
3028 
3029  $ilUser = $DIC['ilUser'];
3030 
3031  $user_ids = $this->getActionUserIds();
3032  if (!$user_ids) {
3033  ilUtil::sendFailure($this->lng->txt('select_one'), true);
3034  return $this->ctrl->redirect($this, 'view');
3035  }
3036 
3037  // remove existing (temporary) lists
3038  include_once "Services/Contact/classes/class.ilMailingLists.php";
3039  $list = new ilMailingLists($ilUser);
3040  $list->deleteTemporaryLists();
3041 
3042  // create (temporary) mailing list
3043  include_once "Services/Contact/classes/class.ilMailingList.php";
3044  $list = new ilMailingList($ilUser);
3045  $list->setMode(ilMailingList::MODE_TEMPORARY);
3046  $list->setTitle("-TEMPORARY SYSTEM LIST-");
3047  $list->setDescription("-USER ACCOUNTS MAIL-");
3048  $list->setCreateDate(date("Y-m-d H:i:s"));
3049  $list->insert();
3050  $list_id = $list->getId();
3051 
3052  // after list has been saved...
3053  foreach ($user_ids as $user_id) {
3054  $list->assignUser($user_id);
3055  }
3056 
3057  include_once "Services/Mail/classes/class.ilFormatMail.php";
3058  $umail = new ilFormatMail($ilUser->getId());
3059  $mail_data = $umail->getSavedData();
3060 
3061  if (!is_array($mail_data)) {
3062  $mail_data = array("user_id" => $ilUser->getId());
3063  }
3064 
3065  // ???
3066  // $mail_data = $umail->appendSearchResult(array('#il_ml_'.$list_id), 'to');
3067 
3068  $umail->savePostData(
3069  $mail_data['user_id'],
3070  $mail_data['attachments'],
3071  '#il_ml_' . $list_id, // $mail_data['rcp_to'],
3072  $mail_data['rcp_cc'],
3073  $mail_data['rcp_bcc'],
3074  $mail_data['m_type'],
3075  $mail_data['m_email'],
3076  $mail_data['m_subject'],
3077  $mail_data['m_message'],
3078  $mail_data['use_placeholders'],
3079  $mail_data['tpl_ctx_id'],
3080  $mail_data['tpl_ctx_params']
3081  );
3082 
3083  require_once 'Services/Mail/classes/class.ilMailFormCall.php';
3086  $this,
3087  '',
3088  array(),
3089  array(
3090  'type' => 'search_res'
3091  )
3092  )
3093  );
3094  }
getActionUserIds()
Get selected items for table action.
Class UserMail this class handles user mails.
$ilUser
Definition: imgupload.php:18
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())
$DIC
Definition: xapitoken.php:46
static redirect($a_script)
savePostData( $a_user_id, $a_attachments, $a_rcp_to, $a_rcp_cc, $a_rcp_bcc, $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
+ 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 2525 of file class.ilObjUserFolderGUI.php.

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

2526  {
2527  global $DIC;
2528 
2529  $lng = $DIC['lng'];
2530 
2531  $this->setSubTabs('settings');
2532  $this->tabs_gui->setTabActive('settings');
2533  $this->tabs_gui->setSubTabActive('user_new_account_mail');
2534 
2535  $form = $this->initNewAccountMailForm();
2536 
2537  $ftpl = new ilTemplate('tpl.usrf_new_account_mail.html', true, true, 'Services/User');
2538  $ftpl->setVariable("FORM", $form->getHTML());
2539  unset($form);
2540 
2541  // placeholder help text
2542  $ftpl->setVariable("TXT_USE_PLACEHOLDERS", $lng->txt("mail_nacc_use_placeholder"));
2543  $ftpl->setVariable("TXT_MAIL_SALUTATION", $lng->txt("mail_nacc_salutation"));
2544  $ftpl->setVariable("TXT_FIRST_NAME", $lng->txt("firstname"));
2545  $ftpl->setVariable("TXT_LAST_NAME", $lng->txt("lastname"));
2546  $ftpl->setVariable("TXT_EMAIL", $lng->txt("email"));
2547  $ftpl->setVariable("TXT_LOGIN", $lng->txt("mail_nacc_login"));
2548  $ftpl->setVariable("TXT_PASSWORD", $lng->txt("password"));
2549  $ftpl->setVariable("TXT_PASSWORD_BLOCK", $lng->txt("mail_nacc_pw_block"));
2550  $ftpl->setVariable("TXT_NOPASSWORD_BLOCK", $lng->txt("mail_nacc_no_pw_block"));
2551  $ftpl->setVariable("TXT_ADMIN_MAIL", $lng->txt("mail_nacc_admin_mail"));
2552  $ftpl->setVariable("TXT_ILIAS_URL", $lng->txt("mail_nacc_ilias_url"));
2553  $ftpl->setVariable("TXT_CLIENT_NAME", $lng->txt("mail_nacc_client_name"));
2554  $ftpl->setVariable("TXT_TARGET", $lng->txt("mail_nacc_target"));
2555  $ftpl->setVariable("TXT_TARGET_TITLE", $lng->txt("mail_nacc_target_title"));
2556  $ftpl->setVariable("TXT_TARGET_TYPE", $lng->txt("mail_nacc_target_type"));
2557  $ftpl->setVariable("TXT_TARGET_BLOCK", $lng->txt("mail_nacc_target_block"));
2558  $ftpl->setVariable("TXT_IF_TIMELIMIT", $lng->txt("mail_nacc_if_timelimit"));
2559  $ftpl->setVariable("TXT_TIMELIMIT", $lng->txt("mail_nacc_timelimit"));
2560 
2561  $this->tpl->setContent($ftpl->get());
2562  }
setSubTabs($a_tab)
set sub tabs
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ performExportObject()

ilObjUserFolderGUI::performExportObject ( )
protected
Exceptions
ilObjectException

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

References $_POST, and ilObjectGUI\checkPermission().

2405  {
2406  $this->checkPermission("write,read_users");
2407 
2408  $this->object->buildExportFile($_POST["export_type"]);
2409  $this->ctrl->redirect($this, 'export');
2410  }
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
$_POST["username"]
+ 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 211 of file class.ilObjUserFolderGUI.php.

References ilObjectGUI\viewObject().

212  {
213  include_once("./Services/User/classes/class.ilUserTableGUI.php");
214  $utab = new ilUserTableGUI($this, "view");
215  $utab->resetOffset();
216  $utab->resetFilter();
217 
218  // from "old" implementation
219  $this->viewObject(true);
220  }
viewObject()
viewObject container presentation for "administration -> repository, trash, permissions" ...
TableGUI class for user administration.
+ Here is the call graph for this function:

◆ restrictAccessObject()

ilObjUserFolderGUI::restrictAccessObject ( )

Restrict access.

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

References $_POST, and showActionConfirmation().

901  {
902  $_POST["selectedAction"] = "accessRestrict";
903  $this->showActionConfirmation($_POST["selectedAction"]);
904  }
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 1689 of file class.ilObjUserFolderGUI.php.

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

1690  {
1691  global $DIC;
1692 
1693  $ilUser = $DIC['ilUser'];
1694  $ilSetting = $DIC['ilSetting'];
1695 
1696  $this->initFormGeneralSettings();
1697  if ($this->form->checkInput()) {
1698  $valid = true;
1699 
1700  if (!strlen($this->form->getInput('loginname_change_blocking_time'))) {
1701  $valid = false;
1702  $this->form->getItemByPostVar('loginname_change_blocking_time')
1703  ->setAlert($this->lng->txt('loginname_change_blocking_time_invalidity_info'));
1704  }
1705 
1706  include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
1707  $security = ilSecuritySettings::_getInstance();
1708 
1709  // account security settings
1710  $security->setPasswordCharsAndNumbersEnabled((bool) $_POST["password_chars_and_numbers_enabled"]);
1711  $security->setPasswordSpecialCharsEnabled((bool) $_POST["password_special_chars_enabled"]);
1712  $security->setPasswordMinLength((int) $_POST["password_min_length"]);
1713  $security->setPasswordMaxLength((int) $_POST["password_max_length"]);
1714  $security->setPasswordNumberOfUppercaseChars((int) $_POST['password_ucase_chars_num']);
1715  $security->setPasswordNumberOfLowercaseChars((int) $_POST['password_lowercase_chars_num']);
1716  $security->setPasswordMaxAge((int) $_POST["password_max_age"]);
1717  $security->setLoginMaxAttempts((int) $_POST["login_max_attempts"]);
1718  $security->setPreventionOfSimultaneousLogins((bool) $_POST['ps_prevent_simultaneous_logins']);
1719  $security->setPasswordChangeOnFirstLoginEnabled((bool) $_POST['password_change_on_first_login_enabled']);
1720  $security->setPasswordMustNotContainLoginnameStatus((int) $_POST['password_must_not_contain_loginame']);
1721 
1722  if (!$security->validate($this->form)) {
1723  $valid = false;
1724  }
1725 
1726  if ($valid) {
1727  $security->save();
1728 
1729  include_once './Services/User/classes/class.ilUserAccountSettings.php';
1730  ilUserAccountSettings::getInstance()->enableLocalUserAdministration($this->form->getInput('lua'));
1731  ilUserAccountSettings::getInstance()->restrictUserAccess($this->form->getInput('lrua'));
1733 
1734  $ilSetting->set('allow_change_loginname', (int) $this->form->getInput('allow_change_loginname'));
1735  $ilSetting->set('create_history_loginname', (int) $this->form->getInput('create_history_loginname'));
1736  $ilSetting->set('reuse_of_loginnames', (int) $this->form->getInput('reuse_of_loginnames'));
1737  $save_blocking_time_in_seconds = (int) ($this->form->getInput('loginname_change_blocking_time') * 86400);
1738  $ilSetting->set('loginname_change_blocking_time', (int) $save_blocking_time_in_seconds);
1739  $ilSetting->set('user_adm_alpha_nav', (int) $this->form->getInput('user_adm_alpha_nav'));
1740  $ilSetting->set('user_reactivate_code', (int) $this->form->getInput('user_reactivate_code'));
1741 
1742  $ilSetting->set('user_delete_own_account', (int) $this->form->getInput('user_own_account'));
1743  $ilSetting->set('user_delete_own_account_email', $this->form->getInput('user_own_account_email'));
1744 
1745  $ilSetting->set("password_assistance", $this->form->getInput("password_assistance"));
1746 
1747  // BEGIN SESSION SETTINGS
1748  $ilSetting->set(
1749  'session_handling_type',
1750  (int) $this->form->getInput('session_handling_type')
1751  );
1752 
1753  if ($this->form->getInput('session_handling_type') == ilSession::SESSION_HANDLING_FIXED) {
1754  $ilSetting->set(
1755  'session_reminder_enabled',
1756  $this->form->getInput('session_reminder_enabled')
1757  );
1758  } elseif ($this->form->getInput('session_handling_type') == ilSession::SESSION_HANDLING_LOAD_DEPENDENT) {
1759  require_once 'Services/Authentication/classes/class.ilSessionControl.php';
1760  if (
1761  $ilSetting->get(
1762  'session_allow_client_maintenance',
1764  )
1765  ) {
1766  // has to be done BEFORE updating the setting!
1767  include_once "Services/Authentication/classes/class.ilSessionStatistics.php";
1768  ilSessionStatistics::updateLimitLog((int) $this->form->getInput('session_max_count'));
1769 
1770  $ilSetting->set(
1771  'session_max_count',
1772  (int) $this->form->getInput('session_max_count')
1773  );
1774  $ilSetting->set(
1775  'session_min_idle',
1776  (int) $this->form->getInput('session_min_idle')
1777  );
1778  $ilSetting->set(
1779  'session_max_idle',
1780  (int) $this->form->getInput('session_max_idle')
1781  );
1782  $ilSetting->set(
1783  'session_max_idle_after_first_request',
1784  (int) $this->form->getInput('session_max_idle_after_first_request')
1785  );
1786  }
1787  }
1788  // END SESSION SETTINGS
1789  $ilSetting->set('letter_avatars', (int) $this->form->getInput('letter_avatars'));
1790 
1791  $requestPasswordReset = false;
1792  if ($this->form->getInput('pw_policy_hash')) {
1793  $oldSettingsHash = $this->form->getInput('pw_policy_hash');
1794  $currentSettingsHash = md5(implode('', $this->getPasswordPolicySettingsMap($security)));
1795 
1796  $requestPasswordReset = ($oldSettingsHash !== $currentSettingsHash);
1797  }
1798 
1799  if ($requestPasswordReset) {
1800  $this->ctrl->redirect($this, 'askForUserPasswordReset');
1801  } else {
1802  ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
1803  }
1804  } else {
1805  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
1806  }
1807  } else {
1808  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
1809  }
1810  $this->form->setValuesByPost();
1811  $this->tpl->setContent($this->form->getHTML());
1812  }
$valid
initFormGeneralSettings()
init general settings form
getPasswordPolicySettingsMap(\ilSecuritySettings $security)
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.
$DIC
Definition: xapitoken.php:46
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 2147 of file class.ilObjUserFolderGUI.php.

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

Referenced by confirmSavedObject().

2148  {
2149  include_once 'Services/Search/classes/class.ilUserSearchOptions.php';
2150  include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
2151 
2152  global $DIC;
2153 
2154  $ilias = $DIC['ilias'];
2155  $ilSetting = $DIC['ilSetting'];
2156 
2158 
2159  // see ilUserFieldSettingsTableGUI
2160  include_once("./Services/User/classes/class.ilUserProfile.php");
2161  $up = new ilUserProfile();
2162  $up->skipField("username");
2163  $field_properties = $up->getStandardFields();
2164  $profile_fields = array_keys($field_properties);
2165 
2166  $valid = true;
2167  foreach ($profile_fields as $field) {
2168  if ($_POST["chb"]["required_" . $field] &&
2169  !(int) $_POST['chb']['visib_reg_' . $field]
2170  ) {
2171  $valid = false;
2172  break;
2173  }
2174  }
2175 
2176  if (!$valid) {
2177  global $DIC;
2178 
2179  $lng = $DIC['lng'];
2180  ilUtil::sendFailure($lng->txt('invalid_visible_required_options_selected'));
2181  $this->confirm_change = 1;
2182  $this->settingsObject();
2183  return;
2184  }
2185 
2186  // For the following fields, the required state can not be changed
2187  $fixed_required_fields = array(
2188  "firstname" => 1,
2189  "lastname" => 1,
2190  "upload" => 0,
2191  "password" => 0,
2192  "language" => 0,
2193  "skin_style" => 0,
2194  "hits_per_page" => 0,
2195  /*"show_users_online" => 0,*/
2196  "hide_own_online_status" => 0
2197  );
2198 
2199  // check if a course export state of any field has been added
2200  $privacy = ilPrivacySettings::_getInstance();
2201  if ($privacy->enabledCourseExport() == true &&
2202  $privacy->courseConfirmationRequired() == true &&
2203  $action != "save") {
2204  foreach ($profile_fields as $field) {
2205  if (!$ilias->getSetting("usr_settings_course_export_" . $field) && $_POST["chb"]["course_export_" . $field] == "1") {
2206  #ilUtil::sendQuestion($this->lng->txt('confirm_message_course_export'));
2207  #$this->confirm_change = 1;
2208  #$this->settingsObject();
2209  #return;
2210  }
2211  }
2212  }
2213  // Reset user confirmation
2214  if ($action == 'save') {
2215  include_once('Services/Membership/classes/class.ilMemberAgreement.php');
2217  }
2218 
2219  foreach ($profile_fields as $field) {
2220  // Enable disable searchable
2221  if (ilUserSearchOptions::_isSearchable($field)) {
2222  ilUserSearchOptions::_saveStatus($field, (bool) $_POST['chb']['searchable_' . $field]);
2223  }
2224 
2225  if (!$_POST["chb"]["visible_" . $field] && !$field_properties[$field]["visible_hide"]) {
2226  $user_settings_config->setVisible($field, false);
2227  } else {
2228  $user_settings_config->setVisible($field, true);
2229  }
2230 
2231  if (!$_POST["chb"]["changeable_" . $field] && !$field_properties[$field]["changeable_hide"]) {
2232  $user_settings_config->setChangeable($field, false);
2233  } else {
2234  $user_settings_config->setChangeable($field, true);
2235  }
2236 
2237  // registration visible
2238  if ((int) $_POST['chb']['visib_reg_' . $field] && !$field_properties[$field]["visib_reg_hide"]) {
2239  $ilSetting->set('usr_settings_visib_reg_' . $field, '1');
2240  } else {
2241  $ilSetting->set('usr_settings_visib_reg_' . $field, '0');
2242  }
2243 
2244  if ((int) $_POST['chb']['visib_lua_' . $field]) {
2245  $ilSetting->set('usr_settings_visib_lua_' . $field, '1');
2246  } else {
2247  $ilSetting->set('usr_settings_visib_lua_' . $field, '0');
2248  }
2249 
2250  if ((int) $_POST['chb']['changeable_lua_' . $field]) {
2251  $ilSetting->set('usr_settings_changeable_lua_' . $field, '1');
2252  } else {
2253  $ilSetting->set('usr_settings_changeable_lua_' . $field, '0');
2254  }
2255 
2256  if ($_POST["chb"]["export_" . $field] && !$field_properties[$field]["export_hide"]) {
2257  $ilias->setSetting("usr_settings_export_" . $field, "1");
2258  } else {
2259  $ilias->deleteSetting("usr_settings_export_" . $field);
2260  }
2261 
2262  // Course export/visibility
2263  if ($_POST["chb"]["course_export_" . $field] && !$field_properties[$field]["course_export_hide"]) {
2264  $ilias->setSetting("usr_settings_course_export_" . $field, "1");
2265  } else {
2266  $ilias->deleteSetting("usr_settings_course_export_" . $field);
2267  }
2268 
2269  // Group export/visibility
2270  if ($_POST["chb"]["group_export_" . $field] && !$field_properties[$field]["group_export_hide"]) {
2271  $ilias->setSetting("usr_settings_group_export_" . $field, "1");
2272  } else {
2273  $ilias->deleteSetting("usr_settings_group_export_" . $field);
2274  }
2275 
2276  $is_fixed = array_key_exists($field, $fixed_required_fields);
2277  if ($is_fixed && $fixed_required_fields[$field] || !$is_fixed && $_POST["chb"]["required_" . $field]) {
2278  $ilias->setSetting("require_" . $field, "1");
2279  } else {
2280  $ilias->deleteSetting("require_" . $field);
2281  }
2282  }
2283 
2284  if ($_POST["select"]["default_hits_per_page"]) {
2285  $ilias->setSetting("hits_per_page", $_POST["select"]["default_hits_per_page"]);
2286  }
2287 
2288  /*if ($_POST["select"]["default_show_users_online"])
2289  {
2290  $ilias->setSetting("show_users_online",$_POST["select"]["default_show_users_online"]);
2291  }*/
2292 
2293  if ($_POST["chb"]["export_preferences"]) {
2294  $ilias->setSetting("usr_settings_export_preferences", $_POST["chb"]["export_preferences"]);
2295  } else {
2296  $ilias->deleteSetting("usr_settings_export_preferences");
2297  }
2298 
2299  $ilias->setSetting('mail_incoming_mail', (int) $_POST['select']['default_mail_incoming_mail']);
2300  $ilias->setSetting('chat_osc_accept_msg', ilUtil::stripSlashes($_POST['select']['default_chat_osc_accept_msg']));
2301  $ilias->setSetting('bs_allow_to_contact_me', ilUtil::stripSlashes($_POST['select']['default_bs_allow_to_contact_me']));
2302  $ilias->setSetting('hide_own_online_status', ilUtil::stripSlashes($_POST['select']['default_hide_own_online_status']));
2303 
2304  ilUtil::sendSuccess($this->lng->txt("usr_settings_saved"));
2305  $this->settingsObject();
2306  }
$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
$DIC
Definition: xapitoken.php:46
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 2780 of file class.ilObjUserFolderGUI.php.

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

2781  {
2782  global $DIC;
2783 
2784  $ilUser = $DIC['ilUser'];
2785  $ilSetting = $DIC['ilSetting'];
2786 
2787  $this->initLoginSettingsForm();
2788  if ($this->loginSettingsForm->checkInput()) {
2789  $valid = true;
2790 
2791  if (!strlen($this->loginSettingsForm->getInput('loginname_change_blocking_time'))) {
2792  $valid = false;
2793  $this->loginSettingsForm->getItemByPostVar('loginname_change_blocking_time')
2794  ->setAlert($this->lng->txt('loginname_change_blocking_time_invalidity_info'));
2795  }
2796 
2797  if ($valid) {
2798  $save_blocking_time_in_seconds = (int) $this->loginSettingsForm->getInput('loginname_change_blocking_time') * 86400;
2799 
2800  $ilSetting->set('allow_change_loginname', (int) $this->loginSettingsForm->getInput('allow_change_loginname'));
2801  $ilSetting->set('create_history_loginname', (int) $this->loginSettingsForm->getInput('create_history_loginname'));
2802  $ilSetting->set('reuse_of_loginnames', (int) $this->loginSettingsForm->getInput('reuse_of_loginnames'));
2803  $ilSetting->set('loginname_change_blocking_time', (int) $save_blocking_time_in_seconds);
2804 
2805  ilUtil::sendSuccess($this->lng->txt('saved_successfully'));
2806  } else {
2807  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
2808  }
2809  } else {
2810  ilUtil::sendFailure($this->lng->txt('form_input_not_valid'));
2811  }
2812  $this->loginSettingsForm->setValuesByPost();
2813 
2814  $this->tpl->setVariable('ADM_CONTENT', $this->loginSettingsForm->getHTML());
2815  }
$valid
$ilUser
Definition: imgupload.php:18
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ saveNewAccountMailObject()

ilObjUserFolderGUI::saveNewAccountMailObject ( )

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

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

2570  {
2571  global $DIC;
2572 
2573  $lng = $DIC['lng'];
2574 
2575  $langs = $lng->getInstalledLanguages();
2576  foreach ($langs as $lang_key) {
2577  $this->object->_writeNewAccountMail(
2578  $lang_key,
2579  ilUtil::stripSlashes($_POST["subject_" . $lang_key]),
2580  ilUtil::stripSlashes($_POST["sal_g_" . $lang_key]),
2581  ilUtil::stripSlashes($_POST["sal_f_" . $lang_key]),
2582  ilUtil::stripSlashes($_POST["sal_m_" . $lang_key]),
2583  ilUtil::stripSlashes($_POST["body_" . $lang_key])
2584  );
2585 
2586  if ($_FILES["att_" . $lang_key]["tmp_name"]) {
2587  $this->object->_updateAccountMailAttachment(
2588  $lang_key,
2589  $_FILES["att_" . $lang_key]["tmp_name"],
2590  $_FILES["att_" . $lang_key]["name"]
2591  );
2592  }
2593 
2594  if ($_POST["att_" . $lang_key . "_delete"]) {
2595  $this->object->_deleteAccountMailAttachment($lang_key);
2596  }
2597  }
2598 
2599  ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
2600  $this->ctrl->redirect($this, "newAccountMail");
2601  }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
$DIC
Definition: xapitoken.php:46
$_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 2883 of file class.ilObjUserFolderGUI.php.

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

2884  {
2885  if (!count((array) $a_usr_ids)) {
2886  ilUtil::sendFailure($this->lng->txt('select_one'));
2887  return false;
2888  }
2889 
2890  $_POST['id'] = $a_usr_ids;
2891 
2892  // no real confirmation here
2893  if (stristr($a_cmd, "export")) {
2894  $cmd = $a_cmd . "Object";
2895  return $this->$cmd();
2896  }
2897 
2898  $_POST['selectedAction'] = $a_cmd;
2899  return $this->showActionConfirmation($a_cmd, true);
2900  }
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:

◆ searchUserAccessFilterCallable()

ilObjUserFolderGUI::searchUserAccessFilterCallable ( array  $a_user_ids)
Parameters
array$a_user_ids
Returns
array

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

References ilObjectGUI\$access, $DIC, ilObjectGUI\checkPermissionBool(), ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

2864  : array
2865  {
2866  global $DIC;
2867  $access = $DIC->access();
2868 
2869  if (!$this->checkPermissionBool("read_users")) {
2870  $a_user_ids = $access->filterUserIdsByPositionOfCurrentUser(
2873  $a_user_ids
2874  );
2875  }
2876 
2877  return $a_user_ids;
2878  }
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
+ Here is the call graph for this function:

◆ setAccessRestrictionObject()

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

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

References initAccessRestrictionForm().

Referenced by confirmaccessRestrictObject(), and showActionConfirmation().

602  {
603  if (!$a_form) {
604  $a_form = $this->initAccessRestrictionForm($a_from_search);
605  }
606  $this->tpl->setContent($a_form->getHTML());
607 
608  // #10963
609  return true;
610  }
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 2673 of file class.ilObjUserFolderGUI.php.

References $DIC, $ilUser, and ilObjectGUI\$rbacsystem.

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

2674  {
2675  global $DIC;
2676 
2677  $rbacsystem = $DIC['rbacsystem'];
2678  $ilUser = $DIC['ilUser'];
2679 
2680  switch ($a_tab) {
2681  case "settings":
2682  $this->tabs_gui->addSubTabTarget(
2683  'general_settings',
2684  $this->ctrl->getLinkTarget($this, 'generalSettings'),
2685  'generalSettings',
2686  get_class($this)
2687  );
2688  $this->tabs_gui->addSubTabTarget(
2689  "standard_fields",
2690  $this->ctrl->getLinkTarget($this, 'settings'),
2691  array("settings", "saveGlobalUserSettings"),
2692  get_class($this)
2693  );
2694  $this->tabs_gui->addSubTabTarget(
2695  "user_defined_fields",
2696  $this->ctrl->getLinkTargetByClass("ilcustomuserfieldsgui", "listUserDefinedFields"),
2697  "listUserDefinedFields",
2698  get_class($this)
2699  );
2700  $this->tabs_gui->addSubTabTarget(
2701  "user_new_account_mail",
2702  $this->ctrl->getLinkTarget($this, 'newAccountMail'),
2703  "newAccountMail",
2704  get_class($this)
2705  );
2706 
2707  $this->tabs_gui->addSubTabTarget(
2708  "starting_points",
2709  $this->ctrl->getLinkTargetByClass("iluserstartingpointgui", "startingPoints"),
2710  "startingPoints",
2711  get_class($this)
2712  );
2713 
2714 
2715  $this->tabs_gui->addSubTabTarget(
2716  "user_profile_info",
2717  $this->ctrl->getLinkTargetByClass("ilUserProfileInfoSettingsGUI", ''),
2718  "",
2719  "ilUserProfileInfoSettingsGUI"
2720  );
2721 
2722  #$this->tabs_gui->addSubTab("account_codes", $this->lng->txt("user_account_codes"),
2723  # $this->ctrl->getLinkTargetByClass("ilaccountcodesgui"));
2724  break;
2725  }
2726  }
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46
+ 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 2117 of file class.ilObjUserFolderGUI.php.

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

Referenced by saveGlobalUserSettingsObject().

2118  {
2119  global $DIC;
2120 
2121  $tpl = $DIC['tpl'];
2122  $lng = $DIC['lng'];
2123  $ilias = $DIC['ilias'];
2124  $ilTabs = $DIC['ilTabs'];
2125 
2126  include_once 'Services/Search/classes/class.ilUserSearchOptions.php';
2127  $lng->loadLanguageModule("administration");
2128  $lng->loadLanguageModule("mail");
2129  $lng->loadLanguageModule("chatroom");
2130  $this->setSubTabs('settings');
2131  $ilTabs->activateTab('settings');
2132  $ilTabs->activateSubTab('standard_fields');
2133 
2134  include_once("./Services/User/classes/class.ilUserFieldSettingsTableGUI.php");
2135  $tab = new ilUserFieldSettingsTableGUI($this, "settings");
2136  if ($this->confirm_change) {
2137  $tab->setConfirmChange();
2138  }
2139  $tpl->setContent($tab->getHTML());
2140  }
setSubTabs($a_tab)
set sub tabs
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUserOwnerId()

ilObjUserFolderGUI::setUserOwnerId (   $a_id)

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

59  {
60  $this->user_owner_id = $a_id;
61  }

◆ showActionConfirmation()

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

display activation confirmation screen

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

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

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

806  {
807  global $DIC;
808 
809  $ilTabs = $DIC['ilTabs'];
810 
811  $user_ids = $this->getActionUserIds();
812  if (!$user_ids) {
813  $this->ilias->raiseError($this->lng->txt("no_checkbox"), $this->ilias->error_obj->MESSAGE);
814  }
815 
816  if (!$a_from_search) {
817  $ilTabs->activateTab("obj_usrf");
818  } else {
819  $ilTabs->activateTab("search_user_extended");
820  }
821 
822  if (strcmp($action, "accessRestrict") == 0) {
823  return $this->setAccessRestrictionObject(null, $a_from_search);
824  }
825  if (strcmp($action, "mail") == 0) {
826  return $this->mailObject();
827  }
828 
829  unset($this->data);
830 
831  if (!$a_from_search) {
832  $cancel = "cancelUserFolderAction";
833  } else {
834  $cancel = "cancelSearchAction";
835  }
836 
837  // display confirmation message
838  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
839  $cgui = new ilConfirmationGUI();
840  $cgui->setFormAction($this->ctrl->getFormAction($this));
841  $cgui->setHeaderText($this->lng->txt("info_" . $action . "_sure"));
842  $cgui->setCancel($this->lng->txt("cancel"), $cancel);
843  $cgui->setConfirm($this->lng->txt("confirm"), "confirm" . $action);
844 
845  if ($a_from_search) {
846  $cgui->addHiddenItem("frsrch", 1);
847  }
848 
849  foreach ($user_ids as $id) {
850  $user = new ilObjUser($id);
851 
852  $login = $user->getLastLogin();
853  if (!$login) {
854  $login = $this->lng->txt("never");
855  } else {
857  }
858 
859  $caption = $user->getFullname() . " (" . $user->getLogin() . ")" . ", " .
860  $user->getEmail() . " - " . $this->lng->txt("last_login") . ": " . $login;
861 
862  $cgui->addItem("id[]", $id, $caption);
863  }
864 
865  $this->tpl->setContent($cgui->getHTML());
866 
867  return true;
868  }
$login
Definition: cron.php:13
const IL_CAL_DATETIME
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.
redirection script todo: (a better solution should control the processing via a xml file) ...
$DIC
Definition: xapitoken.php:46
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 382 of file class.ilObjUserFolderGUI.php.

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

383  {
384  global $DIC;
385 
386  $rbacsystem = $DIC['rbacsystem'];
387 
388  $operations = array();
389  //var_dump($this->actions);
390  if ($this->actions == "") {
391  $d = array(
392  "delete" => array("name" => "delete", "lng" => "delete"),
393  "activate" => array("name" => "activate", "lng" => "activate"),
394  "deactivate" => array("name" => "deactivate", "lng" => "deactivate"),
395  "accessRestrict" => array("name" => "accessRestrict", "lng" => "accessRestrict"),
396  "accessFree" => array("name" => "accessFree", "lng" => "accessFree"),
397  "export" => array("name" => "export", "lng" => "export")
398  );
399  } else {
400  $d = $this->actions;
401  }
402  foreach ($d as $row) {
403  if ($rbacsystem->checkAccess($row["name"], $this->object->getRefId())) {
404  $operations[] = $row;
405  }
406  }
407 
408  if (count($operations) > 0) {
409  $select = "<select name=\"selectedAction\">\n";
410  foreach ($operations as $val) {
411  $select .= "<option value=\"" . $val["name"] . "\"";
412  if (strcmp($_POST["selectedAction"], $val["name"]) == 0) {
413  $select .= " selected=\"selected\"";
414  }
415  $select .= ">";
416  $select .= $this->lng->txt($val["lng"]);
417  $select .= "</option>";
418  }
419  $select .= "</select>";
420  $this->tpl->setCurrentBlock("tbl_action_select");
421  $this->tpl->setVariable("SELECT_ACTION", $select);
422  $this->tpl->setVariable("BTN_NAME", "userAction");
423  $this->tpl->setVariable("BTN_VALUE", $this->lng->txt("submit"));
424  $this->tpl->parseCurrentBlock();
425  }
426 
427  if ($with_subobjects === true) {
428  $subobjs = $this->showPossibleSubObjects();
429  }
430 
431  if ((count($operations) > 0) or $subobjs === true) {
432  $this->tpl->setCurrentBlock("tbl_action_row");
433  $this->tpl->setVariable("COLUMN_COUNTS", count($this->data["cols"]));
434  $this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg"));
435  $this->tpl->setVariable("ALT_ARROW", $this->lng->txt("actions"));
436  $this->tpl->parseCurrentBlock();
437  }
438  }
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
showPossibleSubObjects()
show possible subobjects (pulldown menu) overwritten to prevent displaying of role templates in local...
$DIC
Definition: xapitoken.php:46
$_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 2728 of file class.ilObjUserFolderGUI.php.

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

2729  {
2730  global $DIC;
2731 
2732  $ilSetting = $DIC['ilSetting'];
2733 
2734  $show_blocking_time_in_days = (int) $ilSetting->get('loginname_change_blocking_time') / 86400;
2735 
2736  $this->initLoginSettingsForm();
2737  $this->loginSettingsForm->setValuesByArray(array(
2738  'allow_change_loginname' => (bool) $ilSetting->get('allow_change_loginname'),
2739  'create_history_loginname' => (bool) $ilSetting->get('create_history_loginname'),
2740  'reuse_of_loginnames' => (bool) $ilSetting->get('reuse_of_loginnames'),
2741  'loginname_change_blocking_time' => (float) $show_blocking_time_in_days
2742  ));
2743 
2744  $this->tpl->setVariable('ADM_CONTENT', $this->loginSettingsForm->getHTML());
2745  }
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
+ 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 446 of file class.ilObjUserFolderGUI.php.

References $d, $DIC, $i, ilObjectGUI\$rbacsystem, and ilUtil\formSelect().

Referenced by showActions().

447  {
448  global $DIC;
449 
450  $rbacsystem = $DIC['rbacsystem'];
451 
452  $d = $this->objDefinition->getCreatableSubObjects($this->object->getType());
453 
454  if (!$rbacsystem->checkAccess('create_usr', $this->object->getRefId())) {
455  unset($d["usr"]);
456  }
457 
458  if (count($d) > 0) {
459  foreach ($d as $row) {
460  $count = 0;
461  if ($row["max"] > 0) {
462  //how many elements are present?
463  for ($i = 0; $i < count($this->data["ctrl"]); $i++) {
464  if ($this->data["ctrl"][$i]["type"] == $row["name"]) {
465  $count++;
466  }
467  }
468  }
469  if ($row["max"] == "" || $count < $row["max"]) {
470  $subobj[] = $row["name"];
471  }
472  }
473  }
474 
475  if (is_array($subobj)) {
476  //build form
477  $opts = ilUtil::formSelect(12, "new_type", $subobj);
478  $this->tpl->setCurrentBlock("add_object");
479  $this->tpl->setVariable("SELECT_OBJTYPE", $opts);
480  $this->tpl->setVariable("BTN_NAME", "create");
481  $this->tpl->setVariable("TXT_ADD", $this->lng->txt("add"));
482  $this->tpl->parseCurrentBlock();
483 
484  return true;
485  }
486 
487  return false;
488  }
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.
$DIC
Definition: xapitoken.php:46
for($i=6; $i< 13; $i++) for($i=1; $i< 13; $i++) $d
Definition: date.php:296
$i
Definition: metadata.php:24
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ userActionObject()

ilObjUserFolderGUI::userActionObject ( )

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

References $_POST, and showActionConfirmation().

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

◆ usrExportCsvObject()

ilObjUserFolderGUI::usrExportCsvObject ( )
protected

Export csv.

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

References ilObjectGUI\checkPermissionBool(), checkUserManipulationAccessBool(), ilUtil\deliverFile(), ilObjUserFolder\FILE_TYPE_CSV, getActionUserIds(), and ilUtil\sendFailure().

2987  {
2988  $user_ids = $this->getActionUserIds();
2989  if (!$user_ids) {
2990  ilUtil::sendFailure($this->lng->txt('select_one'), true);
2991  return $this->ctrl->redirect($this, 'view');
2992  }
2993 
2994  if ($this->checkPermissionBool("write,read_users")) {
2995  $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_CSV, $user_ids);
2996  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2997  } elseif ($this->checkUserManipulationAccessBool()) {
2998  $fullname = $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_CSV, $user_ids, true);
2999  ilUtil::deliverFile($fullname, $this->object->getExportFilename(ilObjUserFolder::FILE_TYPE_CSV), '', false, true);
3000  }
3001  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
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:

◆ usrExportX86Object()

ilObjUserFolderGUI::usrExportX86Object ( )
protected

Export excel.

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

References ilObjectGUI\checkPermissionBool(), checkUserManipulationAccessBool(), ilUtil\deliverFile(), ilObjUserFolder\FILE_TYPE_EXCEL, getActionUserIds(), and ilUtil\sendFailure().

2967  {
2968  $user_ids = $this->getActionUserIds();
2969  if (!$user_ids) {
2970  ilUtil::sendFailure($this->lng->txt('select_one'), true);
2971  return $this->ctrl->redirect($this, 'view');
2972  }
2973 
2974  if ($this->checkPermissionBool('write,read_users')) {
2975  $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_EXCEL, $user_ids);
2976  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
2977  } elseif ($this->checkUserManipulationAccessBool()) {
2978  $fullname = $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_EXCEL, $user_ids, true);
2979  ilUtil::deliverFile($fullname . '.xlsx', $this->object->getExportFilename(ilObjUserFolder::FILE_TYPE_EXCEL) . '.xlsx', '', false, true);
2980  }
2981  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
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:

◆ usrExportXmlObject()

ilObjUserFolderGUI::usrExportXmlObject ( )
protected

Export xml.

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

References ilObjectGUI\checkPermissionBool(), checkUserManipulationAccessBool(), ilUtil\deliverFile(), ilObjUserFolder\FILE_TYPE_XML, getActionUserIds(), and ilUtil\sendFailure().

3007  {
3008  $user_ids = $this->getActionUserIds();
3009  if (!$user_ids) {
3010  ilUtil::sendFailure($this->lng->txt('select_one'), true);
3011  return $this->ctrl->redirect($this, 'view');
3012  }
3013  if ($this->checkPermissionBool("write,read_users")) {
3014  $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_XML, $user_ids);
3015  $this->ctrl->redirectByClass("ilobjuserfoldergui", "export");
3016  } elseif ($this->checkUserManipulationAccessBool()) {
3017  $fullname = $this->object->buildExportFile(ilObjUserFolder::FILE_TYPE_XML, $user_ids, true);
3018  ilUtil::deliverFile($fullname, $this->object->getExportFilename(ilObjUserFolder::FILE_TYPE_XML), '', false, true);
3019  }
3020  }
checkUserManipulationAccessBool()
Check if current user has access to manipulate user data.
getActionUserIds()
Get selected items for table action.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
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:

◆ verifyXmlData()

ilObjUserFolderGUI::verifyXmlData (   $importParser)

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

References $DIC, getImportDir(), IL_IMPORT_FAILURE, IL_IMPORT_SUCCESS, and IL_IMPORT_WARNING.

Referenced by initUserRoleAssignmentForm().

1438  {
1439  global $DIC;
1440 
1441  $filesystem = $DIC->filesystem()->storage();
1442 
1443  $import_dir = $this->getImportDir();
1444  switch ($importParser->getErrorLevel()) {
1445  case IL_IMPORT_SUCCESS:
1446  break;
1447  case IL_IMPORT_WARNING:
1448  $this->tpl->setVariable("IMPORT_LOG", $importParser->getProtocolAsHTML($this->lng->txt("verification_warning_log")));
1449  break;
1450  case IL_IMPORT_FAILURE:
1451  $filesystem->deleteDir($import_dir);
1452  $this->ilias->raiseError(
1453  $this->lng->txt("verification_failed") . $importParser->getProtocolAsHTML($this->lng->txt("verification_failure_log")),
1454  $this->ilias->error_obj->MESSAGE
1455  );
1456  return;
1457  }
1458  }
getImportDir()
get user import directory name with new FileSystem implementation
const IL_IMPORT_FAILURE
const IL_IMPORT_WARNING
const IL_IMPORT_SUCCESS
redirection script todo: (a better solution should control the processing via a xml file) ...
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ viewObject()

ilObjUserFolderGUI::viewObject (   $reset_filter = false)

list users

public

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

References $_GET, ilObjectGUI\$access, $DIC, $ilSetting, ilObjectGUI\$rbacsystem, ilObjectGUI\$tpl, ilLocalUser\_getAllUserIds(), ilLocalUser\_getUserFolderId(), ilObjUser\getFirstLettersOfLastnames(), ilLinkButton\getInstance(), ilUserTableGUI\MODE_USER_FOLDER, ilObjUserFolder\ORG_OP_EDIT_USER_ACCOUNTS, and USER_FOLDER_ID.

259  {
260  global $DIC;
261 
262  $rbacsystem = $DIC['rbacsystem'];
263  $ilToolbar = $DIC->toolbar();
264  $tpl = $DIC['tpl'];
265  $ilSetting = $DIC['ilSetting'];
266  $access = $DIC->access();
267  $user_filter = null;
268 
269  include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
270 
271  if ($rbacsystem->checkAccess('create_usr', $this->object->getRefId()) ||
272  $rbacsystem->checkAccess('cat_administrate_users', $this->object->getRefId())) {
273  $button = ilLinkButton::getInstance();
274  $button->setCaption("usr_add");
275  $button->setUrl($this->ctrl->getLinkTarget($this, "addUser"));
276  $ilToolbar->addButtonInstance($button);
277 
278  $button = ilLinkButton::getInstance();
279  $button->setCaption("import_users");
280  $button->setUrl($this->ctrl->getLinkTarget($this, "importUserForm"));
281  $ilToolbar->addButtonInstance($button);
282  }
283 
284  if (
285  !$access->checkAccess('read_users', '', USER_FOLDER_ID) &&
286  $access->checkRbacOrPositionPermissionAccess(
287  'read_users',
290  )) {
292  $user_filter = $access->filterUserIdsByRbacOrPositionOfCurrentUser(
293  'read_users',
296  $users
297  );
298  }
299 
300  // alphabetical navigation
301  if ((int) $ilSetting->get('user_adm_alpha_nav')) {
302  if (count($ilToolbar->getItems()) > 0) {
303  $ilToolbar->addSeparator();
304  }
305 
306  // alphabetical navigation
307  include_once("./Services/Form/classes/class.ilAlphabetInputGUI.php");
308  $ai = new ilAlphabetInputGUI("", "first");
309  include_once("./Services/User/classes/class.ilObjUser.php");
310  $ai->setLetters(ilObjUser::getFirstLettersOfLastnames($user_filter));
311  $ai->setParentCommand($this, "chooseLetter");
312  $ai->setHighlighted($_GET["letter"]);
313  $ilToolbar->addInputItem($ai, true);
314  }
315 
316  include_once("./Services/User/classes/class.ilUserTableGUI.php");
317  $utab = new ilUserTableGUI($this, "view", ilUserTableGUI::MODE_USER_FOLDER, false);
318  $utab->addFilterItemValue('user_ids', $user_filter);
319  $utab->getItems();
320 
321  $tpl->setContent($utab->getHTML());
322  }
static getFirstLettersOfLastnames(?array $user_ids=null)
Get first letters of all lastnames.
$_GET["client_id"]
This class represents a text property in a property form.
TableGUI class for user administration.
static _getUserFolderId()
static _getAllUserIds($a_filter=0)
global $ilSetting
Definition: privfeed.php:17
$DIC
Definition: xapitoken.php:46
const USER_FOLDER_ID
Class ilObjUserFolder.
+ 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().

◆ $object

ilObjUserFolderGUI::$object

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

◆ $user_settings_config

ilObjUserFolderGUI::$user_settings_config
protected

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

Referenced by saveGlobalUserSettingsObject().


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