ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilObjUserGUI Class Reference

Class ilObjUserGUI. More...

+ Inheritance diagram for ilObjUserGUI:
+ Collaboration diagram for ilObjUserGUI:

Public Member Functions

 ilObjUserGUI ($a_data, $a_id, $a_call_by_reference=false, $a_prepare_output=true)
 Constructor public.
executeCommand ()
 execute command
 setTitleAndDescription ()
 called by prepare output
 cancelObject ()
 getAdminTabs (&$tabs_gui)
 admin and normal tabs are equal for roles
 getTabs (&$tabs_gui)
 get tabs
 setBackTarget ($a_text, $a_link)
 set back tab target
 __checkUserDefinedRequiredFields ()
 display user create form
 __showUserDefinedFields ()
 initCreate ()
 createObject ()
 Display user create form.
 saveObject ()
 save user data public
 editObject ()
 Display user edit form.
 updateObject ()
 Update user.
 getValues ()
 Get values from user object and put them into form.
 initForm ($a_mode)
 Init user form.
 editOldObject ()
 display user edit form
 uploadUserPictureObject ()
 upload user image
 removeUserPictureObject ()
 remove user image
 updateObjectOld ()
 save user data public
 assignSaveObject ()
 assign users to role
 roleassignmentObject ()
 display roleassignment panel
 applyFilterObject ()
 Apply filter.
 resetFilterObject ()
 Reset filter.
 __getDateSelect ($a_type, $a_varname, $a_selected)
 __toUnix ($a_time_arr)
 __showRolesTable ($a_result_set, $a_role_ids=NULL)
__initTableGUI ()
 __setTableGUIBasicData (&$tbl, &$result_set, $from="")
 standard implementation for tables use 'from' variable use different initial setting of table
 __unsetSessionVariables ()
 __buildFilterSelect ()
 hitsperpageObject ()
 addAdminLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded)
 showUpperIcon ()
 __sendProfileMail ()
 _goto ($a_target)
 Goto user profile screen.
- Public Member Functions inherited from ilObjectGUI
 ilObjectGUI ($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor public.
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not)
 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
 getCreationMode ()
 get creation mode
 getHTML ()
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled
 cancelDeleteObject ()
 cancel deletion of object
 cancelObject ($in_rep=false)
 cancel action and go back to previous page public
 cancelCreation ()
 cancel create action and go back to repository parent
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g.
 isVisible ($a_ref_id, $a_type)
 viewObject ()
 list childs of current object
 deleteObject ($a_error=false)
 Display deletion confirmation screen.
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI.

Data Fields

 $ilCtrl
 $gender
 $type
 $user_ref_id
- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 $ilias
 $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

 loadValuesFromForm ($a_mode= 'create')
 isSettingChangeable ($a_field)
 Check if setting is visible This is the case when called from user folder.
 handleIgnoredRequiredFields ()
 Handles ignored required fields by changing the required flag of form elements.
- Protected Member Functions inherited from ilObjectGUI
 assignObject ()
 prepareOutput ()
 prepare output
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add header action menu.
 insertHeaderAction ($a_list_gui)
 Insert header action into main template.
 addHeaderAction ()
 Add header action menu.
 redrawHeaderActionObject ()
 Ajax call: redraw action header only.
 setTabs ()
 set admin tabs public
 setAdminTabs ()
 set admin tabs public
 setLocator ()
 set Locator
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded)
 omitLocator ($a_omit=true)
 initCreationForms ($a_new_type)
 Init creation froms.
 getCreationFormsHTML (array $a_forms)
 Get HTML for creation forms (accordion)
 initCreateForm ($a_new_type)
 Init object creation form.
 initDidacticTemplate (ilPropertyFormGUI $form)
 Show didactic template types.
 addDidacticTemplateOptions (array &$a_options)
 Add custom templates.
 getDidacticTemplateVar ($a_type)
 Get didactic template setting from creation screen.
 putObjectInTree (ilObject $a_obj, $a_parent_node_id=null)
 Add object to tree at given position.
 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook.
 initEditForm ()
 Init object edit form.
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form.
 getEditFormValues ()
 Get values for edit form.
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields.
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object.
 afterUpdate ()
 Post (successful) object update hook.
 initImportForm ($a_new_type)
 Init object import form.
 importFileObject ($parent_id=null)
 Import.
 afterImport (ilObject $a_new_object)
 Post (successful) object import hook.
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g.
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g.
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu)
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl.
 getTitlesByRefId ($a_ref_ids)
 get Titles of objects this method is used for error messages in methods cut/copy/paste
 __showButton ($a_cmd, $a_text, $a_target= '')
 __showClipboardTable ($a_result_set, $a_from="")
 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
 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.
 getCenterColumnHTML ()
 Get center column.
 getRightColumnHTML ()
 Display right column.
 setColumnSettings ($column_gui)
 May be overwritten in subclasses.
 checkPermission ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission and redirect on error.
 checkPermissionBool ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission.

Additional Inherited Members

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

Detailed Description

Member Function Documentation

ilObjUserGUI::__buildFilterSelect ( )

Definition at line 3413 of file class.ilObjUserGUI.php.

References $_SESSION, and ilUtil\formSelect().

Referenced by roleassignmentObject().

