Public Member Functions | |
ilObjUserGUI ($a_data, $a_id, $a_call_by_reference=false, $a_prepare_output=true) | |
Constructor public. | |
& | executeCommand () |
execute command | |
cancelObject () | |
getAdminTabs (&$tabs_gui) | |
admin and normal tabs are equal for roles | |
getTabs (&$tabs_gui) | |
get tabs | |
createObject () | |
display user create form | |
__checkUserDefinedRequiredFields () | |
__showUserDefinedFields () | |
editObject () | |
set admin tabs public | |
saveObject () | |
save user data public | |
updateObject () | |
Does input checks and updates a user account if everything is fine. | |
activeRoleSaveObject () | |
updates actives roles of user in session DEPRECATED | |
assignSaveObject () | |
assign users to role | |
roleassignmentObject () | |
display roleassignment panel | |
insertPublicProfile ($a_template_var, $a_template_block_name, $a_additional="") | |
display public profile | |
getPublicProfileObject ($a_additional="", $no_ilctrl=false) | |
getPublicProfile ($a_additional="", $no_ilctrl=false) | |
get public profile html code | |
deliverVCardObject () | |
deliver vcard information | |
__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 () | |
Data Fields | |
$ilCtrl | |
$gender | |
$type | |
$user_ref_id |
Definition at line 40 of file class.ilObjUserGUI.php.
ilObjUserGUI::__buildFilterSelect | ( | ) |
Definition at line 2386 of file class.ilObjUserGUI.php.
References $_SESSION, and 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); }
ilObjUserGUI::__checkUserDefinedRequiredFields | ( | ) |
Definition at line 644 of file class.ilObjUserGUI.php.
References $_POST, and ilUserDefinedFields::_getInstance().
Referenced by saveObject(), and updateObject().
{ include_once './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; }
ilObjUserGUI::__getDateSelect | ( | $ | a_type, | |
$ | a_varname, | |||
$ | a_selected | |||
) |
Definition at line 2239 of file class.ilObjUserGUI.php.
References formSelect().
Referenced by createObject(), and editObject().
{ 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); } }
& ilObjUserGUI::__initTableGUI | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 2356 of file class.ilObjUserGUI.php.
Referenced by __showRolesTable().
{ include_once "class.ilTableGUI.php"; return new ilTableGUI(0,false); }
ilObjUserGUI::__sendProfileMail | ( | ) |
Definition at line 2454 of file class.ilObjUserGUI.php.
References $_POST, and ilObjectGUI::$ilias.
Referenced by updateObject().
{ global $ilUser,$ilias; if($_POST['send_mail'] != 'y') { return ''; } // Choose language of user $usr_lang = new ilLanguage($this->object->getLanguage()); $usr_lang->loadLanguageModule('crs'); $usr_lang->loadLanguageModule('registration'); include_once "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['Fobject']['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["Fobject"]["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"); }
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 2363 of file class.ilObjUserGUI.php.
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); }
ilObjUserGUI::__showRolesTable | ( | $ | a_result_set, | |
$ | a_role_ids = NULL | |||
) |
Definition at line 2299 of file class.ilObjUserGUI.php.
References ilObjectGUI::$actions, $rbacsystem, $tbl, 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.gif")); 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.gif",$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; }
ilObjUserGUI::__showUserDefinedFields | ( | ) |
Definition at line 660 of file class.ilObjUserGUI.php.
References $_SESSION, ilUserDefinedFields::_getInstance(), ilUtil::formSelect(), and ilUtil::prepareFormOutput().
Referenced by createObject(), and editObject().
{ include_once './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; }
ilObjUserGUI::__toUnix | ( | $ | a_time_arr | ) |
Definition at line 2289 of file class.ilObjUserGUI.php.
Referenced by createObject(), editObject(), saveObject(), and updateObject().
{ 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"]); }
ilObjUserGUI::__unsetSessionVariables | ( | ) |
Definition at line 2381 of file class.ilObjUserGUI.php.
References $_SESSION.
{ unset($_SESSION["filtered_roles"]); }
ilObjUserGUI::activeRoleSaveObject | ( | ) |
updates actives roles of user in session DEPRECATED
public
Definition at line 1781 of file class.ilObjUserGUI.php.
References $_POST, $_SESSION, $q, $rbacreview, ilUtil::getUsersOnline(), and sendInfo().
{ global $rbacreview; $_POST["id"] = $_POST["id"] ? $_POST["id"] : array(); // at least one active global role must be assigned to user $global_roles_all = $rbacreview->getGlobalRoles(); $assigned_global_roles = array_intersect($_POST["id"],$global_roles_all); if (!count($_POST["id"]) or count($assigned_global_roles) < 1) { $this->ilias->raiseError($this->lng->txt("msg_min_one_active_role"),$this->ilias->error_obj->MESSAGE); } if ($this->object->getId() == $_SESSION["AccountId"]) { $_SESSION["RoleId"] = $_POST["id"]; } else { if (count($user_online = ilUtil::getUsersOnline($this->object->getId())) == 1) { //var_dump("<pre>",$user_online,$_POST["id"],"</pre>");exit; $roles = "RoleId|".serialize($_POST["id"]); $modified_data = preg_replace("/RoleId.*?;\}/",$roles,$user_online[$this->object->getId()]["data"]); $q = "UPDATE usr_session SET data='".$modified_data."' WHERE user_id = '".$this->object->getId()."'"; $this->ilias->db->query($q); } else { // user went offline - do nothing } } sendInfo($this->lng->txt("msg_roleassignment_active_changed").".<br/>".$this->lng->txt("msg_roleassignment_active_changed_comment"),true); $this->ctrl->redirect($this, "edit"); }
ilObjUserGUI::addAdminLocatorItems | ( | ) |
should be overwritten to add object specific items (repository items are preloaded)
Reimplemented from ilObjectGUI.
Definition at line 2408 of file class.ilObjUserGUI.php.
References $_GET, ilFrameTargetInfo::_getFrame(), and ilObject::_lookupObjId().
{ global $ilLocator; if ($_GET["admin_mode"] == "settings") // system settings { $ilLocator->addItem($this->lng->txt("administration"), $this->ctrl->getLinkTargetByClass("iladministrationgui", "frameset"), ilFrameTargetInfo::_getFrame("MainContent")); $ilLocator->addItem($this->lng->txt("obj_".ilObject::_lookupType( ilObject::_lookupObjId($_GET["ref_id"]))), $this->ctrl->getLinkTargetByClass("ilobjuserfoldergui", "view")); if ($_GET["obj_id"] > 0) { $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "view")); } } else // repository administration { // ? } }
ilObjUserGUI::assignSaveObject | ( | ) |
assign users to role
public
Definition at line 1827 of file class.ilObjUserGUI.php.
References $_GET, $_POST, $rbacadmin, $rbacreview, $rbacsystem, ilObjRole::_updateSessionRoles(), and sendInfo().
{ 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 sendInfo($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 "./classes/class.ilObjRole.php"; ilObjRole::_updateSessionRoles(array($this->object->getId())); // update object data entry (to update last modification date) $this->object->update(); sendInfo($this->lng->txt("msg_roleassignment_changed"),true); if(strtolower($_GET["baseClass"]) == 'iladministrationgui') { $this->ctrl->redirect($this,'roleassignment'); } else { $this->ctrl->redirectByClass('ilobjcategorygui','listUsers'); } }
ilObjUserGUI::cancelObject | ( | ) |
Definition at line 131 of file class.ilObjUserGUI.php.
References $_GET, and sendInfo().
{ session_unregister("saved_post"); sendInfo($this->lng->txt("msg_cancel"),true); 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'); } }
ilObjUserGUI::createObject | ( | ) |
display user create form
Reimplemented from ilObjectGUI.
Definition at line 193 of file class.ilObjUserGUI.php.
References $_SESSION, ilObjectGUI::$data, $gender, ilObjectGUI::$ilias, $key, $rbacreview, $rbacsystem, __getDateSelect(), __showUserDefinedFields(), __toUnix(), ilAuthUtils::_getActiveAuthModes(), ilObjRole::_getAssignUsersStatus(), ilAuthUtils::_getAuthModeName(), ilObjStyleSettings::_lookupActivatedStyle(), ilObjUserFolder::_lookupNewAccountMail(), ilUtil::formCheckbox(), formSelect(), ilObjectGUI::getTargetFrame(), ilObjectGUI::getTemplateFile(), and ilUtil::prepareFormOutput().
{ global $ilias, $rbacsystem, $rbacreview, $styleDefinition, $ilSetting; //load ILIAS settings $settings = $ilias->getAllSettings(); if (!$rbacsystem->checkAccess('create_user', $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); } 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,$_SESSION["RoleId"])) { include_once './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,$_SESSION["RoleId"])) { $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)) { $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; } } } $default_role = array_shift($keys); } $pre_selected_role = (isset($_SESSION["error_post_vars"]["Fobject"]["default_role"])) ? $_SESSION["error_post_vars"]["Fobject"]["default_role"] : $default_role; $roles = ilUtil::formSelect($pre_selected_role,"Fobject[default_role]",$rol,false,true); $data = array(); $data["fields"] = array(); $data["fields"]["login"] = ""; $data["fields"]["passwd"] = ""; $data["fields"]["passwd2"] = ""; $data["fields"]["title"] = ""; $data["fields"]["ext_account"] = ""; $data["fields"]["gender"] = ""; $data["fields"]["firstname"] = ""; $data["fields"]["lastname"] = ""; $data["fields"]["institution"] = ""; $data["fields"]["department"] = ""; $data["fields"]["street"] = ""; $data["fields"]["city"] = ""; $data["fields"]["zipcode"] = ""; $data["fields"]["country"] = ""; $data["fields"]["phone_office"] = ""; $data["fields"]["phone_home"] = ""; $data["fields"]["phone_mobile"] = ""; $data["fields"]["fax"] = ""; $data["fields"]["email"] = ""; $data["fields"]["hobby"] = ""; $data["fields"]["matriculation"] = ""; $data["fields"]["client_ip"] = ""; $data["fields"]["referral_comment"] = ""; $data["fields"]["create_date"] = ""; $data["fields"]["approve_date"] = ""; $data["fields"]["active"] = " checked=\"checked\""; $data["fields"]["default_role"] = $roles; $data["fields"]["auth_mode"] = ""; $this->getTemplateFile("edit","usr"); // fill presets 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; } // 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") { $this->tpl->setVariable(strtoupper($key), $val); } else { $this->tpl->setVariable(strtoupper($key), ilUtil::prepareFormOutput($val)); } if ($this->prepare_output) { $this->tpl->parseCurrentBlock(); } } // new account mail include_once 'classes/class.ilObjUserFolder.php'; $amail = ilObjUserFolder::_lookupNewAccountMail($this->lng->getDefaultLanguage()); if (trim($amail["body"]) != "" && trim($amail["subject"]) != "") { $this->tpl->setCurrentBlock("inform_user"); if (true) { $this->tpl->setVariable("SEND_MAIL", " checked=\"checked\""); } $this->tpl->setVariable("TXT_INFORM_USER_MAIL", $this->lng->txt("user_send_new_account_mail")); $this->tpl->parseCurrentBlock(); } $this->ctrl->setParameter($this,'new_type',$this->type); $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this)); $this->tpl->setVariable("TXT_HEADER", $this->lng->txt($this->type."_new")); $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel")); $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt($this->type."_add")); $this->tpl->setVariable("CMD_SUBMIT", "save"); $this->tpl->setVariable("TARGET", $this->getTargetFrame("save")); $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_PASSWD2", $this->lng->txt("retype_password")); $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("usr_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_OTHER",$this->lng->txt("user_profile_other")); if ($ilSetting->get("cas_active") || $ilSetting->get("soap_auth_active")) { $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", $_SESSION["error_post_vars"]["Fobject"]["ext_account"]); } $this->tpl->parseCurrentBlock(); } //$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")); // 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) { 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)); } } // 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\""); } } // auth mode selection include_once('classes/class.ilAuthUtils.php'); $active_auth_modes = ilAuthUtils::_getActiveAuthModes(); // 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"] : 'default'; 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->ilias->getSetting("language"); 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 // skin & style selection $templates = $styleDefinition->getAllTemplates(); //$this->ilias->getSkins(); // 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->ilias->ini->readVariable("layout","style");; $selected_skin = $this->ilias->ini->readVariable("layout","skin");; } include_once("classes/class.ilObjStyleSettings.php"); foreach ($templates as $template) { // get styles for skin //$this->ilias->getStyles($template["id"]); $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->ilias->getSetting("hits_per_page"); } foreach($hits_options as $hits_option) { $this->tpl->setCurrentBlock("selecthits"); if ($hits_option == $selected_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 // 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->ilias->getSetting("show_users_online"); } $users_online_options = array("y","associated","n"); 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 // time limit if (is_array($_SESSION["error_post_vars"])) { $time_limit_unlimited = $_SESSION["error_post_vars"]["time_limit"]["unlimited"]; } else { $time_limit_unlimited = 1; } $time_limit_from = $_SESSION["error_post_vars"]["time_limit"]["from"] ? $this->__toUnix($_SESSION["error_post_vars"]["time_limit"]["from"]) : time(); $time_limit_until = $_SESSION["error_post_vars"]["time_limit"]["until"] ? $this->__toUnix($_SESSION["error_post_vars"]["time_limit"]["until"]) : time(); $this->lng->loadLanguageModule('crs'); $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("TXT_TIME_LIMIT_CLOCK", $this->lng->txt("clock")); $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(); $this->__showUserDefinedFields(); }
ilObjUserGUI::deliverVCardObject | ( | ) |
deliver vcard information
Definition at line 2138 of file class.ilObjUserGUI.php.
References $key, $type, ilUtil::deliverData(), ilObjMediaObject::getMimeType(), and ilUtil::getWebspaceDir().
Referenced by insertPublicProfile().
{ require_once "./classes/class.ilvCard.php"; $vcard = new ilvCard(); if ($this->object->getPref("public_profile")!="y") { return; } $vcard->setName($this->object->getLastName(), $this->object->getFirstName(), "", $this->object->getUTitle()); $vcard->setNickname($this->object->getLogin()); $webspace_dir = ilUtil::getWebspaceDir("output"); $imagefile = $webspace_dir."/usr_images/".$this->object->getPref("profile_image"); if ($this->object->getPref("public_upload")=="y" && @is_file($imagefile)) { $fh = fopen($imagefile, "r"); if ($fh) { $image = fread($fh, filesize($imagefile)); fclose($fh); require_once "./content/classes/Media/class.ilObjMediaObject.php"; $mimetype = ilObjMediaObject::getMimeType($imagefile); if (preg_match("/^image/", $mimetype)) { $type = $mimetype; } $vcard->setPhoto($image, $type); } } $val_arr = array("getInstitution" => "institution", "getDepartment" => "department", "getStreet" => "street", "getZipcode" => "zip", "getCity" => "city", "getCountry" => "country", "getPhoneOffice" => "phone_office", "getPhoneHome" => "phone_home", "getPhoneMobile" => "phone_mobile", "getFax" => "fax", "getEmail" => "email", "getHobby" => "hobby", "getMatriculation" => "matriculation", "getClientIP" => "client_ip"); $org = array(); $adr = array(); foreach ($val_arr as $key => $value) { // if value "y" show information if ($this->object->getPref("public_".$value) == "y") { switch ($value) { case "institution": $org[0] = $this->object->$key(); break; case "department": $org[1] = $this->object->$key(); break; case "street": $adr[2] = $this->object->$key(); break; case "zip": $adr[5] = $this->object->$key(); break; case "city": $adr[3] = $this->object->$key(); break; case "country": $adr[6] = $this->object->$key(); break; case "phone_office": $vcard->setPhone($this->object->$key(), TEL_TYPE_WORK); break; case "phone_home": $vcard->setPhone($this->object->$key(), TEL_TYPE_HOME); break; case "phone_mobile": $vcard->setPhone($this->object->$key(), TEL_TYPE_CELL); break; case "fax": $vcard->setPhone($this->object->$key(), TEL_TYPE_FAX); break; case "email": $vcard->setEmail($this->object->$key()); break; case "hobby": $vcard->setNote($this->object->$key()); break; } } } if (count($org)) { $vcard->setOrganization(join(";", $org)); } if (count($adr)) { $vcard->setAddress($adr[0], $adr[1], $adr[2], $adr[3], $adr[4], $adr[5], $adr[6]); } ilUtil::deliverData(utf8_decode($vcard->buildVCard()), $vcard->getFilename(), $vcard->getMimetype()); }
ilObjUserGUI::editObject | ( | ) |
set admin tabs public
function setAdminTabs() { global $rbacsystem;
$tabs = array(); $this->tpl->addBlockFile("TABS", "tabs", "tpl.tabs.html");
if (isset($_POST["new_type"]) and $_POST["new_type"] == "usr") { $type = "usrf"; } else { $type = $this->type; } $d = $this->objDefinition->getProperties($type);
foreach ($d as $key => $row) { $tabs[] = array($row["lng"], $row["name"]); }
check for call_by_reference too to avoid hacking if (isset($_GET["obj_id"]) and $this->call_by_reference === false) { $object_link = "&obj_id=".$_GET["obj_id"]; }
foreach ($tabs as $row) { $i++;
if ($row[1] == $_GET["cmd"]) { $tabtype = "tabactive"; $tab = $tabtype; } else { $tabtype = "tabinactive"; $tab = "tab"; }
$show = true;
only check permissions for tabs if object is a permission object TODO: automize checks by using objects.xml definitions!! if (true) if ($this->call_by_reference) { only show tab when the corresponding permission is granted switch ($row[1]) { case 'view': if (!$rbacsystem->checkAccess('visible',$this->ref_id)) { $show = false; } break;
case 'edit': if (!$rbacsystem->checkAccess('write',$this->ref_id)) { $show = false; } break;
case 'perm': if (!$rbacsystem->checkAccess('edit_permission',$this->ref_id)) { $show = false; } break;
case 'trash': if (!$this->tree->getSavedNodeData($this->ref_id)) { $show = false; } break;
user object only case 'roleassignment': if (!$rbacsystem->checkAccess('edit_roleassignment',$this->ref_id)) { $show = false; } break;
role object only case 'userassignment': if (!$rbacsystem->checkAccess('edit_userassignment',$this->ref_id)) { $show = false; } break; } //switch }
if (!$show) { continue; }
$this->tpl->setCurrentBlock("tab"); $this->tpl->setVariable("TAB_TYPE", $tabtype); $this->tpl->setVariable("TAB_TYPE2", $tab); $this->tpl->setVariable("IMG_LEFT", ilUtil::getImagePath("eck_l.gif")); $this->tpl->setVariable("IMG_RIGHT", ilUtil::getImagePath("eck_r.gif")); $this->tpl->setVariable("TAB_LINK", $this->tab_target_script."?ref_id=".$_GET["ref_id"].$object_link."&cmd=".$row[1]); $this->tpl->setVariable("TAB_TEXT", $this->lng->txt($row[0])); $this->tpl->parseCurrentBlock(); } } display user edit form public
Reimplemented from ilObjectGUI.
Definition at line 833 of file class.ilObjUserGUI.php.
References $_SESSION, $counter, ilObjectGUI::$data, $gender, ilObjectGUI::$ilias, $key, $rbacadmin, $rbacreview, $rbacsystem, $role_id, __getDateSelect(), __showUserDefinedFields(), __toUnix(), ilAuthUtils::_getActiveAuthModes(), ilAuthUtils::_getAuthModeName(), ilObjStyleSettings::_lookupActivatedStyle(), ilUtil::formCheckbox(), ilObjectGUI::getTargetFrame(), ilObjectGUI::getTemplateFile(), ilUtil::getUsersOnline(), ilUtil::prepareFormOutput(), and ilUtil::switchColor().
Referenced by updateObject().
{ global $ilias, $rbacsystem, $rbacreview, $rbacadmin, $styleDefinition, $ilUser ,$ilSetting; //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"]["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"]["matriculation"] = $this->object->getMatriculation(); $data["fields"]["client_ip"] = $this->object->getClientIP(); $data["fields"]["referral_comment"] = $this->object->getComment(); $data["fields"]["create_date"] = $this->object->getCreateDate(); $data["fields"]["approve_date"] = $this->object->getApproveDate(); $data["fields"]["active"] = $this->object->getActive(); $data["fields"]["auth_mode"] = $this->object->getAuthMode(); $data["fields"]["ext_account"] = $this->object->getExternalAccount(); 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>"; } 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->getTemplateFile("edit","usr"); // 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"); } // 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; } // 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 if ($ilSetting->get("cas_active") || $ilSetting->get("soap_auth_active") || $ilSetting->get("shib_active")) { $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", $_SESSION["error_post_vars"]["Fobject"]["ext_account"]); } else { $this->tpl->setVariable("EXT_ACCOUNT", $data["fields"]["ext_account"]); } 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(); } 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", "\"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_PASSWD2", $this->lng->txt("retype_password")); $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_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('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("classes/class.ilObjStyleSettings.php"); 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 // inform user about changes option $this->tpl->setCurrentBlock("inform_user"); if (true) { $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(); if ($user_is_online) { // BEGIN TABLE ROLES $this->tpl->setCurrentBlock("TABLE_ROLES"); $counter = 0; foreach ($data["active_role"] as $role_id => $role) { ++$counter; $css_row = ilUtil::switchColor($counter,"tblrow2","tblrow1"); ($role["active"]) ? $checked = "checked=\"checked\"" : $checked = ""; $this->tpl->setVariable("ACTIVE_ROLE_CSS_ROW",$css_row); $this->tpl->setVariable("ROLECONTEXT",$role["context"]); $this->tpl->setVariable("ROLENAME",$role["title"]); $this->tpl->setVariable("CHECKBOX_ID", $role_id); $this->tpl->setVariable("CHECKED", $checked); $this->tpl->parseCurrentBlock(); } // END TABLE ROLES // BEGIN ACTIVE ROLES $this->tpl->setCurrentBlock("ACTIVE_ROLE"); $this->tpl->setVariable("ACTIVE_ROLE_FORMACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("TXT_ACTIVE_ROLES",$this->lng->txt("active_roles")); $this->tpl->setVariable("TXT_ASSIGN",$this->lng->txt("change_active_assignment")); $this->tpl->parseCurrentBlock(); // END ACTIVE ROLES } $this->__showUserDefinedFields(); }
& ilObjUserGUI::executeCommand | ( | ) |
execute command
Reimplemented from ilObjectGUI.
Definition at line 90 of file class.ilObjUserGUI.php.
References $cmd, $rbacsystem, and ilObjectGUI::prepareOutput().
{ global $rbacsystem; $next_class = $this->ctrl->getNextClass($this); $cmd = $this->ctrl->getCmd(); if ($cmd != "deliverVCard" && $cmd != "getPublicProfile") { $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 './ilinc/classes/class.ilObjiLincUserGUI.php'; $new_gui =& new ilObjiLincUserGUI($this->object,$this->usrf_ref_id); $this->ctrl->forwardCommand($new_gui); break; default: if($cmd == "" || $cmd == "view") { $cmd = "edit"; } $cmd .= "Object"; $return = $this->$cmd(); break; } return $return; }
ilObjUserGUI::getAdminTabs | ( | &$ | tabs_gui | ) |
admin and normal tabs are equal for roles
Reimplemented from ilObjectGUI.
Definition at line 152 of file class.ilObjUserGUI.php.
References getTabs().
{ $this->getTabs($tabs_gui); }
ilObjUserGUI::getPublicProfile | ( | $ | a_additional = "" , |
|
$ | no_ilctrl = false | |||
) |
get public profile html code
array | $a_additional additional name/value pairs for profile | |
boolean | $no_ctrl workaround for old insert public profile implementation |
Definition at line 2052 of file class.ilObjUserGUI.php.
References $_GET, $key, ilObjectGUI::$tpl, ilUtil::getImagePath(), and ilUtil::getWebspaceDir().
Referenced by getPublicProfileObject(), and insertPublicProfile().
{ $tpl = new ilTemplate("tpl.usr_public_profile.html", true, true); $tpl->setVariable("USR_PROFILE", $this->lng->txt("profile_of")." ".$this->object->getLogin()); $tpl->setVariable("ROWCOL1", "tblrow1"); $tpl->setVariable("ROWCOL2", "tblrow2"); // Check from Database if value // of public_profile = "y" show user infomation if ($this->object->getPref("public_profile") != "y") { return; } $tpl->setVariable("TXT_NAME", $this->lng->txt("name")); $tpl->setVariable("FIRSTNAME", $this->object->getFirstName()); $tpl->setVariable("LASTNAME", $this->object->getLastName()); $tpl->setCurrentBlock("vcard"); $tpl->setVariable("TXT_VCARD", $this->lng->txt("vcard")); $tpl->setVariable("TXT_DOWNLOAD_VCARD", $this->lng->txt("vcard_download")); if ($no_ilctrl) { // to do: get rid of this, use ilctrl $tpl->setVariable("HREF_VCARD", basename($_SERVER["PHP_SELF"]) . "?ref_id=". $_GET["ref_id"]."&user=" . $_GET["user"] . "&vcard=1"); } else { $this->ctrl->setParameter($this, "user", $this->object->getId()); $tpl->setVariable("HREF_VCARD", $this->ctrl->getLinkTarget($this, "deliverVCard")); } $tpl->setVariable("IMG_VCARD", ilUtil::getImagePath("vcard.png")); $webspace_dir = ilUtil::getWebspaceDir("user"); $check_dir = ilUtil::getWebspaceDir(); $imagefile = $webspace_dir."/usr_images/".$this->object->getPref("profile_image"); $check_file = $check_dir."/usr_images/".$this->object->getPref("profile_image"); if ($this->object->getPref("public_upload")=="y" && @is_file($check_file)) { //Getting the flexible path of image form ini file //$webspace_dir = ilUtil::getWebspaceDir("output"); $tpl->setCurrentBlock("image"); $tpl->setVariable("TXT_IMAGE",$this->lng->txt("image")); $tpl->setVariable("IMAGE_PATH", $webspace_dir."/usr_images/".$this->object->getPref("profile_image")."?dummy=".rand(1,999999)); $tpl->parseCurrentBlock(); } $val_arr = array("getInstitution" => "institution", "getDepartment" => "department", "getStreet" => "street", "getZipcode" => "zip", "getCity" => "city", "getCountry" => "country", "getPhoneOffice" => "phone_office", "getPhoneHome" => "phone_home", "getPhoneMobile" => "phone_mobile", "getFax" => "fax", "getEmail" => "email", "getHobby" => "hobby", "getMatriculation" => "matriculation", "getClientIP" => "client_ip"); foreach ($val_arr as $key => $value) { // if value "y" show information if ($this->object->getPref("public_".$value) == "y") { $tpl->setCurrentBlock("profile_data"); $tpl->setVariable("TXT_DATA", $this->lng->txt($value)); $tpl->setVariable("DATA", $this->object->$key()); $tpl->parseCurrentBlock(); } } if (is_array($a_additional)) { foreach($a_additional as $key => $val) { $tpl->setCurrentBlock("profile_data"); $tpl->setVariable("TXT_DATA", $key); $tpl->setVariable("DATA", $val); $tpl->parseCurrentBlock(); } } return $tpl->get(); }
ilObjUserGUI::getPublicProfileObject | ( | $ | a_additional = "" , |
|
$ | no_ilctrl = false | |||
) |
Definition at line 2040 of file class.ilObjUserGUI.php.
References getPublicProfile().
{ return $this->getPublicProfile($a_additional, $no_ilctrl); }
ilObjUserGUI::getTabs | ( | &$ | tabs_gui | ) |
get tabs
Reimplemented from ilObjectGUI.
Definition at line 160 of file class.ilObjUserGUI.php.
References $rbacsystem, and ilObjUserTracking::_enabledLearningProgress().
Referenced by getAdminTabs().
{ global $rbacsystem; $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::_enabledLearningProgress()) { $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')); } }
ilObjUserGUI::hitsperpageObject | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 2398 of file class.ilObjUserGUI.php.
References roleassignmentObject().
{ parent::hitsperpageObject(); $this->roleassignmentObject(); }
ilObjUserGUI::ilObjUserGUI | ( | $ | a_data, | |
$ | a_id, | |||
$ | a_call_by_reference = false , |
|||
$ | a_prepare_output = true | |||
) |
Constructor public.
Definition at line 69 of file class.ilObjUserGUI.php.
References $ilCtrl, and ilObjectGUI::ilObjectGUI().
{ global $ilCtrl; 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,'obj_id'); // for gender selection. don't change this // maybe deprecated $this->gender = array( 'm' => "salutation_m", 'f' => "salutation_f" ); }
ilObjUserGUI::insertPublicProfile | ( | $ | a_template_var, | |
$ | a_template_block_name, | |||
$ | a_additional = "" | |||
) |
display public profile
DEPRECATED! Use getPublicProfile and deliverVCard via ilCtrl instead!
string | $a_template_var template variable where profile should be inserted | |
string | $a_template_block_name name of profile template block public |
Definition at line 2026 of file class.ilObjUserGUI.php.
References $_GET, deliverVCardObject(), and getPublicProfile().
{ if ($_GET["vcard"] == 1) { $this->deliverVCardObject(); } else { $this->tpl->setVariable($a_template_var, $this->getPublicProfile($a_additional, true)); } }
ilObjUserGUI::roleassignmentObject | ( | ) |
display roleassignment panel
public
Definition at line 1895 of file class.ilObjUserGUI.php.
References $_POST, $_SESSION, $counter, $rbacreview, $rbacsystem, __buildFilterSelect(), __showRolesTable(), and ilObjRole::_getTranslation().
Referenced by hitsperpageObject().
{ global $rbacreview,$rbacsystem; 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'); if(true) { $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(); } // now get roles depending on filter settings $role_list = $rbacreview->getRolesByFilter($_SESSION["filtered_roles"],$this->object->getId()); $assigned_roles = $rbacreview->assignedRoles($this->object->getId()); $counter = 0; include_once ('class.ilObjRole.php'); 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,$_SESSION["RoleId"]) and $role["obj_id"] == SYSTEM_ROLE_ID)) { $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"])." (#".$parent_node["obj_id"].")"; } $role_ids[$counter] = $role["obj_id"]; $result_set[$counter][] = 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][] = "<a href=\"".$this->ctrl->getLinkTargetByClass("ilobjrolegui", "perm")."\">".ilObjRole::_getTranslation($role["title"])."</a>"; $result_set[$counter][] = $role["description"]; $result_set[$counter][] = $path; ++$counter; } return $this->__showRolesTable($result_set,$role_ids); }
ilObjUserGUI::saveObject | ( | ) |
save user data public
Reimplemented from ilObjectGUI.
Definition at line 1371 of file class.ilObjUserGUI.php.
References $_GET, $_POST, ilObjectGUI::$ilias, $key, $rbacadmin, $rbacsystem, __checkUserDefinedRequiredFields(), __toUnix(), ilUtil::is_email(), ilUtil::isLogin(), ilUtil::isPassword(), loginExists(), and sendInfo().
{ global $ilias, $rbacsystem, $rbacadmin, $ilSetting; //load ILIAS settings $settings = $ilias->getAllSettings(); // User folder if (!$rbacsystem->checkAccess('create_user', $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); } // check dynamically required fields foreach ($settings as $key => $val) { if (substr($key,0,8) == "require_") { $require_keys[] = substr($key,8); } } foreach ($require_keys as $key => $val) { 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); } } } if(!$this->__checkUserDefinedRequiredFields()) { $this->ilias->raiseError($this->lng->txt("fill_out_all_required_fields"),$this->ilias->error_obj->MESSAGE); } // validate login if (!ilUtil::isLogin($_POST["Fobject"]["login"])) { $this->ilias->raiseError($this->lng->txt("login_invalid"),$this->ilias->error_obj->MESSAGE); } // check loginname if (loginExists($_POST["Fobject"]["login"])) { $this->ilias->raiseError($this->lng->txt("login_exists"),$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); } // The password type is not passed in the post data. Therefore we // append it here manually. require_once "class.ilObjUser.php"; $_POST["Fobject"]["passwd_type"] = IL_PASSWD_PLAIN; // validate email if (!ilUtil::is_email($_POST["Fobject"]["email"])) { $this->ilias->raiseError($this->lng->txt("email_not_valid"),$this->ilias->error_obj->MESSAGE); } // validate time limit if ($_POST["time_limit"]["unlimited"] != 1 and ($this->__toUnix($_POST["time_limit"]["until"]) < $this->__toUnix($_POST["time_limit"]["from"]))) { $this->ilias->raiseError($this->lng->txt("time_limit_not_valid"),$this->ilias->error_obj->MESSAGE); } if(!$this->ilias->account->getTimeLimitUnlimited()) { if($this->__toUnix($_POST["time_limit"]["from"]) < $this->ilias->account->getTimeLimitFrom() or $this->__toUnix($_POST["time_limit"]["until"])> $this->ilias->account->getTimeLimitUntil() or $_POST['time_limit']['unlimited']) { $this->ilias->raiseError($this->lng->txt("time_limit_not_within_owners"),$this->ilias->error_obj->MESSAGE); } } // TODO: check if login or passwd already exists // TODO: check length of login and passwd // checks passed. save user $userObj = new ilObjUser(); $userObj->assignData($_POST["Fobject"]); $userObj->setTitle($userObj->getFullname()); $userObj->setDescription($userObj->getEmail()); $userObj->setTimeLimitOwner($this->object->getRefId()); $userObj->setTimeLimitUnlimited($_POST["time_limit"]["unlimited"]); $userObj->setTimeLimitFrom($this->__toUnix($_POST["time_limit"]["from"])); $userObj->setTimeLimitUntil($this->__toUnix($_POST["time_limit"]["until"])); $userObj->setUserDefinedData($_POST['udf']); $userObj->create(); if ($ilSetting->get("cas_active") || $ilSetting->get("soap_auth_active")) { $userObj->setExternalAccount($_POST["Fobject"]["ext_account"]); } //$user->setId($userObj->getId()); //insert user data in table user_data $userObj->saveAsNew(); // setup user preferences $userObj->setLanguage($_POST["Fobject"]["language"]); //set user skin and style $sknst = explode(":", $_POST["Fobject"]["skin_style"]); if ($userObj->getPref("style") != $sknst[1] || $userObj->getPref("skin") != $sknst[0]) { $userObj->setPref("skin", $sknst[0]); $userObj->setPref("style", $sknst[1]); } // set hits per pages $userObj->setPref("hits_per_page", $_POST["Fobject"]["hits_per_page"]); // set show users online $userObj->setPref("show_users_online", $_POST["Fobject"]["show_users_online"]); $userObj->writePrefs(); //set role entries $rbacadmin->assignUser($_POST["Fobject"]["default_role"],$userObj->getId(),true); $msg = $this->lng->txt("user_added"); // send new account mail if ($_POST["send_mail"] != "") { include_once("classes/class.ilAccountMail.php"); $acc_mail = new ilAccountMail(); $acc_mail->setUserPassword($_POST["Fobject"]["passwd"]); $acc_mail->setUser($userObj); if ($acc_mail->send()) { $msg = $msg."<br />".$this->lng->txt("mail_sent"); } else { $msg = $msg."<br />".$this->lng->txt("mail_not_sent"); } } sendInfo($msg, true); if(strtolower($_GET["baseClass"]) == 'iladministrationgui') { $this->ctrl->redirectByClass("ilobjuserfoldergui", "view"); } else { $this->ctrl->redirectByClass('ilobjcategorygui','listUsers'); } }
ilObjUserGUI::showUpperIcon | ( | ) |
Reimplemented from ilObjectGUI.
Definition at line 2434 of file class.ilObjUserGUI.php.
References $_GET, ilObjectGUI::$objDefinition, ilObjectGUI::$tpl, and ilObjectGUI::$tree.
{ global $tree, $tpl, $objDefinition; if (strtolower($_GET["baseClass"]) == "iladministrationgui") { $tpl->setUpperIcon( $this->ctrl->getLinkTargetByClass("ilobjuserfoldergui", "view")); } else { if ($this->object->getRefId() != ROOT_FOLDER_ID && $this->object->getRefId() != SYSTEM_FOLDER_ID) { $par_id = $tree->getParentId($this->usrf_ref_id); $tpl->setUpperIcon("repository.php?ref_id=".$par_id); } } }
ilObjUserGUI::updateObject | ( | ) |
Does input checks and updates a user account if everything is fine.
public
Reimplemented from ilObjectGUI.
Definition at line 1548 of file class.ilObjUserGUI.php.
References $_GET, $_POST, $_SESSION, ilObjectGUI::$ilias, $key, $rbacadmin, $rbacsystem, __checkUserDefinedRequiredFields(), __sendProfileMail(), __toUnix(), ilObjUser::_checkExternalAuthAccount(), ilAuthUtils::_getAuthModeName(), editObject(), ilUtil::is_email(), ilUtil::isLogin(), ilUtil::isPassword(), loginExists(), sendInfo(), and ilUtil::stripSlashes().
{ global $ilias, $rbacsystem, $rbacadmin,$ilUser; //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); } // do not validate required fields, login & passwd if auth mode ist not 'local' if ($this->object->getAuthMode(true) == AUTH_LOCAL || $this->object->getAuthMode(true) == AUTH_CAS || $this->object->getAuthMode(true) == AUTH_SOAP) { // check dynamically required fields foreach ($settings as $key => $val) { if (substr($key,0,8) == "require_") { $require_keys[] = substr($key,8); } } 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); } } } } if(!$this->__checkUserDefinedRequiredFields()) { $this->ilias->raiseError($this->lng->txt("fill_out_all_required_fields"),$this->ilias->error_obj->MESSAGE); } // validate login (only if changed) 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 (loginExists($_POST["Fobject"]["login"],$this->id)) { $this->ilias->raiseError($this->lng->txt("login_exists"),$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); } // check external account if ($_POST["Fobject"]["ext_account"] != "") { $am = $_POST["Fobject"]["auth_mode"]; if ($am == "default") { $am = ilAuthUtils::_getAuthModeName($this->ilias->getSetting('auth_mode')); } $elogin = ilObjUser::_checkExternalAuthAccount($am, $_POST["Fobject"]["ext_account"]); if ($elogin != "" && $elogin != $this->object->getLogin()) { $this->ilias->raiseError( sprintf($this->lng->txt("err_auth_ext_user_exists"), $_POST["Fobject"]["ext_account"], $am, $elogin), $this->ilias->error_obj->MESSAGE); } } if ($_POST["Fobject"]["passwd"] != "********") { $this->object->resetPassword($_POST["Fobject"]["passwd"],$_POST["Fobject"]["passwd2"]); } } // The password type is not passed with the post data. Therefore we // append it here manually. include_once ('classes/class.ilObjUser.php'); $_POST["Fobject"]["passwd_type"] = IL_PASSWD_PLAIN; // validate email if (!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; sendInfo($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(); } // don't save login & passwd if auth mode is not 'local' // cas users can optionally login with local account if ($this->object->getAuthMode(true) != AUTH_LOCAL && $this->object->getAuthMode(true) != AUTH_CAS && $this->object->getAuthMode(true) != AUTH_SOAP) { $_POST['Fobject']['login'] = $this->object->getLogin(); $_POST['Fobject']['passwd'] = "********"; } $this->object->assignData($_POST["Fobject"]); $this->object->setUserDefinedData($_POST['udf']); if ($this->object->getAuthMode(true) == AUTH_LOCAL || $this->object->getAuthMode(true) == AUTH_CAS || $this->object->getAuthMode(true) == AUTH_SOAP) { $this->object->updateLogin($_POST["Fobject"]["login"]); } $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"]); $this->update = $this->object->update(); //$rbacadmin->updateDefaultRole($_POST["Fobject"]["default_role"], $this->object->getId()); $mail_message = $this->__sendProfileMail(); $msg = $this->lng->txt('saved_successfully').$mail_message; // feedback sendInfo($msg,true); if (strtolower($_GET["baseClass"]) == 'iladministrationgui') { $this->ctrl->redirectByClass("ilobjuserfoldergui", "view"); } else { $this->ctrl->redirectByClass('ilobjcategorygui','listUsers'); } }
ilObjUserGUI::$gender |
Definition at line 49 of file class.ilObjUserGUI.php.
Referenced by createObject(), and editObject().
ilObjUserGUI::$ilCtrl |
Definition at line 42 of file class.ilObjUserGUI.php.
Referenced by ilObjUserGUI().
ilObjUserGUI::$type |
Definition at line 56 of file class.ilObjUserGUI.php.
Referenced by deliverVCardObject().
ilObjUserGUI::$user_ref_id |
Definition at line 63 of file class.ilObjUserGUI.php.