{
$action[0] = $this->lng->txt('assigned_roles');
$action[1] = $this->lng->txt('all_roles');
$action[2] = $this->lng->txt('all_global_roles');
$action[3] = $this->lng->txt('all_local_roles');
$action[4] = $this->lng->txt('internal_local_roles_only');
$action[5] = $this->lng->txt('non_internal_local_roles_only');
return ilUtil::formSelect($_SESSION['filtered_roles'],"filter",$action,false,true);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::__checkUserDefinedRequiredFields ( )

display user create form

Definition at line 223 of file class.ilObjUserGUI.php.

References $_POST, and ilUserDefinedFields\_getInstance().

Referenced by updateObjectOld().

{
include_once './Services/User/classes/class.ilUserDefinedFields.php';
$this->user_defined_fields =& ilUserDefinedFields::_getInstance();
foreach($this->user_defined_fields->getDefinitions() as $field_id => $definition)
{
if($definition['required'] and !strlen($_POST['udf'][$field_id]))
{
return false;
}
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::__getDateSelect (   $a_type,
  $a_varname,
  $a_selected 
)

Definition at line 3266 of file class.ilObjUserGUI.php.

References ilUtil\formSelect().

Referenced by editOldObject().

{
switch($a_type)
{
case "minute":
for($i=0;$i<=60;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "hour":
for($i=0;$i<24;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "day":
for($i=1;$i<32;$i++)
{
$days[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);
case "month":
for($i=1;$i<13;$i++)
{
$month[$i] = $i < 10 ? "0".$i : $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$month,false,true);
case "year":
if($a_selected < date('Y',time()))
{
$start = $a_selected;
}
else
{
$start = date('Y',time());
}
for($i = $start;$i < date("Y",time()) + 11;++$i)
{
$year[$i] = $i;
}
return ilUtil::formSelect($a_selected,$a_varname,$year,false,true);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

& ilObjUserGUI::__initTableGUI ( )

Reimplemented from ilObjectGUI.

Definition at line 3383 of file class.ilObjUserGUI.php.

Referenced by __showRolesTable().

{
include_once "./Services/Table/classes/class.ilTableGUI.php";
return new ilTableGUI(0,false);
}

+ Here is the caller graph for this function:

ilObjUserGUI::__sendProfileMail ( )

Definition at line 3476 of file class.ilObjUserGUI.php.

References $_POST, ilObjectGUI\$ilias, $ilUser, and ilLanguage\loadLanguageModule().

Referenced by updateObject(), and updateObjectOld().

{
global $ilUser,$ilias;
if($_POST['send_mail'] != 'y')
{
return '';
}
if(!strlen($this->object->getEmail()))
{
return '';
}
// Choose language of user
$usr_lang = new ilLanguage($this->object->getLanguage());
$usr_lang->loadLanguageModule('crs');
$usr_lang->loadLanguageModule('registration');
include_once "Services/Mail/classes/class.ilMimeMail.php";
$mmail = new ilMimeMail();
$mmail->autoCheck(false);
$mmail->From($ilUser->getEmail());
$mmail->To($this->object->getEmail());
// mail subject
$subject = $usr_lang->txt("profile_changed");
// mail body
$body = ($usr_lang->txt("reg_mail_body_salutation")." ".$this->object->getFullname().",\n\n");
$date = $this->object->getApproveDate();
// Approve
if((time() - strtotime($date)) < 10)
{
$body .= ($usr_lang->txt('reg_mail_body_approve')."\n\n");
}
else
{
$body .= ($usr_lang->txt('reg_mail_body_profile_changed')."\n\n");
}
// Append login info only if password has been chacnged
if($_POST['passwd'] != '********')
{
$body .= $usr_lang->txt("reg_mail_body_text2")."\n".
ILIAS_HTTP_PATH."/login.php?client_id=".$ilias->client_id."\n".
$usr_lang->txt("login").": ".$this->object->getLogin()."\n".
$usr_lang->txt("passwd").": ".$_POST['passwd']."\n\n";
}
$body .= ($usr_lang->txt("reg_mail_body_text3")."\n");
$body .= $this->object->getProfileAsString($usr_lang);
$mmail->Subject($subject);
$mmail->Body($body);
$mmail->Send();
return "<br/>".$this->lng->txt("mail_sent");
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::__setTableGUIBasicData ( $tbl,
$result_set,
  $a_from = "" 
)

standard implementation for tables use 'from' variable use different initial setting of table

Reimplemented from ilObjectGUI.

Definition at line 3390 of file class.ilObjUserGUI.php.

References $_GET.

Referenced by __showRolesTable().

{
switch($from)
{
default:
$order = $_GET["sort_by"] ? $_GET["sort_by"] : "title";
break;
}
//$tbl->enable("hits");
$tbl->setOrderColumn($order);
$tbl->setOrderDirection($_GET["sort_order"]);
$tbl->setOffset($_GET["offset"]);
$tbl->setLimit($_GET["limit"]);
$tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
$tbl->setData($result_set);
}

+ Here is the caller graph for this function:

ilObjUserGUI::__showRolesTable (   $a_result_set,
  $a_role_ids = NULL 
)

Definition at line 3326 of file class.ilObjUserGUI.php.

References ilObjectGUI\$actions, ilObjectGUI\$tpl, __initTableGUI(), __setTableGUIBasicData(), ilUtil\array_php2js(), and ilUtil\getImagePath().

Referenced by roleassignmentObject().

{
global $rbacsystem;
$actions = array("assignSave" => $this->lng->txt("change_assignment"));
$tbl =& $this->__initTableGUI();
$tpl =& $tbl->getTemplateObject();
$tpl->setCurrentBlock("tbl_form_header");
$tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("tbl_action_row");
$tpl->setVariable("COLUMN_COUNTS",4);
$tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png"));
foreach ($actions as $name => $value)
{
$tpl->setCurrentBlock("tbl_action_btn");
$tpl->setVariable("BTN_NAME",$name);
$tpl->setVariable("BTN_VALUE",$value);
$tpl->parseCurrentBlock();
}
if (!empty($a_role_ids))
{
// set checkbox toggles
$tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
$tpl->setVariable("JS_VARNAME","role_id");
$tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($a_role_ids));
$tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
$tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
$tpl->parseCurrentBlock();
}
$tpl->setVariable("TPLPATH",$this->tpl->tplPath);
$this->ctrl->setParameter($this,"cmd","roleassignment");
// title & header columns
$tbl->setTitle($this->lng->txt("edit_roleassignment"),"icon_role.png",$this->lng->txt("roles"));
//user must be administrator
$tbl->setHeaderNames(array("",$this->lng->txt("role"),$this->lng->txt("description"),$this->lng->txt("context")));
$tbl->setHeaderVars(array("","title","description","context"),$this->ctrl->getParameterArray($this,"",false));
$tbl->setColumnWidth(array("","30%","40%","30%"));
$this->__setTableGUIBasicData($tbl,$a_result_set,"roleassignment");
$tbl->render();
$this->tpl->setVariable("ROLES_TABLE",$tbl->tpl->get());
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::__showUserDefinedFields ( )

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

References $_SESSION, ilUserDefinedFields\_getInstance(), ilUtil\formSelect(), ilUtil\prepareFormOutput(), and UDF_TYPE_TEXT.

Referenced by editOldObject().

{
include_once './Services/User/classes/class.ilUserDefinedFields.php';
$this->user_defined_fields =& ilUserDefinedFields::_getInstance();
if($this->object->getType() == 'usr')
{
$user_defined_data = $this->object->getUserDefinedData();
}
foreach($this->user_defined_fields->getDefinitions() as $field_id => $definition)
{
$old = isset($_SESSION["error_post_vars"]["udf"][$field_id]) ?
$_SESSION["error_post_vars"]["udf"][$field_id] : $user_defined_data[$field_id];
if($definition['field_type'] == UDF_TYPE_TEXT)
{
$this->tpl->setCurrentBlock("field_text");
$this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
$this->tpl->setVariable("FIELD_VALUE",ilUtil::prepareFormOutput($old));
$this->tpl->parseCurrentBlock();
}
else
{
$this->tpl->setCurrentBlock("field_select");
$this->tpl->setVariable("SELECT_BOX",ilUtil::formSelect($old,
'udf['.$definition['field_id'].']',
$this->user_defined_fields->fieldValuesToSelectArray(
$definition['field_values']),
false,
true));
$this->tpl->parseCurrentBlock();
}
$this->tpl->setCurrentBlock("user_defined");
if($definition['required'])
{
$name = $definition['field_name']."<span class=\"asterisk\">*</span>";
}
else
{
$name = $definition['field_name'];
}
$this->tpl->setVariable("TXT_FIELD_NAME",$name);
$this->tpl->parseCurrentBlock();
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::__toUnix (   $a_time_arr)

Definition at line 3316 of file class.ilObjUserGUI.php.

Referenced by editOldObject(), and updateObjectOld().

{
return mktime($a_time_arr["hour"],
$a_time_arr["minute"],
$a_time_arr["second"],
$a_time_arr["month"],
$a_time_arr["day"],
$a_time_arr["year"]);
}

+ Here is the caller graph for this function:

ilObjUserGUI::__unsetSessionVariables ( )

Definition at line 3408 of file class.ilObjUserGUI.php.

References $_SESSION.

{
unset($_SESSION["filtered_roles"]);
}
ilObjUserGUI::_goto (   $a_target)

Goto user profile screen.

Definition at line 3541 of file class.ilObjUserGUI.php.

References $_GET, $ilCtrl, $ilUser, ilObjUser\_lookupId(), exit, and ilUtil\stripSlashes().

{
global $ilUser, $ilCtrl;
// #10888
if($a_target == md5("usrdelown"))
{
if($ilUser->getId() != ANONYMOUS_USER_ID &&
$ilUser->hasDeletionFlag())
{
$ilCtrl->setTargetScript("ilias.php");
$ilCtrl->initBaseClass("ilpersonaldesktopgui");
$ilCtrl->redirectByClass(array("ilpersonaldesktopgui", "ilpersonalsettingsgui"), "deleteOwnAccount3");
}
exit("This account is not flagged for deletion."); // #12160
}
if (substr($a_target, 0, 1) == "n")
{
$a_target = ilObjUser::_lookupId(ilUtil::stripSlashes(substr($a_target, 1)));
}
$_GET["cmd"] = "view";
$_GET["user_id"] = (int) $a_target;
$_GET["baseClass"] = "ilPublicUserProfileGUI";
$_GET["cmdClass"] = "ilpublicuserprofilegui";
include("ilias.php");
}

+ Here is the call graph for this function:

ilObjUserGUI::addAdminLocatorItems ( )

should be overwritten to add object specific items (repository items are preloaded)

Reimplemented from ilObjectGUI.

Definition at line 3435 of file class.ilObjUserGUI.php.

References $_GET, ilFrameTargetInfo\_getFrame(), ilObject\_lookupObjId(), and USER_FOLDER_ID.

{
global $ilLocator;
$ilLocator->clearItems();
if ($_GET["admin_mode"] == "settings") // system settings
{
$ilLocator->addItem($this->lng->txt("administration"),
$this->ctrl->getLinkTargetByClass("iladministrationgui", "frameset"),
if ($_GET['ref_id'] == USER_FOLDER_ID)
{
$ilLocator->addItem($this->lng->txt("obj_".ilObject::_lookupType(
$this->ctrl->getLinkTargetByClass("ilobjuserfoldergui", "view"));
}
elseif ($_GET['ref_id'] == ROLE_FOLDER_ID)
{
$ilLocator->addItem($this->lng->txt("obj_".ilObject::_lookupType(
$this->ctrl->getLinkTargetByClass("ilobjrolefoldergui", "view"));
}
if ($_GET["obj_id"] > 0)
{
$ilLocator->addItem($this->object->getTitle(),
$this->ctrl->getLinkTarget($this, "view"));
}
}
else // repository administration
{
// ?
}
}

+ Here is the call graph for this function:

ilObjUserGUI::applyFilterObject ( )

Apply filter.

Definition at line 3245 of file class.ilObjUserGUI.php.

References roleassignmentObject().

{
include_once("./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
$table_gui = new ilRoleAssignmentTableGUI($this, "roleassignment");
$table_gui->writeFilterToSession(); // writes filter to session
$table_gui->resetOffset(); // sets record offest to 0 (first page)
}

+ Here is the call graph for this function:

ilObjUserGUI::assignSaveObject ( )

assign users to role

public

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

References $_GET, $_POST, ilUtil\sendFailure(), and ilUtil\sendSuccess().

{
global $rbacsystem, $rbacadmin, $rbacreview;
if (!$rbacsystem->checkAccess("edit_roleassignment", $this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_assign_role_to_user"),$this->ilias->error_obj->MESSAGE);
}
$selected_roles = $_POST["role_id"] ? $_POST["role_id"] : array();
$posted_roles = $_POST["role_id_ctrl"] ? $_POST["role_id_ctrl"] : array();
// prevent unassignment of system role from system user
if ($this->object->getId() == SYSTEM_USER_ID and in_array(SYSTEM_ROLE_ID, $posted_roles))
{
array_push($selected_roles,SYSTEM_ROLE_ID);
}
$global_roles_all = $rbacreview->getGlobalRoles();
$assigned_roles_all = $rbacreview->assignedRoles($this->object->getId());
$assigned_roles = array_intersect($assigned_roles_all,$posted_roles);
$assigned_global_roles_all = array_intersect($assigned_roles_all,$global_roles_all);
$assigned_global_roles = array_intersect($assigned_global_roles_all,$posted_roles);
$posted_global_roles = array_intersect($selected_roles,$global_roles_all);
if ((empty($selected_roles) and count($assigned_roles_all) == count($assigned_roles))
or (empty($posted_global_roles) and count($assigned_global_roles_all) == count($assigned_global_roles)))
{
//$this->ilias->raiseError($this->lng->txt("msg_min_one_role")."<br/>".$this->lng->txt("action_aborted"),$this->ilias->error_obj->MESSAGE);
// workaround. sometimes jumps back to wrong page
ilUtil::sendFailure($this->lng->txt("msg_min_one_role")."<br/>".$this->lng->txt("action_aborted"),true);
$this->ctrl->redirect($this,'roleassignment');
}
foreach (array_diff($assigned_roles,$selected_roles) as $role)
{
$rbacadmin->deassignUser($role,$this->object->getId());
}
foreach (array_diff($selected_roles,$assigned_roles) as $role)
{
$rbacadmin->assignUser($role,$this->object->getId(),false);
}
include_once "./Services/AccessControl/classes/class.ilObjRole.php";
// update object data entry (to update last modification date)
$this->object->update();
ilUtil::sendSuccess($this->lng->txt("msg_roleassignment_changed"),true);
if(strtolower($_GET["baseClass"]) == 'iladministrationgui')
{
$this->ctrl->redirect($this,'roleassignment');
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}

+ Here is the call graph for this function:

ilObjUserGUI::cancelObject ( )

Definition at line 131 of file class.ilObjUserGUI.php.

References $_GET, and ilSession\clear().

{
ilSession::clear("saved_post");
if(strtolower($_GET["baseClass"]) == 'iladministrationgui')
{
$this->ctrl->redirectByClass("ilobjuserfoldergui", "view");
//$return_location = $_GET["cmd_return_location"];
//ilUtil::redirect($this->ctrl->getLinkTarget($this,$return_location));
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}

+ Here is the call graph for this function:

ilObjUserGUI::createObject ( )

Display user create form.

Reimplemented from ilObjectGUI.

Definition at line 358 of file class.ilObjUserGUI.php.

References $ilUser, ilObjectGUI\$tpl, initCreate(), and initForm().

{
global $tpl, $rbacsystem, $rbacreview, $ilUser;
if (!$rbacsystem->checkAccess('create_usr', $this->usrf_ref_id) and
!$rbacsystem->checkAccess('cat_administrate_users',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
}
$this->initCreate();
$this->initForm("create");
return $tpl->setContent($this->form_gui->getHtml());
}

+ Here is the call graph for this function:

ilObjUserGUI::editObject ( )

Display user edit form.

public

Reimplemented from ilObjectGUI.

Definition at line 553 of file class.ilObjUserGUI.php.

References $ilCtrl, ilObjectGUI\$ilias, $ilSetting, $ilUser, getValues(), initForm(), and USER_FOLDER_ID.

Referenced by removeUserPictureObject(), and updateObjectOld().

{
global $ilias, $rbacsystem, $rbacreview, $rbacadmin, $styleDefinition, $ilUser
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
//load ILIAS settings
$settings = $ilias->getAllSettings();
// User folder
if($this->usrf_ref_id == USER_FOLDER_ID and !$rbacsystem->checkAccess('visible,read',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
// if called from local administration $this->usrf_ref_id is category id
// Todo: this has to be fixed. Do not mix user folder id and category id
if($this->usrf_ref_id != USER_FOLDER_ID)
{
// check if user is assigned to category
if(!$rbacsystem->checkAccess('cat_administrate_users',$this->object->getTimeLimitOwner()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
}
if($this->usrf_ref_id != USER_FOLDER_ID)
{
$this->tabs_gui->clearTargets();
}
// get form
$this->initForm("edit");
$this->getValues();
$this->tpl->setContent($this->form_gui->getHTML());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::editOldObject ( )

display user edit form

public

Definition at line 1738 of file class.ilObjUserGUI.php.

References $_SESSION, ilObjectGUI\$data, $gender, ilObjectGUI\$ilias, $ilSetting, $ilUser, $path, __getDateSelect(), __showUserDefinedFields(), __toUnix(), ilAuthUtils\_allowPasswordModificationByAuthMode(), ilAuthUtils\_getActiveAuthModes(), ilAuthUtils\_getAuthMode(), ilAuthUtils\_getAuthModeName(), ilAuthUtils\_isExternalAccountEnabled(), ilObjStyleSettings\_lookupActivatedStyle(), ilObjUser\_lookupLogin(), ilUtil\formCheckbox(), ilObjectGUI\getTargetFrame(), ilUtil\getUsersOnline(), ilUtil\getWebspaceDir(), ilUtil\prepareFormOutput(), and USER_FOLDER_ID.

{
global $ilias, $rbacsystem, $rbacreview, $rbacadmin, $styleDefinition, $ilUser
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
//load ILIAS settings
$settings = $ilias->getAllSettings();
// User folder
if($this->usrf_ref_id == USER_FOLDER_ID and !$rbacsystem->checkAccess('visible,read',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
// if called from local administration $this->usrf_ref_id is category id
// Todo: this has to be fixed. Do not mix user folder id and category id
if($this->usrf_ref_id != USER_FOLDER_ID)
{
// check if user is assigned to category
if(!$rbacsystem->checkAccess('cat_administrate_users',$this->object->getTimeLimitOwner()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
}
if($this->usrf_ref_id != USER_FOLDER_ID)
{
$this->tabs_gui->clearTargets();
}
$data = array();
$data["fields"] = array();
$data["fields"]["login"] = $this->object->getLogin();
$data["fields"]["passwd"] = "********"; // will not be saved
#$data["fields"]["passwd2"] = "********"; // will not be saved
$data["fields"]["ext_account"] = $this->object->getExternalAccount();
$data["fields"]["title"] = $this->object->getUTitle();
$data["fields"]["gender"] = $this->object->getGender();
$data["fields"]["firstname"] = $this->object->getFirstname();
$data["fields"]["lastname"] = $this->object->getLastname();
$data["fields"]["institution"] = $this->object->getInstitution();
$data["fields"]["department"] = $this->object->getDepartment();
$data["fields"]["street"] = $this->object->getStreet();
$data["fields"]["city"] = $this->object->getCity();
$data["fields"]["zipcode"] = $this->object->getZipcode();
$data["fields"]["country"] = $this->object->getCountry();
$data["fields"]["sel_country"] = $this->object->getSelectedCountry();
$data["fields"]["phone_office"] = $this->object->getPhoneOffice();
$data["fields"]["phone_home"] = $this->object->getPhoneHome();
$data["fields"]["phone_mobile"] = $this->object->getPhoneMobile();
$data["fields"]["fax"] = $this->object->getFax();
$data["fields"]["email"] = $this->object->getEmail();
$data["fields"]["hobby"] = $this->object->getHobby();
$data["fields"]["im_icq"] = $this->object->getInstantMessengerId('icq');
$data["fields"]["im_yahoo"] = $this->object->getInstantMessengerId('yahoo');
$data["fields"]["im_msn"] = $this->object->getInstantMessengerId('msn');
$data["fields"]["im_aim"] = $this->object->getInstantMessengerId('aim');
$data["fields"]["im_skype"] = $this->object->getInstantMessengerId('skype');
$data["fields"]["im_jabber"] = $this->object->getInstantMessengerId('jabber');
$data["fields"]["im_voip"] = $this->object->getInstantMessengerId('voip');
$data["fields"]["matriculation"] = $this->object->getMatriculation();
$data["fields"]["client_ip"] = $this->object->getClientIP();
$data["fields"]["referral_comment"] = $this->object->getComment();
$data["fields"]["owner"] = ilObjUser::_lookupLogin($this->object->getOwner());
$data["fields"]["create_date"] = $this->object->getCreateDate();
$data["fields"]["approve_date"] = $this->object->getApproveDate();
$data["fields"]["agree_date"] = $this->object->getAgreeDate();
$data["fields"]["last_login"] = $this->object->getLastLogin();
$data["fields"]["active"] = $this->object->getActive();
$data["fields"]["auth_mode"] = $this->object->getAuthMode();
$data["fields"]["ext_account"] = $this->object->getExternalAccount();
// BEGIN DiskQuota Get Picture, Owner, Last login, Approve Date and AgreeDate
$this->tpl->setVariable("TXT_UPLOAD",$this->lng->txt("personal_picture"));
$webspace_dir = ilUtil::getWebspaceDir("output");
$full_img = $this->object->getPref("profile_image");
$last_dot = strrpos($full_img, ".");
$small_img = substr($full_img, 0, $last_dot).
"_small".substr($full_img, $last_dot, strlen($full_img) - $last_dot);
$image_file = $webspace_dir."/usr_images/".$small_img;
if (@is_file($image_file))
{
$this->tpl->setVariable("IMG_PERSONAL", $image_file."?dummy=".rand(1,99999));
$this->tpl->setVariable("ALT_IMG_PERSONAL",$this->lng->txt("personal_picture"));
$this->tpl->setVariable("TXT_REMOVE_PIC", $this->lng->txt("remove_personal_picture"));
}
$this->tpl->setVariable("UPLOAD", $this->lng->txt("upload"));
$this->tpl->setVariable("TXT_FILE", $this->lng->txt("userfile"));
$this->tpl->setVariable("USER_FILE", $this->lng->txt("user_file"));
// END DiskQuota Get Picture, Owner, Last login, Approve Date and AgreeDate
// BEGIN DiskQuota, Show disk space used
// W. Randelshofer 2008-07-07: Deactivated display of disk space usage,
// because determining the disk space usage may take several minutes.
/*
require_once "Modules/File/classes/class.ilObjFileAccess.php";
require_once "Modules/HTMLLearningModule/classes/class.ilObjFileBasedLMAccess.php";
require_once "Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php";
require_once "Services/Mail/classes/class.ilObjMailAccess.php";
require_once "Modules/Forum/classes/class.ilObjForumAccess.php";
$this->tpl->setVariable('TXT_DISK_SPACE_USED',$this->lng->txt('disk_space_used'));
$this->tpl->setVariable('DISK_SPACE_USED',
ilObjFileAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjFileBasedLMAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjSAHSLearningModuleAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjMailAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjForumAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'
);
*/
// END DiskQuota, Show disk space used
if (!count($user_online = ilUtil::getUsersOnline($this->object->getId())) == 1)
{
$user_is_online = false;
}
else
{
$user_is_online = true;
// extract serialized role Ids from session data
preg_match("/RoleId.*?;\}/",$user_online[$this->object->getId()]["data"],$matches);
$active_roles = unserialize(substr($matches[0],7));
// gather data for active roles
$assigned_roles = $rbacreview->assignedRoles($this->object->getId());
foreach ($assigned_roles as $key => $role)
{
$roleObj = $this->ilias->obj_factory->getInstanceByObjId($role);
// fetch context path of role
$rolf = $rbacreview->getFoldersAssignedToRole($role,true);
// only list roles that are not set to status "deleted"
if (count($rolf) > 0)
{
if (!$rbacreview->isDeleted($rolf[0]))
{
$path = "";
if ($this->tree->isInTree($rolf[0]))
{
$tmpPath = $this->tree->getPathFull($rolf[0]);
// count -1, to exclude the role folder itself
for ($i = 0; $i < (count($tmpPath)-1); $i++)
{
if ($path != "")
{
$path .= " > ";
}
$path .= $tmpPath[$i]["title"];
}
}
else
{
$path = "<b>Rolefolder ".$rolf[0]." not found in tree! (Role ".$role.")</b>";
}
$active_roles = $active_roles ? $active_roles : array();
if (in_array($role,$active_roles))
{
$data["active_role"][$role]["active"] = true;
}
$data["active_role"][$role]["title"] = $roleObj->getTitle();
$data["active_role"][$role]["context"] = $path;
unset($roleObj);
}
}
else
{
$path = "<b>No role folder found for role ".$role."!</b>";
}
}
}
$this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.usr_edit.html','Services/User');
// FILL SAVED VALUES IN CASE OF ERROR
if (isset($_SESSION["error_post_vars"]["Fobject"]))
{
if (!isset($_SESSION["error_post_vars"]["Fobject"]["active"]))
{
$_SESSION["error_post_vars"]["Fobject"]["active"] = 0;
}
foreach ($_SESSION["error_post_vars"]["Fobject"] as $key => $val)
{
$str = $this->lng->txt($key);
if ($key == "title")
{
$str = $this->lng->txt("person_title");
}
if($key == 'passwd2')
{
continue;
}
if($key == 'passwd')
{
ilAuthUtils::_getAuthMode($_SESSION['error_post_vars']['Fobject']['auth_mode'])))
{
$this->tpl->setCurrentBlock('passwords_visible');
$this->tpl->setVariable('VISIBLE_TXT_PASSWD',$this->lng->txt('passwd'));
$this->tpl->setVariable('VISIBLE_TXT_PASSWD2',$this->lng->txt('retype_password'));
$this->tpl->setVariable('VISIBLE_PASSWD',$_SESSION['error_post_vars']['Fobject']['passwd']);
$this->tpl->setVariable('VISIBLE_PASSWD2',$_SESSION['error_post_vars']['Fobject']['passwd2']);
$this->tpl->parseCurrentBlock();
}
else
{
$this->tpl->setCurrentBlock('passwords_invisible');
$this->tpl->setVariable('INVISIBLE_TXT_PASSWD',$this->lng->txt('passwd'));
$this->tpl->setVariable('INVISIBLE_TXT_PASSWD2',$this->lng->txt('retype_password'));
$this->tpl->setVariable('INVISIBLE_PASSWD',strlen($this->object->getPasswd()) ?
"********" :
"");
$this->tpl->setVariable('INVISIBLE_PASSWD2',strlen($this->object->getPasswd()) ?
"********" :
"");
$this->tpl->setVariable('INVISIBLE_PASSWD_HIDDEN',"********");
$this->tpl->parseCurrentBlock();
}
continue;
}
// check to see if dynamically required
if (isset($settings["require_" . $key]) && $settings["require_" . $key])
{
$str = $str . '<span class="asterisk">*</span>';
}
$this->tpl->setVariable("TXT_".strtoupper($key), $str);
if ($key != "default_role" and $key != "language"
and $key != "skin_style" and $key != "hits_per_page"
and $key != "show_users_online")
{
$this->tpl->setVariable(strtoupper($key), ilUtil::prepareFormOutput($val,true));
}
}
// gender selection
$gender = strtoupper($_SESSION["error_post_vars"]["Fobject"]["gender"]);
if (!empty($gender))
{
$this->tpl->setVariable("BTN_GENDER_".$gender,"checked=\"checked\"");
}
$active = $_SESSION["error_post_vars"]["Fobject"]["active"];
if ($active)
{
$this->tpl->setVariable("ACTIVE", "checked=\"checked\"");
}
}
else
{
if (!isset($data["fields"]["active"]))
{
$data["fields"]["active"] = 0;
}
foreach ($data["fields"] as $key => $val)
{
$str = $this->lng->txt($key);
if ($key == "title")
{
$str = $this->lng->txt("person_title");
}
if ($key == "ext_account")
{
continue;
}
if($key == 'passwd')
{
$auth_mode = $this->object->getAuthMode(true);
{
$this->tpl->setCurrentBlock('passwords_visible');
$this->tpl->setVariable('VISIBLE_TXT_PASSWD',$this->lng->txt('passwd'));
$this->tpl->setVariable('VISIBLE_TXT_PASSWD2',$this->lng->txt('retype_password'));
$this->tpl->setVariable('VISIBLE_PASSWD',"********");
$this->tpl->setVariable('VISIBLE_PASSWD2',"********");
$this->tpl->parseCurrentBlock();
}
else
{
$this->tpl->setCurrentBlock('passwords_invisible');
$this->tpl->setVariable('INVISIBLE_TXT_PASSWD',$this->lng->txt('passwd'));
$this->tpl->setVariable('INVISIBLE_TXT_PASSWD2',$this->lng->txt('retype_password'));
$this->tpl->setVariable('INVISIBLE_PASSWD',strlen($this->object->getPasswd()) ?
"********" :
"");
$this->tpl->setVariable('INVISIBLE_PASSWD2',strlen($this->object->getPasswd()) ?
"********" :
"");
$this->tpl->setVariable('INVISIBLE_PASSWD_HIDDEN',"********");
$this->tpl->parseCurrentBlock();
}
continue;
}
// check to see if dynamically required
if (isset($settings["require_" . $key]) && $settings["require_" . $key])
{
$str = $str . '<span class="asterisk">*</span>';
}
$this->tpl->setVariable("TXT_".strtoupper($key), $str);
$this->tpl->setVariable(strtoupper($key), ilUtil::prepareFormOutput($val));
#$this->tpl->parseCurrentBlock();
}
// gender selection
$gender = strtoupper($data["fields"]["gender"]);
if (!empty($gender))
{
$this->tpl->setVariable("BTN_GENDER_".$gender,"checked=\"checked\"");
}
$active = $data["fields"]["active"];
if ($active)
{
$this->tpl->setVariable("ACTIVE", "checked=\"checked\"");
}
}
// external account
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
{
$this->tpl->setCurrentBlock("ext_account");
$this->tpl->setVariable("TXT_EXT_ACCOUNT",$this->lng->txt("user_ext_account"));
$this->tpl->setVariable("TXT_EXT_ACCOUNT_DESC",$this->lng->txt("user_ext_account_desc"));
if (isset($_SESSION["error_post_vars"]["Fobject"]["ext_account"]))
{
$this->tpl->setVariable("EXT_ACCOUNT_VAL",
$_SESSION["error_post_vars"]["Fobject"]["ext_account"]);
}
else
{
$this->tpl->setVariable("EXT_ACCOUNT_VAL",
$data["fields"]["ext_account"]);
}
/* Disabled: external account names should be changeable by admins
if ($this->object->getAuthMode(true) != AUTH_LOCAL &&
$this->object->getAuthMode(true) != AUTH_CAS &&
$this->object->getAuthMode(true) != AUTH_SHIBBOLETH &&
$this->object->getAuthMode(true) != AUTH_SOAP)
{
$this->tpl->setVariable("OPTION_DISABLED_EXT", "\"disabled=disabled\"");
}
*/
$this->tpl->parseCurrentBlock();
}
$auth_mode = $_SESSION['error_post_vars']['Fobject']['auth_mode'] ?
ilAuthUtils::_getAuthMode($_SESSION['error_post_vars']['Fobject']['auth_mode']) :
$this->object->getAuthMode(true);
{
$this->tpl->setVariable("OPTION_DISABLED", "\"disabled=disabled\"");
}
$obj_str = ($this->call_by_reference) ? "" : "&obj_id=".$this->obj_id;
$this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
$this->tpl->setVariable("TXT_HEADER", $this->lng->txt($this->object->getType()."_edit"));
$this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
$this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
$this->tpl->setVariable("CMD_SUBMIT", "update");
$this->tpl->setVariable("TARGET", $this->getTargetFrame("update"));
$this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
$this->tpl->setVariable("TXT_LOGIN_DATA", $this->lng->txt("login_data"));
$this->tpl->setVariable("TXT_SYSTEM_INFO", $this->lng->txt("system_information"));
$this->tpl->setVariable("TXT_PERSONAL_DATA", $this->lng->txt("personal_data"));
$this->tpl->setVariable("TXT_CONTACT_DATA", $this->lng->txt("contact_data"));
$this->tpl->setVariable("TXT_SETTINGS", $this->lng->txt("settings"));
$this->tpl->setVariable("TXT_LANGUAGE",$this->lng->txt("language"));
$this->tpl->setVariable("TXT_SKIN_STYLE",$this->lng->txt("usr_skin_style"));
$this->tpl->setVariable("TXT_HITS_PER_PAGE",$this->lng->txt("hits_per_page"));
$this->tpl->setVariable("TXT_SHOW_USERS_ONLINE",$this->lng->txt("show_users_online"));
$this->tpl->setVariable("TXT_GENDER_F",$this->lng->txt("gender_f"));
$this->tpl->setVariable("TXT_GENDER_M",$this->lng->txt("gender_m"));
$this->tpl->setVariable("TXT_INSTANT_MESSENGERS",$this->lng->txt("user_profile_instant_messengers"));
$this->tpl->setVariable("TXT_OTHER",$this->lng->txt("user_profile_other"));
if ($this->object->getId() == $ilUser->getId())
{
$this->tpl->setVariable("TXT_CURRENT_IP","(".$this->lng->txt("current_ip")." ".$_SERVER["REMOTE_ADDR"].")");
}
$this->tpl->setVariable("TXT_CURRENT_IP_ALERT",$this->lng->txt("current_ip_alert"));
// auth mode selection
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
$active_auth_modes = ilAuthUtils::_getActiveAuthModes();
//var_dump($active_auth_modes);
// preselect previous chosen auth mode otherwise default auth mode
$selected_auth_mode = (isset($_SESSION["error_post_vars"]["Fobject"]["auth_mode"])) ? $_SESSION["error_post_vars"]["Fobject"]["auth_mode"] : $this->object->getAuthMode();
foreach ($active_auth_modes as $auth_name => $auth_key)
{
$this->tpl->setCurrentBlock("auth_mode_selection");
if ($auth_name == 'default')
{
$name = $this->lng->txt('auth_'.$auth_name)." (".$this->lng->txt('auth_'.ilAuthUtils::_getAuthModeName($auth_key)).")";
}
else
{
$name = $this->lng->txt('auth_'.$auth_name);
}
$this->tpl->setVariable("AUTH_MODE_NAME", $name);
$this->tpl->setVariable("AUTH_MODE", $auth_name);
if ($selected_auth_mode == $auth_name)
{
$this->tpl->setVariable("SELECTED_AUTH_MODE", "selected=\"selected\"");
}
$this->tpl->parseCurrentBlock();
} // END auth_mode selection
// language selection
$languages = $this->lng->getInstalledLanguages();
// preselect previous chosen language otherwise default language
$selected_lang = (isset($_SESSION["error_post_vars"]["Fobject"]["language"])) ? $_SESSION["error_post_vars"]["Fobject"]["language"] : $this->object->getLanguage();
foreach ($languages as $lang_key)
{
$this->tpl->setCurrentBlock("language_selection");
$this->tpl->setVariable("LANG", $this->lng->txt("lang_".$lang_key));
$this->tpl->setVariable("LANGSHORT", $lang_key);
if ($selected_lang == $lang_key)
{
$this->tpl->setVariable("SELECTED_LANG", "selected=\"selected\"");
}
$this->tpl->parseCurrentBlock();
} // END language selection
// BEGIN skin & style selection
//$this->ilias->getSkins();
$templates = $styleDefinition->getAllTemplates();
// preselect previous chosen skin/style otherwise default skin/style
if (isset($_SESSION["error_post_vars"]["Fobject"]["skin_style"]))
{
$sknst = explode(":", $_SESSION["error_post_vars"]["Fobject"]["skin_style"]);
$selected_style = $sknst[1];
$selected_skin = $sknst[0];
}
else
{
$selected_style = $this->object->prefs["style"];
$selected_skin = $this->object->skin;
}
include("./Services/Style/classes/class.ilObjStyleSettings.php");
if (count($templates) > 0 && is_array ($templates))
{
foreach ($templates as $template)
{
// get styles for skin
//$this->ilias->getStyles($skin["name"]);
$styleDef =& new ilStyleDefinition($template["id"]);
$styleDef->startParsing();
$styles = $styleDef->getStyles();
foreach ($styles as $style)
{
if (!ilObjStyleSettings::_lookupActivatedStyle($template["id"],$style["id"]))
{
continue;
}
$this->tpl->setCurrentBlock("selectskin");
if ($selected_skin == $template["id"] &&
$selected_style == $style["id"])
{
$this->tpl->setVariable("SKINSELECTED", "selected=\"selected\"");
}
$this->tpl->setVariable("SKINVALUE", $template["id"].":".$style["id"]);
$this->tpl->setVariable("SKINOPTION", $styleDef->getTemplateName()." / ".$style["name"]);
$this->tpl->parseCurrentBlock();
}
} // END skin & style selection
}
// BEGIN hits per page
$hits_options = array(2,10,15,20,30,40,50,100,9999);
// preselect previous chosen option otherwise default option
if (isset($_SESSION["error_post_vars"]["Fobject"]["hits_per_page"]))
{
$selected_option = $_SESSION["error_post_vars"]["Fobject"]["hits_per_page"];
}
else
{
$selected_option = $this->object->prefs["hits_per_page"];
}
foreach($hits_options as $hits_option)
{
$this->tpl->setCurrentBlock("selecthits");
if ($selected_option == $hits_option)
{
$this->tpl->setVariable("HITSSELECTED", "selected=\"selected\"");
}
$this->tpl->setVariable("HITSVALUE", $hits_option);
if ($hits_option == 9999)
{
$hits_option = $this->lng->txt("no_limit");
}
$this->tpl->setVariable("HITSOPTION", $hits_option);
$this->tpl->parseCurrentBlock();
}
// END hits per page
// BEGIN show users online
$users_online_options = array("y","associated","n");
// preselect previous chosen option otherwise default option
if (isset($_SESSION["error_post_vars"]["Fobject"]["show_users_online"]))
{
$selected_option = $_SESSION["error_post_vars"]["Fobject"]["show_users_online"];
}
else
{
$selected_option = $this->object->prefs["show_users_online"];
}
foreach($users_online_options as $an_option)
{
$this->tpl->setCurrentBlock("show_users_online");
if ($selected_option == $an_option)
{
$this->tpl->setVariable("USERS_ONLINE_SELECTED", "selected=\"selected\"");
}
$this->tpl->setVariable("USERS_ONLINE_VALUE", $an_option);
$this->tpl->setVariable("USERS_ONLINE_OPTION", $this->lng->txt("users_online_show_".$an_option));
$this->tpl->parseCurrentBlock();
}
// END show users online
// BEGIN hide_own_online_status
if (isset($_SESSION["error_post_vars"]["Fobject"]["hide_own_online_status"]))
{
$hide_own_online_status = $_SESSION["error_post_vars"]["Fobject"]["hide_own_online_status"];
}
else
{
$hide_own_online_status = ($this->object->prefs["hide_own_online_status"] != '') ? $this->object->prefs["hide_own_online_status"] : "n";
}
$this->tpl->setCurrentBlock("hide_own_online_status");
$this->tpl->setVariable("TXT_HIDE_OWN_ONLINE_STATUS", $this->lng->txt("hide_own_online_status"));
if ($hide_own_online_status == "y") {
$this->tpl->setVariable("CHK_HIDE_OWN_ONLINE_STATUS", "checked=\"checked\"");
}
else {
$this->tpl->setVariable("CHK_HIDE_OWN_ONLINE_STATUS", "");
}
$this->tpl->parseCurrentBlock();
//END hide_own_online_status
// inform user about changes option
$this->tpl->setCurrentBlock("inform_user");
// BEGIN DiskQuota Remember the state of the "send info mail" checkbox
$sendInfoMail = $ilUser->getPref('send_info_mails') == 'y';
if ($sendInfoMail)
// END DiskQuota Remember the state of the "send info mail" checkbox
{
$this->tpl->setVariable("SEND_MAIL", " checked=\"checked\"");
}
$this->tpl->setVariable("TXT_INFORM_USER_MAIL", $this->lng->txt("inform_user_mail"));
$this->tpl->parseCurrentBlock();
$this->lng->loadLanguageModule('crs');
$time_limit_unlimited = $_SESSION["error_post_vars"]["time_limit"]["unlimited"] ?
$_SESSION["error_post_vars"]["time_limit"]["unlimited"] :
$this->object->getTimeLimitUnlimited();
$time_limit_from = $_SESSION["error_post_vars"]["time_limit"]["from"] ?
$this->__toUnix($_SESSION["error_post_vars"]["time_limit"]["from"]) :
$this->object->getTimeLimitFrom();
$time_limit_until = $_SESSION["error_post_vars"]["time_limit"]["until"] ?
$this->__toUnix($_SESSION["error_post_vars"]["time_limit"]["until"]) :
$this->object->getTimeLimitUntil();
$this->tpl->setCurrentBlock("time_limit");
$this->tpl->setVariable("TXT_TIME_LIMIT", $this->lng->txt("time_limit"));
$this->tpl->setVariable("TXT_TIME_LIMIT_UNLIMITED", $this->lng->txt("crs_unlimited"));
$this->tpl->setVariable("TXT_TIME_LIMIT_FROM", $this->lng->txt("crs_from"));
$this->tpl->setVariable("TXT_TIME_LIMIT_UNTIL", $this->lng->txt("crs_to"));
$this->tpl->setVariable("TIME_LIMIT_UNLIMITED",ilUtil::formCheckbox($time_limit_unlimited,"time_limit[unlimited]",1));
$this->tpl->setVariable("SELECT_TIME_LIMIT_FROM_MINUTE",$this->__getDateSelect("minute","time_limit[from][minute]",
date("i",$time_limit_from)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_FROM_HOUR",$this->__getDateSelect("hour","time_limit[from][hour]",
date("G",$time_limit_from)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_FROM_DAY",$this->__getDateSelect("day","time_limit[from][day]",
date("d",$time_limit_from)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_FROM_MONTH",$this->__getDateSelect("month","time_limit[from][month]",
date("m",$time_limit_from)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_FROM_YEAR",$this->__getDateSelect("year","time_limit[from][year]",
date("Y",$time_limit_from)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_UNTIL_MINUTE",$this->__getDateSelect("minute","time_limit[until][minute]",
date("i",$time_limit_until)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_UNTIL_HOUR",$this->__getDateSelect("hour","time_limit[until][hour]",
date("G",$time_limit_until)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_UNTIL_DAY",$this->__getDateSelect("day","time_limit[until][day]",
date("d",$time_limit_until)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_UNTIL_MONTH",$this->__getDateSelect("month","time_limit[until][month]",
date("m",$time_limit_until)));
$this->tpl->setVariable("SELECT_TIME_LIMIT_UNTIL_YEAR",$this->__getDateSelect("year","time_limit[until][year]",
date("Y",$time_limit_until)));
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

& ilObjUserGUI::executeCommand ( )

execute command

Reimplemented from ilObjectGUI.

Definition at line 71 of file class.ilObjUserGUI.php.

References $cmd, LP_MODE_USER_FOLDER, ilObjectGUI\prepareOutput(), and USER_FOLDER_ID.

{
global $rbacsystem;
$next_class = $this->ctrl->getNextClass($this);
$cmd = $this->ctrl->getCmd();
$this->prepareOutput();
switch($next_class)
{
case "illearningprogressgui":
include_once './Services/Tracking/classes/class.ilLearningProgressGUI.php';
$new_gui =& new ilLearningProgressGUI(LP_MODE_USER_FOLDER,USER_FOLDER_ID,$this->object->getId());
$this->ctrl->forwardCommand($new_gui);
break;
case "ilobjilincusergui":
include_once './Modules/ILinc/classes/class.ilObjiLincUserGUI.php';
$new_gui =& new ilObjiLincUserGUI($this->object,$this->usrf_ref_id);
$this->ctrl->forwardCommand($new_gui);
break;
case "ilobjectownershipmanagementgui":
include_once("Services/Object/classes/class.ilObjectOwnershipManagementGUI.php");
$gui = new ilObjectOwnershipManagementGUI($this->object->getId());
$this->ctrl->forwardCommand($gui);
break;
default:
if($cmd == "" || $cmd == "view")
{
$cmd = "edit";
}
$cmd .= "Object";
$return = $this->$cmd();
break;
}
return $return;
}

+ Here is the call graph for this function:

ilObjUserGUI::getAdminTabs ( $tabs_gui)

admin and normal tabs are equal for roles

Reimplemented from ilObjectGUI.

Definition at line 150 of file class.ilObjUserGUI.php.

References getTabs().

{
$this->getTabs($tabs_gui);
}

+ Here is the call graph for this function:

ilObjUserGUI::getTabs ( $tabs_gui)

get tabs

Reimplemented from ilObjectGUI.

Definition at line 158 of file class.ilObjUserGUI.php.

References $_GET, $_SESSION, ilObjUserTracking\_enabledLearningProgress(), and ilObjUserTracking\_enabledUserRelatedData().

Referenced by getAdminTabs().

{
global $rbacsystem, $ilHelp;
$tabs_gui->clearTargets();
$ilHelp->setScreenIdComponent("usr");
if ($_GET["search"])
{
$tabs_gui->setBackTarget(
$this->lng->txt("search_results"),$_SESSION["usr_search_link"]);
$tabs_gui->addTarget("properties",
$this->ctrl->getLinkTarget($this, "edit"), array("edit","","view"), get_class($this),"",true);
}
else
{
$tabs_gui->addTarget("properties",
$this->ctrl->getLinkTarget($this, "edit"), array("edit","","view"), get_class($this));
}
$tabs_gui->addTarget("role_assignment",
$this->ctrl->getLinkTarget($this, "roleassignment"), array("roleassignment"), get_class($this));
// learning progress
include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
if($rbacsystem->checkAccess('read',$this->ref_id) and
ilObjUserTracking::_enabledUserRelatedData())
{
$tabs_gui->addTarget('learning_progress',
$this->ctrl->getLinkTargetByClass('illearningprogressgui',''),
'',
array('illplistofobjectsgui','illplistofsettingsgui','illearningprogressgui','illplistofprogressgui'));
}
if ($this->ilias->getSetting("ilinc_active"))
{
$tabs_gui->addTarget("extt_ilinc",
$this->ctrl->getLinkTargetByClass('ilobjilincusergui',''),
'',
array('ilobjilincusergui'));
}
$tabs_gui->addTarget('user_ownership',
$this->ctrl->getLinkTargetByClass('ilobjectownershipmanagementgui',''),
'',
'ilobjectownershipmanagementgui');
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::getValues ( )

Get values from user object and put them into form.

Definition at line 968 of file class.ilObjUserGUI.php.

References ilObjectGUI\$data, $ilSetting, $ilUser, ilUserDefinedFields\_getInstance(), ilFormat\_getSizeMagnitude(), ilDiskQuotaActivationChecker\_isActive(), ilObjUser\_lookupLogin(), ilFormat\formatDate(), ilDateTime\get(), IL_CAL_FKT_DATE, and IL_CAL_UNIX.

Referenced by editObject().

{
$data = array();
// login data
$data["auth_mode"] = $this->object->getAuthMode();
$data["login"] = $this->object->getLogin();
//$data["passwd"] = "********";
//$data["passwd2"] = "********";
$data["ext_account"] = $this->object->getExternalAccount();
// system information
require_once './Services/Utilities/classes/class.ilFormat.php';
$data["create_date"] = ilFormat::formatDate($this->object->getCreateDate(),'datetime',true);
$data["owner"] = ilObjUser::_lookupLogin($this->object->getOwner());
$data["approve_date"] = ($this->object->getApproveDate() != "")
? ilFormat::formatDate($this->object->getApproveDate(),'datetime',true)
: null;
$data["agree_date"] = ($this->object->getAgreeDate() != "")
? ilFormat::formatDate($this->object->getAgreeDate(),'datetime',true)
: null;
$data["last_login"] = ($this->object->getLastLogin() != "")
? ilFormat::formatDate($this->object->getLastLogin(),'datetime',true)
: null;
$data["active"] = $this->object->getActive();
$data["time_limit_unlimited"] = $this->object->getTimeLimitUnlimited();
$from = new ilDateTime($this->object->getTimeLimitFrom() ? $this->object->getTimeLimitFrom() : time(),IL_CAL_UNIX);
$data["time_limit_from"]["date"] = $from->get(IL_CAL_FKT_DATE,'Y-m-d',$ilUser->getTimeZone());
$data["time_limit_from"]["time"] = $from->get(IL_CAL_FKT_DATE,'H:i:s',$ilUser->getTimeZone());
$until = new ilDateTime($this->object->getTimeLimitUntil() ? $this->object->getTimeLimitUntil() : time(),IL_CAL_UNIX);
$data['time_limit_until']['date'] = $until->get(IL_CAL_FKT_DATE,'Y-m-d',$ilUser->getTimeZone());
$data['time_limit_until']['time'] = $until->get(IL_CAL_FKT_DATE,'H:i:s',$ilUser->getTimeZone());
// BEGIN DiskQuota, Show disk space used
require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
{
$data["disk_quota"] = $this->object->getDiskQuota() / ilFormat::_getSizeMagnitude() / ilFormat::_getSizeMagnitude();
}
// W. Randelshofer 2008-09-09: Deactivated display of disk space usage,
// because determining the disk space usage may take several minutes.
/*
require_once "Modules/File/classes/class.ilObjFileAccess.php";
require_once "Modules/HTMLLearningModule/classes/class.ilObjFileBasedLMAccess.php";
require_once "Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php";
require_once "Services/Mail/classes/class.ilObjMailAccess.php";
require_once "Modules/Forum/classes/class.ilObjForumAccess.php";
require_once "Modules/MediaCast/classes/class.ilObjMediaCastAccess.php";
$data["disk_space_used"] =
ilObjFileAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjFileBasedLMAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjSAHSLearningModuleAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjMailAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjForumAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>'.
ilObjMediaCastAccess::_getDiskSpaceUsedBy($this->object->getId(), true).'<br>';
*/
// END DiskQuota, Show disk space used
// personal data
$data["gender"] = $this->object->getGender();
$data["firstname"] = $this->object->getFirstname();
$data["lastname"] = $this->object->getLastname();
$data["title"] = $this->object->getUTitle();
$data['birthday'] = $this->object->getBirthday();
$data["institution"] = $this->object->getInstitution();
$data["department"] = $this->object->getDepartment();
$data["street"] = $this->object->getStreet();
$data["city"] = $this->object->getCity();
$data["zipcode"] = $this->object->getZipcode();
$data["country"] = $this->object->getCountry();
$data["sel_country"] = $this->object->getSelectedCountry();
$data["phone_office"] = $this->object->getPhoneOffice();
$data["phone_home"] = $this->object->getPhoneHome();
$data["phone_mobile"] = $this->object->getPhoneMobile();
$data["fax"] = $this->object->getFax();
$data["email"] = $this->object->getEmail();
$data["hobby"] = $this->object->getHobby();
$data["referral_comment"] = $this->object->getComment();
// instant messengers
$data["im_icq"] = $this->object->getInstantMessengerId('icq');
$data["im_yahoo"] = $this->object->getInstantMessengerId('yahoo');
$data["im_msn"] = $this->object->getInstantMessengerId('msn');
$data["im_aim"] = $this->object->getInstantMessengerId('aim');
$data["im_skype"] = $this->object->getInstantMessengerId('skype');
$data["im_jabber"] = $this->object->getInstantMessengerId('jabber');
$data["im_voip"] = $this->object->getInstantMessengerId('voip');
// other data
$data["matriculation"] = $this->object->getMatriculation();
$data["delicious"] = $this->object->getDelicious();
$data["client_ip"] = $this->object->getClientIP();
// user defined fields
include_once './Services/User/classes/class.ilUserDefinedFields.php';
$this->user_defined_fields = ilUserDefinedFields::_getInstance();
$user_defined_data = $this->object->getUserDefinedData();
foreach($this->user_defined_fields->getDefinitions() as $field_id => $definition)
{
$data["udf_".$field_id] = $user_defined_data["f_".$field_id];
}
// settings
$data["language"] = $this->object->getLanguage();
$data["skin_style"] = $this->object->skin.":".$this->object->prefs["style"];
$data["hits_per_page"] = $this->object->prefs["hits_per_page"];
$data["show_users_online"] = $this->object->prefs["show_users_online"];
$data["hide_own_online_status"] = $this->object->prefs["hide_own_online_status"] == 'y';
$data["session_reminder_enabled"] = (int)$this->object->prefs["session_reminder_enabled"];
$this->form_gui->setValuesByArray($data);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::handleIgnoredRequiredFields ( )
protected

Handles ignored required fields by changing the required flag of form elements.

protected

Returns
boolean A flag whether the user profile is maybe incomplete after saving the form data

Definition at line 3579 of file class.ilObjUserGUI.php.

References ilUserDefinedFields\_getInstance(), and ilUserProfile\getIgnorableRequiredSettings().

Referenced by saveObject(), and updateObject().

{
$profileMaybeIncomplete = false;
require_once 'Services/User/classes/class.ilUserProfile.php';
{
$elm = $this->form_gui->getItemByPostVar($fieldName);
if( !$elm ) continue;
if( $elm->getRequired() )
{
$profileMaybeIncomplete = true;
// Flag as optional
$elm->setRequired( false );
}
}
include_once 'Services/User/classes/class.ilUserDefinedFields.php';
$user_defined_fields = ilUserDefinedFields::_getInstance();
foreach($user_defined_fields->getDefinitions() as $field_id => $definition)
{
$elm = $this->form_gui->getItemByPostVar('udf_'.$definition['field_id']);
if( !$elm ) continue;
if( $elm->getRequired() && $definition['changeable'] && $definition['required'] && $definition['visible'] )
{
$profileMaybeIncomplete = true;
// Flag as optional
$elm->setRequired( false );
}
}
return $profileMaybeIncomplete;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::hitsperpageObject ( )

Reimplemented from ilObjectGUI.

Definition at line 3425 of file class.ilObjUserGUI.php.

References roleassignmentObject().

+ Here is the call graph for this function:

ilObjUserGUI::ilObjUserGUI (   $a_data,
  $a_id,
  $a_call_by_reference = false,
  $a_prepare_output = true 
)

Constructor public.

Definition at line 47 of file class.ilObjUserGUI.php.

References $_GET, $ilCtrl, ilObjectGUI\$lng, ilObjectGUI\$ref_id, and ilObjectGUI\ilObjectGUI().

{
global $ilCtrl, $lng;
define('USER_FOLDER_ID',7);
$this->type = "usr";
$this->ilObjectGUI($a_data,$a_id,$a_call_by_reference, false);
$this->usrf_ref_id =& $this->ref_id;
$this->ctrl =& $ilCtrl;
$this->ctrl->saveParameter($this, array('obj_id', 'letter'));
$this->ctrl->setParameterByClass("ilobjuserfoldergui", "letter", $_GET["letter"]);
$lng->loadLanguageModule('user');
// for gender selection. don't change this
// maybe deprecated
$this->gender = array(
'm' => "salutation_m",
'f' => "salutation_f"
);
}

+ Here is the call graph for this function:

ilObjUserGUI::initCreate ( )

Definition at line 287 of file class.ilObjUserGUI.php.

References $ilUser, ilObjectGUI\$tpl, ilObjRole\_getAssignUsersStatus(), and USER_FOLDER_ID.

Referenced by createObject(), and saveObject().

{
global $tpl, $rbacsystem, $rbacreview, $ilUser;
if($this->usrf_ref_id != USER_FOLDER_ID)
{
$this->tabs_gui->clearTargets();
}
// role selection
$obj_list = $rbacreview->getRoleListByObject(ROLE_FOLDER_ID);
$rol = array();
foreach ($obj_list as $obj_data)
{
// allow only 'assign_users' marked roles if called from category
if($this->object->getRefId() != USER_FOLDER_ID and !in_array(SYSTEM_ROLE_ID,$rbacreview->assignedRoles($ilUser->getId())))
{
include_once './Services/AccessControl/classes/class.ilObjRole.php';
if(!ilObjRole::_getAssignUsersStatus($obj_data['obj_id']))
{
continue;
}
}
// exclude anonymous role from list
if ($obj_data["obj_id"] != ANONYMOUS_ROLE_ID)
{
// do not allow to assign users to administrator role if current user does not has SYSTEM_ROLE_ID
if ($obj_data["obj_id"] != SYSTEM_ROLE_ID or in_array(SYSTEM_ROLE_ID,$rbacreview->assignedRoles($ilUser->getId())))
{
$rol[$obj_data["obj_id"]] = $obj_data["title"];
}
}
}
// raise error if there is no global role user can be assigned to
if(!count($rol))
{
$this->ilias->raiseError($this->lng->txt("msg_no_roles_users_can_be_assigned_to"),$this->ilias->error_obj->MESSAGE);
}
$keys = array_keys($rol);
// set pre defined user role to default
if (in_array(4,$keys))
{
$this->default_role = 4;
}
else
{
if (count($keys) > 1 and in_array(2,$keys))
{
// remove admin role as preselectable role
foreach ($keys as $key => $val)
{
if ($val == 2)
{
unset($keys[$key]);
break;
}
}
}
$this->default_role = array_shift($keys);
}
$this->selectable_roles = $rol;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::initForm (   $a_mode)

Init user form.

Definition at line 1089 of file class.ilObjUserGUI.php.

References $ilCtrl, $ilSetting, $ilUser, $lang, ilObjectGUI\$lng, ilAuthUtils\_getActiveAuthModes(), ilAuthUtils\_getAuthModeName(), ilUserDefinedFields\_getInstance(), ilObjUser\_getLastHistoryDataByUserId(), ilObjUser\_getPersonalPicturePath(), ilDiskQuotaActivationChecker\_isActive(), ilAuthUtils\_isExternalAccountEnabled(), ilObjStyleSettings\_lookupActivatedStyle(), ilDiskQuotaChecker\_lookupDiskQuota(), ilDiskQuotaChecker\_lookupDiskUsage(), ilDatePresentation\formatDate(), ilFormat\formatSize(), ilUtil\getPasswordRequirementsInfo(), IL_CAL_DATETIME, IL_CAL_UNIX, isSettingChangeable(), ilCheckboxInputGUI\setChecked(), ilImageFileInputGUI\setImage(), ilFormPropertyGUI\setInfo(), ilSelectInputGUI\setOptions(), ilFormPropertyGUI\setRequired(), ilTextAreaInputGUI\setRows(), ilDateTimeInputGUI\setShowTime(), ilPasswordInputGUI\setSize(), ilTextInputGUI\setSize(), ilCheckboxInputGUI\setValue(), ilRadioGroupInputGUI\setValue(), ilNonEditableValueGUI\setValue(), UDF_TYPE_TEXT, UDF_TYPE_WYSIWYG, and USER_FOLDER_ID.

Referenced by createObject(), editObject(), saveObject(), and updateObject().

{
global $lng, $ilCtrl, $styleDefinition, $ilSetting, $ilClientIniFile, $ilUser;
$settings = $ilSetting->getAll();
include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
$this->form_gui = new ilPropertyFormGUI();
$this->form_gui->setFormAction($ilCtrl->getFormAction($this));
if ($a_mode == "create")
{
$this->form_gui->setTitle($lng->txt("usr_new"));
}
else
{
$this->form_gui->setTitle($lng->txt("usr_edit"));
}
// login data
$sec_l = new ilFormSectionHeaderGUI();
$sec_l->setTitle($lng->txt("login_data"));
$this->form_gui->addItem($sec_l);
// authentication mode
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
$active_auth_modes = ilAuthUtils::_getActiveAuthModes();
$am = new ilSelectInputGUI($lng->txt("auth_mode"), "auth_mode");
$option = array();
foreach ($active_auth_modes as $auth_name => $auth_key)
{
if ($auth_name == 'default')
{
$name = $this->lng->txt('auth_'.$auth_name)." (".$this->lng->txt('auth_'.ilAuthUtils::_getAuthModeName($auth_key)).")";
}
else
{
$name = $this->lng->txt('auth_'.$auth_name);
}
$option[$auth_name] = $name;
}
$am->setOptions($option);
$this->form_gui->addItem($am);
// login
$lo = new ilUserLoginInputGUI($lng->txt("login"), "login");
$lo->setRequired(true);
if ($a_mode == "edit")
{
$lo->setCurrentUserId($this->object->getId());
try
{
include_once 'Services/Calendar/classes/class.ilDate.php';
$last_history_entry = ilObjUser::_getLastHistoryDataByUserId($this->object->getId());
$lo->setInfo(
sprintf(
$this->lng->txt('usr_loginname_history_info'),
ilDatePresentation::formatDate(new ilDateTime($last_history_entry[1], IL_CAL_UNIX)),
$last_history_entry[0]
)
);
}
catch(ilUserException $e) { }
}
$this->form_gui->addItem($lo);
// passwords
// @todo: do not show passwords, if there is not a single auth, that
// allows password setting
{
$pw = new ilPasswordInputGUI($lng->txt("passwd"), "passwd");
$pw->setSize(32);
$pw->setMaxLength(32);
$pw->setValidateAuthPost("auth_mode");
if ($a_mode == "create")
{
$pw->setRequiredOnAuth(true);
}
$this->form_gui->addItem($pw);
}
// @todo: invisible/hidden passwords
// external account
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
{
$ext = new ilTextInputGUI($lng->txt("user_ext_account"), "ext_account");
$ext->setSize(40);
$ext->setMaxLength(50);
$ext->setInfo($lng->txt("user_ext_account_desc"));
$this->form_gui->addItem($ext);
}
// login data
$sec_si = new ilFormSectionHeaderGUI();
$sec_si->setTitle($this->lng->txt("system_information"));
$this->form_gui->addItem($sec_si);
// create date, approve date, agreement date, last login
if ($a_mode == "edit")
{
$sia = array("create_date", "approve_date", "agree_date", "last_login", "owner");
foreach($sia as $a)
{
$siai = new ilNonEditableValueGUI($lng->txt($a), $a);
$this->form_gui->addItem($siai);
}
}
// active
$ac = new ilCheckboxInputGUI($lng->txt("active"), "active");
$ac->setChecked(true);
$this->form_gui->addItem($ac);
// access @todo: get fields right (names change)
$lng->loadLanguageModule('crs');
// access
$radg = new ilRadioGroupInputGUI($lng->txt("time_limit"), "time_limit_unlimited");
$radg->setValue(1);
$op1 = new ilRadioOption($lng->txt("user_access_unlimited"), 1);
$radg->addOption($op1);
$op2 = new ilRadioOption($lng->txt("user_access_limited"), 0);
$radg->addOption($op2);
// $ac = new ilCheckboxInputGUI($lng->txt("time_limit"), "time_limit_unlimited");
// $ac->setChecked(true);
// $ac->setOptionTitle($lng->txt("crs_unlimited"));
// access.from
$acfrom = new ilDateTimeInputGUI($this->lng->txt("crs_from"), "time_limit_from");
$acfrom->setShowTime(true);
// $ac->addSubItem($acfrom);
$op2->addSubItem($acfrom);
// access.to
$acto = new ilDateTimeInputGUI($this->lng->txt("crs_to"), "time_limit_until");
$acto->setShowTime(true);
// $ac->addSubItem($acto);
$op2->addSubItem($acto);
// $this->form_gui->addItem($ac);
$this->form_gui->addItem($radg);
require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
{
// disk quota
$disk_quota = new ilTextInputGUI($lng->txt("disk_quota"), "disk_quota");
$disk_quota->setSize(10);
$disk_quota->setMaxLength(11);
$disk_quota->setInfo($this->lng->txt("enter_in_mb_desc"));
$this->form_gui->addItem($disk_quota);
if ($a_mode == "edit")
{
// show which disk quota is in effect, and explain why
require_once 'Services/WebDAV/classes/class.ilDiskQuotaChecker.php';
$dq_info = ilDiskQuotaChecker::_lookupDiskQuota($this->object->getId());
if ($dq_info['user_disk_quota'] > $dq_info['role_disk_quota'])
{
$info_text = sprintf($lng->txt('disk_quota_is_1_instead_of_2_by_3'),
ilFormat::formatSize($dq_info['user_disk_quota'],'short'),
ilFormat::formatSize($dq_info['role_disk_quota'],'short'),
$dq_info['role_title']);
}
else if (is_infinite($dq_info['role_disk_quota']))
{
$info_text = sprintf($lng->txt('disk_quota_is_unlimited_by_1'), $dq_info['role_title']);
}
else
{
$info_text = sprintf($lng->txt('disk_quota_is_1_by_2'),
ilFormat::formatSize($dq_info['role_disk_quota'],'short'),
$dq_info['role_title']);
}
$disk_quota->setInfo($this->lng->txt("enter_in_mb_desc").'<br>'.$info_text);
// disk usage
$du_info = ilDiskQuotaChecker::_lookupDiskUsage($this->object->getId());
$disk_usage = new ilNonEditableValueGUI($lng->txt("disk_usage"), "disk_usage");
if ($du_info['last_update'] === null)
{
$disk_usage->setValue($lng->txt('unknown'));
}
else
{
require_once './Services/Utilities/classes/class.ilFormat.php';
$disk_usage->setValue(ilFormat::formatSize($du_info['disk_usage'],'short'));
$info = '<table>';
// write the count and size of each object type
foreach ($du_info['details'] as $detail_data)
{
$info .= '<tr>'.
'<td>'.$detail_data['count'].'</td>'.
'<td>'.$lng->txt($detail_data['type']).'</td>'.
'<td>'.ilFormat::formatSize($detail_data['size'], 'short').'</td>'.
'</tr>'
;
}
$info .= '</table>';
$info .= '<br>'.$this->lng->txt('last_update').': '.
$disk_usage->setInfo($info);
}
$this->form_gui->addItem($disk_usage);
// date when the last disk quota reminder was sent to the user
if (true || $dq_info['last_reminder'])
{
$reminder = new ilNonEditableValueGUI($lng->txt("disk_quota_last_reminder_sent"), "last_reminder");
$reminder->setValue(
);
$reminder->setInfo($this->lng->txt("disk_quota_last_reminder_sent_desc"));
$this->form_gui->addItem($reminder);
}
}
}
// personal data
if(
$this->isSettingChangeable('gender') or
$this->isSettingChangeable('firstname') or
$this->isSettingChangeable('lastname') or
$this->isSettingChangeable('title') or
$this->isSettingChangeable('personal_image') or
$this->isSettingChangeable('birhtday')
)
{
$sec_pd = new ilFormSectionHeaderGUI();
$sec_pd->setTitle($this->lng->txt("personal_data"));
$this->form_gui->addItem($sec_pd);
}
// gender
if($this->isSettingChangeable('gender'))
{
$gndr = new ilRadioGroupInputGUI($lng->txt("gender"), "gender");
$gndr->setRequired(isset($settings["require_gender"]) && $settings["require_gender"]);
$female = new ilRadioOption($lng->txt("gender_f"), "f");
$gndr->addOption($female);
$male = new ilRadioOption($lng->txt("gender_m"), "m");
$gndr->addOption($male);
$this->form_gui->addItem($gndr);
}
// firstname, lastname, title
$fields = array("firstname" => true, "lastname" => true,
"title" => isset($settings["require_title"]) && $settings["require_title"]);
foreach($fields as $field => $req)
{
if($this->isSettingChangeable($field))
{
$inp = new ilTextInputGUI($lng->txt($field), $field);
$inp->setSize(32);
$inp->setMaxLength(32);
$inp->setRequired($req);
$this->form_gui->addItem($inp);
}
}
// personal image
if($this->isSettingChangeable('upload'))
{
$pi = new ilImageFileInputGUI($lng->txt("personal_picture"), "userfile");
if ($a_mode == "edit" || $a_mode == "upload")
{
$pi->setImage(ilObjUser::_getPersonalPicturePath($this->object->getId(), "small", true,
true));
}
$this->form_gui->addItem($pi);
}
if($this->isSettingChangeable('birthday'))
{
$birthday = new ilBirthdayInputGUI($lng->txt('birthday'), 'birthday');
$birthday->setRequired(isset($settings["require_birthday"]) && $settings["require_birthday"]);
$birthday->setShowEmpty(true);
$birthday->setStartYear(1900);
$this->form_gui->addItem($birthday);
}
// institution, department, street, city, zip code, country, phone office
// phone home, phone mobile, fax, e-mail
$fields = array(
array("institution", 40, 80),
array("department", 40, 80),
array("street", 40, 40),
array("city", 40, 40),
array("zipcode", 10, 10),
array("country", 40, 40),
array("sel_country"),
array("phone_office", 30, 30),
array("phone_home", 30, 30),
array("phone_mobile", 30, 30),
array("fax", 30, 30));
$counter = 0;
foreach ($fields as $field)
{
if(!$counter++ and $this->isSettingChangeable($field[0]))
{
// contact data
$sec_cd = new ilFormSectionHeaderGUI();
$sec_cd->setTitle($this->lng->txt("contact_data"));
$this->form_gui->addItem($sec_cd);
}
if($this->isSettingChangeable($field[0]))
{
if ($field[0] != "sel_country")
{
$inp = new ilTextInputGUI($lng->txt($field[0]), $field[0]);
$inp->setSize($field[1]);
$inp->setMaxLength($field[2]);
$inp->setRequired(isset($settings["require_".$field[0]]) &&
$settings["require_".$field[0]]);
$this->form_gui->addItem($inp);
}
else
{
// country selection
include_once("./Services/Form/classes/class.ilCountrySelectInputGUI.php");
$cs = new ilCountrySelectInputGUI($lng->txt($field[0]), $field[0]);
$cs->setRequired(isset($settings["require_".$field[0]]) &&
$settings["require_".$field[0]]);
$this->form_gui->addItem($cs);
}
}
}
// email
if($this->isSettingChangeable('email'))
{
$em = new ilEMailInputGUI($lng->txt("email"), "email");
$em->setRequired(isset($settings["require_email"]) &&
$settings["require_email"]);
$this->form_gui->addItem($em);
}
// interests/hobbies
if($this->isSettingChangeable('hobby'))
{
$hob = new ilTextAreaInputGUI($lng->txt("hobby"), "hobby");
$hob->setRows(3);
$hob->setCols(40);
$hob->setRequired(isset($settings["require_hobby"]) &&
$settings["require_hobby"]);
$this->form_gui->addItem($hob);
}
// referral comment
if($this->isSettingChangeable('referral_comment'))
{
$rc = new ilTextAreaInputGUI($lng->txt("referral_comment"), "referral_comment");
$rc->setRows(3);
$rc->setCols(40);
$rc->setRequired(isset($settings["require_referral_comment"]) &&
$settings["require_referral_comment"]);
$this->form_gui->addItem($rc);
}
// instant messengers
if($this->isSettingChangeable('instant_messengers'))
{
$sec_im = new ilFormSectionHeaderGUI();
$sec_im->setTitle($this->lng->txt("instant_messengers"));
$this->form_gui->addItem($sec_im);
}
// icq, yahoo, msn, aim, skype
$fields = array("icq", "yahoo", "msn", "aim", "skype", "jabber", "voip");
foreach ($fields as $field)
{
if($this->isSettingChangeable('instant_messengers'))
{
$im = new ilTextInputGUI($lng->txt("im_".$field), "im_".$field);
$im->setSize(40);
$im->setMaxLength(40);
$this->form_gui->addItem($im);
}
}
// other information
if($this->isSettingChangeable('user_profile_other'))
{
$sec_oi = new ilFormSectionHeaderGUI();
$sec_oi->setTitle($this->lng->txt("user_profile_other"));
$this->form_gui->addItem($sec_oi);
}
// matriculation number
if($this->isSettingChangeable('matriculation'))
{
$mr = new ilTextInputGUI($lng->txt("matriculation"), "matriculation");
$mr->setSize(40);
$mr->setMaxLength(40);
$mr->setRequired(isset($settings["require_matriculation"]) &&
$settings["require_matriculation"]);
$this->form_gui->addItem($mr);
}
// delicious
if($this->isSettingChangeable('delicious'))
{
$mr = new ilTextInputGUI($lng->txt("delicious"), "delicious");
$mr->setSize(40);
$mr->setMaxLength(40);
$mr->setRequired(isset($settings["require_delicious"]) &&
$settings["require_delicious"]);
$this->form_gui->addItem($mr);
}
// client IP
$ip = new ilTextInputGUI($lng->txt("client_ip"), "client_ip");
$ip->setSize(40);
$ip->setMaxLength(255);
$ip->setInfo($this->lng->txt("current_ip")." ".$_SERVER["REMOTE_ADDR"]." <br />".
'<span class="warning">'.$this->lng->txt("current_ip_alert")."</span>");
$this->form_gui->addItem($ip);
// additional user defined fields
include_once './Services/User/classes/class.ilUserDefinedFields.php';
$user_defined_fields = ilUserDefinedFields::_getInstance();
if($this->usrf_ref_id == USER_FOLDER_ID)
{
$all_defs = $user_defined_fields->getDefinitions();
}
else
{
$all_defs = $user_defined_fields->getChangeableLocalUserAdministrationDefinitions();
}
foreach($all_defs as $field_id => $definition)
{
if($definition['field_type'] == UDF_TYPE_TEXT) // text input
{
$udf = new ilTextInputGUI($definition['field_name'],
"udf_".$definition['field_id']);
$udf->setSize(40);
$udf->setMaxLength(255);
}
else if($definition['field_type'] == UDF_TYPE_WYSIWYG) // text area input
{
$udf = new ilTextAreaInputGUI($definition['field_name'],
"udf_".$definition['field_id']);
$udf->setUseRte(true);
}
else // selection input
{
$udf = new ilSelectInputGUI($definition['field_name'],
"udf_".$definition['field_id']);
$udf->setOptions($user_defined_fields->fieldValuesToSelectArray(
$definition['field_values']));
}
$udf->setRequired($definition['required']);
$this->form_gui->addItem($udf);
}
// settings
if(
$a_mode == 'create' or
$this->isSettingChangeable( 'language') or
$this->isSettingChangeable( 'skin_style') or
$this->isSettingChangeable( 'hits_per_page') or
$this->isSettingChangeable( 'hide_own_online_status')
)
{
$sec_st = new ilFormSectionHeaderGUI();
$sec_st->setTitle($this->lng->txt("settings"));
$this->form_gui->addItem($sec_st);
}
// role
if ($a_mode == "create")
{
$role = new ilSelectInputGUI($lng->txt("default_role"),
'default_role');
$role->setRequired(true);
$role->setValue($this->default_role);
$role->setOptions($this->selectable_roles);
$this->form_gui->addItem($role);
}
// language
if($this->isSettingChangeable('language'))
{
$lang = new ilSelectInputGUI($lng->txt("language"),
'language');
$languages = $lng->getInstalledLanguages();
$lng->loadLanguageModule("meta");
$options = array();
foreach($languages as $l)
{
$options[$l] = $lng->txt("meta_l_".$l);
}
$lang->setOptions($options);
$lang->setValue($ilSetting->get("language"));
$this->form_gui->addItem($lang);
}
// skin/style
if($this->isSettingChangeable('skin_style'))
{
$sk = new ilSelectInputGUI($lng->txt("skin_style"),
'skin_style');
$templates = $styleDefinition->getAllTemplates();
include_once("./Services/Style/classes/class.ilObjStyleSettings.php");
$options = array();
if (count($templates) > 0 && is_array ($templates))
{
foreach ($templates as $template)
{
$styleDef =& new ilStyleDefinition($template["id"]);
$styleDef->startParsing();
$styles = $styleDef->getStyles();
foreach ($styles as $style)
{
if (!ilObjStyleSettings::_lookupActivatedStyle($template["id"],$style["id"]))
{
continue;
}
$options[$template["id"].":".$style["id"]] =
$styleDef->getTemplateName()." / ".$style["name"];
}
}
}
$sk->setOptions($options);
$sk->setValue($ilClientIniFile->readVariable("layout","skin").
":".$ilClientIniFile->readVariable("layout","style"));
$this->form_gui->addItem($sk);
}
// hits per page
if($this->isSettingChangeable('hits_per_page'))
{
$hpp = new ilSelectInputGUI($lng->txt("hits_per_page"),
'hits_per_page');
$options = array(10 => 10, 15 => 15, 20 => 20, 30 => 30, 40 => 40,
50 => 50, 100 => 100, 9999 => $this->lng->txt("no_limit"));
$hpp->setOptions($options);
$hpp->setValue($ilSetting->get("hits_per_page"));
$this->form_gui->addItem($hpp);
// users online
$uo = new ilSelectInputGUI($lng->txt("users_online"),
'show_users_online');
$options = array(
"y" => $lng->txt("users_online_show_y"),
"associated" => $lng->txt("users_online_show_associated"),
"n" => $lng->txt("users_online_show_n"));
$uo->setOptions($options);
$uo->setValue($ilSetting->get("show_users_online"));
$this->form_gui->addItem($uo);
}
// hide online status
if($this->isSettingChangeable('hide_own_online_status'))
{
$os = new ilCheckboxInputGUI($lng->txt("hide_own_online_status"), "hide_own_online_status");
$this->form_gui->addItem($os);
}
// Options
if($this->isSettingChangeable('send_mail'))
{
$sec_op = new ilFormSectionHeaderGUI();
$sec_op->setTitle($this->lng->txt("options"));
$this->form_gui->addItem($sec_op);
}
// send email
$se = new ilCheckboxInputGUI($lng->txt('inform_user_mail'), 'send_mail');
$se->setValue('y');
$se->setChecked(($ilUser->getPref('send_info_mails') == 'y'));
$this->form_gui->addItem($se);
if((int)$ilSetting->get('session_reminder_enabled'))
{
$cb = new ilCheckboxInputGUI($this->lng->txt('session_reminder'), 'session_reminder_enabled');
$cb->setValue(1);
$this->form_gui->addItem($cb);
}
// ignore required fields
$irf = new ilCheckboxInputGUI($lng->txt('ignore_required_fields'), 'ignore_rf');
$irf->setInfo($lng->txt('ignore_required_fields_info'));
$irf->setValue(1);
$this->form_gui->addItem($irf);
// @todo: handle all required fields
// command buttons
if ($a_mode == "create" || $a_mode == "save")
{
$this->form_gui->addCommandButton("save", $lng->txt("save"));
}
if ($a_mode == "edit" || $a_mode == "update")
{
$this->form_gui->addCommandButton("update", $lng->txt("save"));
}
$this->form_gui->addCommandButton("cancel", $lng->txt("cancel"));
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::isSettingChangeable (   $a_field)
protected

Check if setting is visible This is the case when called from user folder.

Otherwise (category local user account depend on a setting)

Parameters
array$settings
string$a_field
Returns

Definition at line 1712 of file class.ilObjUserGUI.php.

References $ilSetting, and USER_FOLDER_ID.

Referenced by initForm(), loadValuesFromForm(), saveObject(), and updateObject().

{
// TODO: Allow mixed field parameter to support checks against an array of field names.
global $ilSetting;
static $settings = null;
if($this->usrf_ref_id == USER_FOLDER_ID)
{
return true;
}
if($settings == NULL)
{
$settings = $ilSetting->getAll();
}
return (bool) $settings['usr_settings_changeable_lua_'.$a_field];
}

+ Here is the caller graph for this function:

ilObjUserGUI::loadValuesFromForm (   $a_mode = 'create')
protected
Parameters
object$a_mode[optional]
Returns
object ilObjUser

Definition at line 594 of file class.ilObjUserGUI.php.

References $_POST, $ilSetting, $ilUser, ilObjectGUI\$object, IL_CAL_DATETIME, IL_CAL_UNIX, and isSettingChangeable().

Referenced by saveObject(), and updateObject().

{
switch($a_mode)
{
case 'create':
$user = new ilObjUser();
break;
case 'update':
$user = $this->object;
break;
}
$from = new ilDateTime($_POST['time_limit_from']['date'].' '.$_POST['time_limit_from']['time'],IL_CAL_DATETIME);
$user->setTimeLimitFrom($from->get(IL_CAL_UNIX));
$until = new ilDateTime($_POST['time_limit_until']['date'].' '.$_POST['time_limit_until']['time'],IL_CAL_DATETIME);
$user->setTimeLimitUntil($until->get(IL_CAL_UNIX));
$user->setTimeLimitUnlimited($this->form_gui->getInput('time_limit_unlimited'));
if($a_mode == 'create')
{
$user->setTimeLimitOwner($this->usrf_ref_id);
}
// Birthday
if($this->isSettingChangeable('birthday'))
{
$bd = $this->form_gui->getInput('birthday');
if($bd['date'])
{
$user->setBirthday($bd['date']);
}
else
{
$user->setBirthday(null);
}
}
// Login
$user->setLogin($this->form_gui->getInput('login'));
// Gender
if($this->isSettingChangeable('gender'))
{
$user->setGender($this->form_gui->getInput('gender'));
}
// Title
if($this->isSettingChangeable('title'))
{
$user->setUTitle($this->form_gui->getInput('title'));
}
// Firstname
if($this->isSettingChangeable('firstname'))
{
$user->setFirstname($this->form_gui->getInput('firstname'));
}
// Lastname
if($this->isSettingChangeable('lastname'))
{
$user->setLastname($this->form_gui->getInput('lastname'));
}
$user->setFullname();
// Institution
if($this->isSettingChangeable('institution'))
{
$user->setInstitution($this->form_gui->getInput('institution'));
}
// Department
if($this->isSettingChangeable('department'))
{
$user->setDepartment($this->form_gui->getInput('department'));
}
// Street
if($this->isSettingChangeable('street'))
{
$user->setStreet($this->form_gui->getInput('street'));
}
// City
if($this->isSettingChangeable('city'))
{
$user->setCity($this->form_gui->getInput('city'));
}
// Zipcode
if($this->isSettingChangeable('zipcode'))
{
$user->setZipcode($this->form_gui->getInput('zipcode'));
}
// Country
if($this->isSettingChangeable('country'))
{
$user->setCountry($this->form_gui->getInput('country'));
}
// Selected Country
if($this->isSettingChangeable('sel_country'))
{
$user->setSelectedCountry($this->form_gui->getInput('sel_country'));
}
// Phone Office
if($this->isSettingChangeable('phone_office'))
{
$user->setPhoneOffice($this->form_gui->getInput('phone_office'));
}
// Phone Home
if($this->isSettingChangeable('phone_home'))
{
$user->setPhoneHome($this->form_gui->getInput('phone_home'));
}
// Phone Mobile
if($this->isSettingChangeable('phone_mobile'))
{
$user->setPhoneMobile($this->form_gui->getInput('phone_mobile'));
}
// Fax
if($this->isSettingChangeable('fax'))
{
$user->setFax($this->form_gui->getInput('fax'));
}
// Matriculation
if($this->isSettingChangeable('matriculation'))
{
$user->setMatriculation($this->form_gui->getInput('matriculation'));
}
// Email
if($this->isSettingChangeable('email'))
{
$user->setEmail($this->form_gui->getInput('email'));
}
// Hobby
if($this->isSettingChangeable('hobby'))
{
$user->setHobby($this->form_gui->getInput('hobby'));
}
// Referral Comment
if($this->isSettingChangeable('referral_comment'))
{
$user->setComment($this->form_gui->getInput('referral_comment'));
}
// ClientIP
$user->setClientIP($this->form_gui->getInput('client_ip'));
if($this->isSettingChangeable('instant_messengers'))
{
$user->setInstantMessengerId('icq', $this->form_gui->getInput('im_icq'));
$user->setInstantMessengerId('yahoo', $this->form_gui->getInput('im_yahoo'));
$user->setInstantMessengerId('msn', $this->form_gui->getInput('im_msn'));
$user->setInstantMessengerId('aim', $this->form_gui->getInput('im_aim'));
$user->setInstantMessengerId('skype', $this->form_gui->getInput('im_skype'));
$user->setInstantMessengerId('jabber', $this->form_gui->getInput('im_jabber'));
$user->setInstantMessengerId('voip', $this->form_gui->getInput('im_voip'));
}
// Delicious
if($this->isSettingChangeable('delicious'))
{
$user->setDelicious($this->form_gui->getInput('delicious'));
}
// Google maps
$user->setLatitude($this->form_gui->getInput('latitude'));
$user->setLongitude($this->form_gui->getInput('longitude'));
$user->setLocationZoom($this->form_gui->getInput('loc_zoom'));
// External account
$user->setAuthMode($this->form_gui->getInput('auth_mode'));
$user->setExternalAccount($this->form_gui->getInput('ext_account'));
if((int) $user->getActive() != (int) $this->form_gui->getInput('active'))
{
$user->setActive($this->form_gui->getInput('active'), $ilUser->getId());
}
return $user;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::removeUserPictureObject ( )

remove user image

Definition at line 2473 of file class.ilObjUserGUI.php.

References $file, editObject(), ilUtil\getWebspaceDir(), and ilUtil\sendSuccess().

{
$webspace_dir = ilUtil::getWebspaceDir();
$image_dir = $webspace_dir."/usr_images";
$file = $image_dir."/usr_".$this->object->getID()."."."jpg";
$thumb_file = $image_dir."/usr_".$this->object->getID()."_small.jpg";
$xthumb_file = $image_dir."/usr_".$this->object->getID()."_xsmall.jpg";
$xxthumb_file = $image_dir."/usr_".$this->object->getID()."_xxsmall.jpg";
$upload_file = $image_dir."/upload_".$this->object->getID();
// remove user pref file name
$this->object->setPref("profile_image", "");
$this->object->update();
ilUtil::sendSuccess($this->lng->txt("user_image_removed"));
if (@is_file($file))
{
unlink($file);
}
if (@is_file($thumb_file))
{
unlink($thumb_file);
}
if (@is_file($xthumb_file))
{
unlink($xthumb_file);
}
if (@is_file($xxthumb_file))
{
unlink($xxthumb_file);
}
if (@is_file($upload_file))
{
unlink($upload_file);
}
$this->editObject();
}

+ Here is the call graph for this function:

ilObjUserGUI::resetFilterObject ( )

Reset filter.

Definition at line 3257 of file class.ilObjUserGUI.php.

References roleassignmentObject().

{
include_once("./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
$table_gui = new ilRoleAssignmentTableGUI($this, "roleassignment");
$table_gui->resetOffset(); // sets record offest to 0 (first page)
$table_gui->resetFilter(); // clears filter
}

+ Here is the call graph for this function:

ilObjUserGUI::roleassignmentObject ( )

display roleassignment panel

public

Definition at line 3073 of file class.ilObjUserGUI.php.

References $_POST, $_SESSION, $ilUser, ilObjectGUI\$obj_id, $path, ilObjectGUI\$ref_id, $tab, $title, __buildFilterSelect(), __showRolesTable(), ilObject\_getAllReferences(), ilSecuritySettings\_getInstance(), ilObjRole\_getTranslation(), ilObject\_lookupType(), and ilRbacReview\getObjectOfRole().

Referenced by applyFilterObject(), hitsperpageObject(), and resetFilterObject().

{
global $rbacreview,$rbacsystem,$ilUser, $ilTabs;
$ilTabs->activateTab("role_assignment");
if (!$rbacsystem->checkAccess("edit_roleassignment", $this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_assign_role_to_user"),$this->ilias->error_obj->MESSAGE);
}
$_SESSION['filtered_roles'] = isset($_POST['filter']) ? $_POST['filter'] : $_SESSION['filtered_roles'];
if ($_SESSION['filtered_roles'] > 5)
{
$_SESSION['filtered_roles'] = 0;
}
$this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.usr_role_assignment.html','Services/User');
if(false)
{
$this->tpl->setCurrentBlock("filter");
$this->tpl->setVariable("FILTER_TXT_FILTER",$this->lng->txt('filter'));
$this->tpl->setVariable("SELECT_FILTER",$this->__buildFilterSelect());
$this->tpl->setVariable("FILTER_ACTION",$this->ctrl->getFormAction($this));
$this->tpl->setVariable("FILTER_NAME",'roleassignment');
$this->tpl->setVariable("FILTER_VALUE",$this->lng->txt('apply_filter'));
$this->tpl->parseCurrentBlock();
}
// init table
include_once("./Services/User/classes/class.ilRoleAssignmentTableGUI.php");
$tab = new ilRoleAssignmentTableGUI($this, "roleassignment");
// now get roles depending on filter settings
$role_list = $rbacreview->getRolesByFilter($tab->filter["role_filter"],$this->object->getId());
$assigned_roles = $rbacreview->assignedRoles($this->object->getId());
$counter = 0;
include_once ('./Services/AccessControl/classes/class.ilObjRole.php');
$records = array();
foreach ($role_list as $role)
{
// fetch context path of role
$rolf = $rbacreview->getFoldersAssignedToRole($role["obj_id"],true);
// only list roles that are not set to status "deleted"
if ($rbacreview->isDeleted($rolf[0]))
{
continue;
}
// build context path
$path = "";
if ($this->tree->isInTree($rolf[0]))
{
if ($rolf[0] == ROLE_FOLDER_ID)
{
$path = $this->lng->txt("global");
}
else
{
$tmpPath = $this->tree->getPathFull($rolf[0]);
// count -1, to exclude the role folder itself
/*for ($i = 1; $i < (count($tmpPath)-1); $i++)
{
if ($path != "")
{
$path .= " > ";
}
$path .= $tmpPath[$i]["title"];
}*/
$path = $tmpPath[count($tmpPath)-2]["title"];
}
}
else
{
$path = "<b>Rolefolder ".$rolf[0]." not found in tree! (Role ".$role["obj_id"].")</b>";
}
$disabled = false;
// disable checkbox for system role for the system user
if (($this->object->getId() == SYSTEM_USER_ID and $role["obj_id"] == SYSTEM_ROLE_ID)
or (!in_array(SYSTEM_ROLE_ID,$rbacreview->assignedRoles($ilUser->getId())) and $role["obj_id"] == SYSTEM_ROLE_ID))
{
$disabled = true;
}
// protected admin role
if($role['obj_id'] == SYSTEM_ROLE_ID && !$rbacreview->isAssigned($ilUser->getId(),SYSTEM_ROLE_ID))
{
include_once './Services/PrivacySecurity/classes/class.ilSecuritySettings.php';
if(ilSecuritySettings::_getInstance()->isAdminRoleProtected())
{
$disabled = true;
}
}
if (substr($role["title"],0,3) == "il_")
{
if (!$assignable)
{
$rolf_arr = $rbacreview->getFoldersAssignedToRole($role["obj_id"],true);
$rolf2 = $rolf_arr[0];
}
else
{
$rolf2 = $rolf;
}
$parent_node = $this->tree->getParentNodeData($rolf2);
$role["description"] = $this->lng->txt("obj_".$parent_node["type"])."&nbsp;(#".$parent_node["obj_id"].")";
}
$role_ids[$counter] = $role["obj_id"];
$result_set[$counter][] = $checkbox = ilUtil::formCheckBox(in_array($role["obj_id"],$assigned_roles),"role_id[]",$role["obj_id"],$disabled)."<input type=\"hidden\" name=\"role_id_ctrl[]\" value=\"".$role["obj_id"]."\"/>";
$this->ctrl->setParameterByClass("ilobjrolegui", "ref_id", $rolf[0]);
$this->ctrl->setParameterByClass("ilobjrolegui", "obj_id", $role["obj_id"]);
$result_set[$counter][] = $link = "<a href=\"".$this->ctrl->getLinkTargetByClass("ilobjrolegui", "perm")."\">".ilObjRole::_getTranslation($role["title"])."</a>";
$result_set[$counter][] = $role["description"];
// Add link to objector local Rores
if ($role["role_type"] == "local") {
// Get Object to the role
foreach ($ref_ids as $ref_id) {}
require_once("./Services/Link/classes/class.ilLink.php");
$result_set[$counter][] = $context = "<a href='".ilLink::_getLink($ref_id, ilObject::_lookupType($obj_id))."' target='_top'>".$path."</a>";
}
else
{
$result_set[$counter][] = $path;
$context = $path;
}
$records[] = array("path" => $path, "description" => $role["description"],
"context" => $context, "checkbox" => $checkbox,
"role" => $link, "title" => $title);
++$counter;
}
if (true)
{
$tab->setData($records);
$this->tpl->setVariable("ROLES_TABLE",$tab->getHTML());
return;
}
return $this->__showRolesTable($result_set,$role_ids);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjUserGUI::saveObject ( )

save user data public

Reimplemented from ilObjectGUI.

Definition at line 377 of file class.ilObjUserGUI.php.

References $_GET, $_POST, $ilSetting, $ilUser, ilObjectGUI\$tpl, ilFormat\_getSizeMagnitude(), ilDiskQuotaActivationChecker\_isActive(), ilAuthUtils\_isExternalAccountEnabled(), handleIgnoredRequiredFields(), IL_PASSWD_PLAIN, initCreate(), initForm(), ilUserProfile\isProfileIncomplete(), isSettingChangeable(), loadValuesFromForm(), ilUtil\sendInfo(), ilUtil\sendSuccess(), and uploadUserPictureObject().

{
global $ilAccess, $ilSetting, $tpl, $ilUser, $rbacadmin;
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
// User folder
if (!$ilAccess->checkAccess('create_usr', "", $this->usrf_ref_id) &&
!$ilAccess->checkAccess('cat_administrate_users', "", $this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
}
$this->initCreate();
$this->initForm("create");
// Manipulate form so ignore required fields are no more required. This has to be done before ilPropertyFormGUI::checkInput() is called.
$profileMaybeIncomplete = false;
if($this->form_gui->getInput('ignore_rf', false))
{
$profileMaybeIncomplete = $this->handleIgnoredRequiredFields();
}
if ($this->form_gui->checkInput())
{
// @todo: external account; time limit check and savings
// checks passed. save user
$userObj = $this->loadValuesFromForm();
$userObj->setPasswd($this->form_gui->getInput('passwd'),IL_PASSWD_PLAIN);
$userObj->setTitle($userObj->getFullname());
$userObj->setDescription($userObj->getEmail());
$udf = array();
foreach($_POST as $k => $v)
{
if (substr($k, 0, 4) == "udf_")
{
$udf[substr($k, 4)] = $v;
}
}
$userObj->setUserDefinedData($udf);
$userObj->create();
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
{
$userObj->setExternalAccount($_POST["ext_account"]);
}
// set a timestamp for last_password_change
// this ts is needed by the ACCOUNT_SECURITY_MODE_CUSTOMIZED
// in ilSecuritySettings
$userObj->setLastPasswordChangeTS( time() );
//insert user data in table user_data
$userObj->saveAsNew();
// setup user preferences
if($this->isSettingChangeable('language'))
{
$userObj->setLanguage($_POST["language"]);
}
// Set disk quota
require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
{
// The disk quota is entered in megabytes but stored in bytes
$userObj->setPref("disk_quota", trim($_POST["disk_quota"]) * ilFormat::_getSizeMagnitude() * ilFormat::_getSizeMagnitude());
}
if($this->isSettingChangeable('skin_style'))
{
//set user skin and style
$sknst = explode(":", $_POST["skin_style"]);
if ($userObj->getPref("style") != $sknst[1] ||
$userObj->getPref("skin") != $sknst[0])
{
$userObj->setPref("skin", $sknst[0]);
$userObj->setPref("style", $sknst[1]);
}
}
if($this->isSettingChangeable('hits_per_page'))
{
$userObj->setPref("hits_per_page", $_POST["hits_per_page"]);
}
if($this->isSettingChangeable('show_users_online'))
{
$userObj->setPref("show_users_online", $_POST["show_users_online"]);
}
if($this->isSettingChangeable('hide_own_online_status'))
{
$userObj->setPref("hide_own_online_status", $_POST["hide_own_online_status"] ? 'y' : 'n');
}
if((int)$ilSetting->get('session_reminder_enabled'))
{
$userObj->setPref('session_reminder_enabled', (int)$_POST['session_reminder_enabled']);
}
$userObj->writePrefs();
//set role entries
$rbacadmin->assignUser($_POST["default_role"],$userObj->getId(),true);
$msg = $this->lng->txt("user_added");
$ilUser->setPref('send_info_mails', ($_POST['send_mail'] == 'y') ? 'y' : 'n');
$ilUser->writePrefs();
$this->object = $userObj;
if($this->isSettingChangeable('upload'))
{
}
if( $profileMaybeIncomplete )
{
include_once 'Services/User/classes/class.ilUserProfile.php';
{
$this->object->setProfileIncomplete( true );
$this->object->update();
}
}
// send new account mail
if($_POST['send_mail'] == 'y')
{
include_once('Services/Mail/classes/class.ilAccountMail.php');
$acc_mail = new ilAccountMail();
$acc_mail->useLangVariablesAsFallback(true);
$acc_mail->setUserPassword($_POST['passwd']);
$acc_mail->setUser($userObj);
if ($acc_mail->send())
{
$msg = $msg.'<br />'.$this->lng->txt('mail_sent');
ilUtil::sendSuccess($msg, true);
}
else
{
$msg = $msg.'<br />'.$this->lng->txt('mail_not_sent');
ilUtil::sendInfo($msg, true);
}
}
else
{
ilUtil::sendSuccess($msg, true);
}
if(strtolower($_GET["baseClass"]) == 'iladministrationgui')
{
$this->ctrl->redirectByClass("ilobjuserfoldergui", "view");
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}
else
{
$this->form_gui->setValuesByPost();
$tpl->setContent($this->form_gui->getHtml());
}
}

+ Here is the call graph for this function:

ilObjUserGUI::setBackTarget (   $a_text,
  $a_link 
)

set back tab target

Definition at line 213 of file class.ilObjUserGUI.php.

{
$this->back_target = array("text" => $a_text,
"link" => $a_link);
}
ilObjUserGUI::setTitleAndDescription ( )

called by prepare output

Reimplemented from ilObjectGUI.

Definition at line 115 of file class.ilObjUserGUI.php.

References ilUtil\getImagePath().

{
if(strtolower(get_class($this->object)) == 'ilobjuser')
{
$this->tpl->setTitle('['.$this->object->getLogin().'] '.$this->object->getTitle());
$this->tpl->setDescription($this->object->getLongDescription());
$this->tpl->setTitleIcon(ilUtil::getImagePath("icon_".$this->object->getType()."_b.png"), $this->lng->txt("obj_" . $this->object->getType()));
}
else
{
}
}

+ Here is the call graph for this function:

ilObjUserGUI::showUpperIcon ( )

Definition at line 3472 of file class.ilObjUserGUI.php.

{
}
ilObjUserGUI::updateObject ( )

Update user.

Reimplemented from ilObjectGUI.

Definition at line 779 of file class.ilObjUserGUI.php.

References $_GET, $_POST, ilObjectGUI\$ilias, $ilSetting, $ilUser, ilObjectGUI\$tpl, __sendProfileMail(), ilAuthUtils\_allowPasswordModificationByAuthMode(), ilAuthUtils\_getAuthMode(), ilSecuritySettings\_getInstance(), ilFormat\_getSizeMagnitude(), ilDiskQuotaActivationChecker\_isActive(), ilObjUser\_resetLoginAttempts(), ilSecuritySettings\ACCOUNT_SECURITY_MODE_CUSTOMIZED, handleIgnoredRequiredFields(), IL_PASSWD_PLAIN, initForm(), ilUserProfile\isProfileIncomplete(), isSettingChangeable(), loadValuesFromForm(), ilUtil\sendFailure(), ilUtil\sendSuccess(), uploadUserPictureObject(), and USER_FOLDER_ID.

{
global $tpl, $rbacsystem, $ilias, $ilUser, $ilSetting;
// User folder
if($this->usrf_ref_id == USER_FOLDER_ID and !$rbacsystem->checkAccess('visible,read,write',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
// if called from local administration $this->usrf_ref_id is category id
// Todo: this has to be fixed. Do not mix user folder id and category id
if($this->usrf_ref_id != USER_FOLDER_ID)
{
// check if user is assigned to category
if(!$rbacsystem->checkAccess('cat_administrate_users',$this->object->getTimeLimitOwner()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
}
$this->initForm("edit");
// we do not want to store this dates, they are only printed out
unset($_POST['approve_date']);
$_POST['agree_date'] = $this->object->getAgreeDate();
unset($_POST['last_login']);
// Manipulate form so ignore required fields are no more required. This has to be done before ilPropertyFormGUI::checkInput() is called.
$profileMaybeIncomplete = false;
if($this->form_gui->getInput('ignore_rf', false))
{
$profileMaybeIncomplete = $this->handleIgnoredRequiredFields();
}
if ($this->form_gui->checkInput())
{
// @todo: external account; time limit
// if not allowed or empty -> do no change password
&& trim($_POST['passwd']) != "")
{
$this->object->setPasswd($_POST['passwd'], IL_PASSWD_PLAIN);
}
// differentiate account security mode
require_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
$security_settings = ilSecuritySettings::_getInstance();
if( $security_settings->getAccountSecurityMode() ==
{
/*
* reset counter for failed logins
* if $_POST['active'] is set to 1
*/
if( $_POST['active'] == 1 )
{
ilObjUser::_resetLoginAttempts( $this->object->getId() );
}
}
#$this->object->assignData($_POST);
$this->loadValuesFromForm('update');
$udf = array();
foreach($_POST as $k => $v)
{
if (substr($k, 0, 4) == "udf_")
{
$udf[substr($k, 4)] = $v;
}
}
$this->object->setUserDefinedData($udf);
try
{
$this->object->updateLogin($_POST['login']);
}
catch (ilUserException $e)
{
ilUtil::sendFailure($e->getMessage());
$this->form_gui->setValuesByPost();
return $tpl->setContent($this->form_gui->getHtml());
}
$this->object->setTitle($this->object->getFullname());
$this->object->setDescription($this->object->getEmail());
if($this->isSettingChangeable('language'))
{
$this->object->setLanguage($this->form_gui->getInput('language'));
}
require_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
{
// set disk quota
$this->object->setPref("disk_quota", $_POST["disk_quota"] * ilFormat::_getSizeMagnitude() * ilFormat::_getSizeMagnitude());
}
if($this->isSettingChangeable('skin_style'))
{
//set user skin and style
$sknst = explode(":", $_POST["skin_style"]);
if ($this->object->getPref("style") != $sknst[1] ||
$this->object->getPref("skin") != $sknst[0])
{
$this->object->setPref("skin", $sknst[0]);
$this->object->setPref("style", $sknst[1]);
}
}
if($this->isSettingChangeable('hits_per_page'))
{
$this->object->setPref("hits_per_page", $_POST["hits_per_page"]);
}
if($this->isSettingChangeable('show_users_online'))
{
$this->object->setPref("show_users_online", $_POST["show_users_online"]);
}
if($this->isSettingChangeable('hide_own_online_status'))
{
$this->object->setPref("hide_own_online_status", $_POST["hide_own_online_status"] ? 'y' : 'n');
}
// set a timestamp for last_password_change
// this ts is needed by the ACCOUNT_SECURITY_MODE_CUSTOMIZED
// in ilSecuritySettings
$this->object->setLastPasswordChangeTS( time() );
global $ilSetting;
if((int)$ilSetting->get('session_reminder_enabled'))
{
$this->object->setPref('session_reminder_enabled', (int)$_POST['session_reminder_enabled']);
}
// #10054 - profile may have been completed, check below is only for incomplete
$this->object->setProfileIncomplete( false );
$this->update = $this->object->update();
// If the current user is editing its own user account,
// we update his preferences.
if ($ilUser->getId() == $this->object->getId())
{
$ilUser->readPrefs();
}
$ilUser->setPref('send_info_mails', ($_POST['send_mail'] == 'y') ? 'y' : 'n');
$ilUser->writePrefs();
$mail_message = $this->__sendProfileMail();
$msg = $this->lng->txt('saved_successfully').$mail_message;
// same personal image
if($this->isSettingChangeable('upload'))
{
}
if( $profileMaybeIncomplete )
{
include_once 'Services/User/classes/class.ilUserProfile.php';
{
$this->object->setProfileIncomplete( true );
$this->object->update();
}
}
// feedback
ilUtil::sendSuccess($msg,true);
if (strtolower($_GET["baseClass"]) == 'iladministrationgui')
{
$this->ctrl->redirectByClass("ilobjuserfoldergui", "view");
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}
else
{
$this->form_gui->setValuesByPost();
$tpl->setContent($this->form_gui->getHtml());
}
}

+ Here is the call graph for this function:

ilObjUserGUI::updateObjectOld ( )

save user data public

Does input checks and updates a user account if everything is fine. public

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

References $_GET, $_POST, $_SESSION, ilObjectGUI\$ilias, $ilUser, ilObjectGUI\$tpl, __checkUserDefinedRequiredFields(), __sendProfileMail(), __toUnix(), ilAuthUtils\_allowPasswordModificationByAuthMode(), ilObjUser\_checkExternalAuthAccount(), ilAuthUtils\_getAuthMode(), ilObjUser\_loginExists(), ilAuthUtils\_needsExternalAccountByAuthMode(), editObject(), IL_PASSWD_PLAIN, ilUtil\is_email(), ilUtil\isLogin(), ilUtil\isPassword(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilUtil\stripSlashes(), and USER_FOLDER_ID.

{
global $ilias, $rbacsystem, $rbacadmin,$ilUser;
include_once('./Services/Authentication/classes/class.ilAuthUtils.php');
//load ILIAS settings
$settings = $ilias->getAllSettings();
// User folder
if($this->usrf_ref_id == USER_FOLDER_ID and !$rbacsystem->checkAccess('visible,read,write',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
// if called from local administration $this->usrf_ref_id is category id
// Todo: this has to be fixed. Do not mix user folder id and category id
if($this->usrf_ref_id != USER_FOLDER_ID)
{
// check if user is assigned to category
if(!$rbacsystem->checkAccess('cat_administrate_users',$this->object->getTimeLimitOwner()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
}
foreach ($_POST["Fobject"] as $key => $val)
{
$_POST["Fobject"][$key] = ilUtil::stripSlashes($val);
}
// check dynamically required fields
foreach ($settings as $key => $val)
{
$field = substr($key,8);
switch($field)
{
case 'passwd':
case 'passwd2':
{
$require_keys[] = $field;
}
break;
default:
$require_keys[] = $field;
break;
}
}
foreach ($require_keys as $key => $val)
{
// exclude required system and registration-only fields
$system_fields = array("default_role");
if (!in_array($val, $system_fields))
{
if (isset($settings["require_" . $val]) && $settings["require_" . $val])
{
if (empty($_POST["Fobject"][$val]))
{
$this->ilias->raiseError($this->lng->txt("fill_out_all_required_fields") . ": " .
$this->lng->txt($val),$this->ilias->error_obj->MESSAGE);
}
}
}
}
{
$this->ilias->raiseError($this->lng->txt("fill_out_all_required_fields"),$this->ilias->error_obj->MESSAGE);
}
// validate login
if ($this->object->getLogin() != $_POST["Fobject"]["login"] &&
!ilUtil::isLogin($_POST["Fobject"]["login"]))
{
$this->ilias->raiseError($this->lng->txt("login_invalid"),$this->ilias->error_obj->MESSAGE);
}
// check loginname
if (ilObjUser::_loginExists($_POST["Fobject"]["login"],$this->id))
{
$this->ilias->raiseError($this->lng->txt("login_exists"),$this->ilias->error_obj->MESSAGE);
}
{
if($_POST['Fobject']['passwd'] == "********" and
!strlen($this->object->getPasswd()))
{
$this->ilias->raiseError($this->lng->txt("fill_out_all_required_fields") . ": " .
$this->lng->txt('password'),$this->ilias->error_obj->MESSAGE);
}
// check passwords
if ($_POST["Fobject"]["passwd"] != $_POST["Fobject"]["passwd2"])
{
$this->ilias->raiseError($this->lng->txt("passwd_not_match"),$this->ilias->error_obj->MESSAGE);
}
// validate password
if (!ilUtil::isPassword($_POST["Fobject"]["passwd"]))
{
$this->ilias->raiseError($this->lng->txt("passwd_invalid"),$this->ilias->error_obj->MESSAGE);
}
}
else
{
// Password will not be changed...
$_POST['Fobject']['passwd'] = "********";
}
{
if(!strlen($_POST['Fobject']['ext_account']))
{
$this->ilias->raiseError($this->lng->txt('ext_acccount_required'),$this->ilias->error_obj->MESSAGE);
}
}
if($_POST['Fobject']['ext_account'] &&
($elogin = ilObjUser::_checkExternalAuthAccount($_POST['Fobject']['auth_mode'],$_POST['Fobject']['ext_account'])))
{
if($elogin != $this->object->getLogin())
{
$this->ilias->raiseError(
sprintf($this->lng->txt("err_auth_ext_user_exists"),
$_POST["Fobject"]["ext_account"],
$_POST['Fobject']['auth_mode'],
$elogin),
$this->ilias->error_obj->MESSAGE);
}
}
// The password type is not passed with the post data. Therefore we
// append it here manually.
include_once ('./Services/User/classes/class.ilObjUser.php');
$_POST["Fobject"]["passwd_type"] = IL_PASSWD_PLAIN;
// validate email
if (strlen($_POST['Fobject']['email']) and !ilUtil::is_email($_POST["Fobject"]["email"]))
{
$this->ilias->raiseError($this->lng->txt("email_not_valid"),$this->ilias->error_obj->MESSAGE);
}
$start = $this->__toUnix($_POST["time_limit"]["from"]);
$end = $this->__toUnix($_POST["time_limit"]["until"]);
// validate time limit
if (!$_POST["time_limit"]["unlimited"] and
( $start > $end))
{
$this->ilias->raiseError($this->lng->txt("time_limit_not_valid"),$this->ilias->error_obj->MESSAGE);
}
if(!$this->ilias->account->getTimeLimitUnlimited())
{
if($start < $this->ilias->account->getTimeLimitFrom() or
$end > $this->ilias->account->getTimeLimitUntil() or
$_POST['time_limit']['unlimited'])
{
$_SESSION['error_post_vars'] = $_POST;
ilUtil::sendFailure($this->lng->txt('time_limit_not_within_owners'));
$this->editObject();
return false;
}
}
// TODO: check length of login and passwd
// checks passed. save user
$_POST['Fobject']['time_limit_owner'] = $this->object->getTimeLimitOwner();
$_POST['Fobject']['time_limit_unlimited'] = (int) $_POST['time_limit']['unlimited'];
$_POST['Fobject']['time_limit_from'] = $this->__toUnix($_POST['time_limit']['from']);
$_POST['Fobject']['time_limit_until'] = $this->__toUnix($_POST['time_limit']['until']);
if($_POST['Fobject']['time_limit_unlimited'] != $this->object->getTimeLimitUnlimited() or
$_POST['Fobject']['time_limit_from'] != $this->object->getTimeLimitFrom() or
$_POST['Fobject']['time_limit_until'] != $this->object->getTimeLimitUntil())
{
$_POST['Fobject']['time_limit_message'] = 0;
}
else
{
$_POST['Fobject']['time_limit_message'] = $this->object->getTimeLimitMessage();
}
$this->object->assignData($_POST["Fobject"]);
$this->object->setUserDefinedData($_POST['udf']);
try
{
$this->object->updateLogin($_POST['Fobject']['login']);
}
catch (ilUserException $e)
{
ilUtil::sendFailure($e->getMessage());
$this->form_gui->setValuesByPost();
return $tpl->setContent($this->form_gui->getHtml());
}
$this->object->setTitle($this->object->getFullname());
$this->object->setDescription($this->object->getEmail());
$this->object->setLanguage($_POST["Fobject"]["language"]);
//set user skin and style
$sknst = explode(":", $_POST["Fobject"]["skin_style"]);
if ($this->object->getPref("style") != $sknst[1] ||
$this->object->getPref("skin") != $sknst[0])
{
$this->object->setPref("skin", $sknst[0]);
$this->object->setPref("style", $sknst[1]);
}
// set hits per pages
$this->object->setPref("hits_per_page", $_POST["Fobject"]["hits_per_page"]);
// set show users online
$this->object->setPref("show_users_online", $_POST["Fobject"]["show_users_online"]);
// set hide_own_online_status
if ($_POST["Fobject"]["hide_own_online_status"]) {
$this->object->setPref("hide_own_online_status", $_POST["Fobject"]["hide_own_online_status"]);
}
else {
$this->object->setPref("hide_own_online_status", "n");
}
$this->update = $this->object->update();
//$rbacadmin->updateDefaultRole($_POST["Fobject"]["default_role"], $this->object->getId());
// BEGIN DiskQuota: Remember the state of the "send info mail" checkbox
global $ilUser;
$ilUser->setPref('send_info_mails', ($_POST['send_mail'] == 'y') ? 'y' : 'n');
$ilUser->writePrefs();
// END DiskQuota: Remember the state of the "send info mail" checkbox
$mail_message = $this->__sendProfileMail();
$msg = $this->lng->txt('saved_successfully').$mail_message;
// feedback
ilUtil::sendSuccess($msg,true);
if (strtolower($_GET["baseClass"]) == 'iladministrationgui')
{
$this->ctrl->redirectByClass("ilobjuserfoldergui", "view");
}
else
{
$this->ctrl->redirectByClass('ilobjcategorygui','listUsers');
}
}

+ Here is the call graph for this function:

ilObjUserGUI::uploadUserPictureObject ( )

upload user image

(original method by ratana ty)

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

References $ilUser, ilUtil\escapeShellArg(), ilUtil\execConvert(), ilUtil\getWebspaceDir(), ilUtil\isConvertVersionAtLeast(), ilUtil\moveUploadedFile(), ilUtil\sendFailure(), and USER_FOLDER_ID.

Referenced by saveObject(), and updateObject().

{
global $ilUser, $rbacsystem;
// User folder
if($this->usrf_ref_id == USER_FOLDER_ID and
!$rbacsystem->checkAccess('visible,read',$this->usrf_ref_id))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
// if called from local administration $this->usrf_ref_id is category id
// Todo: this has to be fixed. Do not mix user folder id and category id
if($this->usrf_ref_id != USER_FOLDER_ID)
{
// check if user is assigned to category
if(!$rbacsystem->checkAccess('cat_administrate_users',$this->object->getTimeLimitOwner()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_modify_user"),$this->ilias->error_obj->MESSAGE);
}
}
$userfile_input = $this->form_gui->getItemByPostVar("userfile");
if ($_FILES["userfile"]["tmp_name"] == "")
{
if ($userfile_input->getDeletionFlag())
{
$this->object->removeUserPicture();
}
return;
}
if ($_FILES["userfile"]["size"] == 0)
{
ilUtil::sendFailure($this->lng->txt("msg_no_file"));
}
else
{
$webspace_dir = ilUtil::getWebspaceDir();
$image_dir = $webspace_dir."/usr_images";
$store_file = "usr_".$this->object->getId()."."."jpg";
// store filename
$this->object->setPref("profile_image", $store_file);
$this->object->update();
// move uploaded file
$uploaded_file = $image_dir."/upload_".$this->object->getId()."pic";
if (!ilUtil::moveUploadedFile($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"],
$uploaded_file, false))
{
ilUtil::sendFailure($this->lng->txt("upload_error", true));
$this->ctrl->redirect($this, "showProfile");
}
chmod($uploaded_file, 0770);
// take quality 100 to avoid jpeg artefacts when uploading jpeg files
// taking only frame [0] to avoid problems with animated gifs
$show_file = "$image_dir/usr_".$this->object->getId().".jpg";
$thumb_file = "$image_dir/usr_".$this->object->getId()."_small.jpg";
$xthumb_file = "$image_dir/usr_".$this->object->getId()."_xsmall.jpg";
$xxthumb_file = "$image_dir/usr_".$this->object->getId()."_xxsmall.jpg";
$uploaded_file = ilUtil::escapeShellArg($uploaded_file);
$show_file = ilUtil::escapeShellArg($show_file);
$thumb_file = ilUtil::escapeShellArg($thumb_file);
$xthumb_file = ilUtil::escapeShellArg($xthumb_file);
$xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
{
ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:".$show_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:".$thumb_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:".$xthumb_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:".$xxthumb_file);
}
else
{
ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200 -quality 100 JPEG:".$show_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100 -quality 100 JPEG:".$thumb_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75 -quality 100 JPEG:".$xthumb_file);
ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30 -quality 100 JPEG:".$xxthumb_file);
}
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

ilObjUserGUI::$gender

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

Referenced by editOldObject().

ilObjUserGUI::$ilCtrl

Definition at line 20 of file class.ilObjUserGUI.php.

Referenced by _goto(), editObject(), ilObjUserGUI(), and initForm().

ilObjUserGUI::$type

Definition at line 34 of file class.ilObjUserGUI.php.

ilObjUserGUI::$user_ref_id

Definition at line 41 of file class.ilObjUserGUI.php.


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