5include_once 
'Services/Mail/classes/class.ilMailOptions.php';
 
   51                        "method" => 
"getLogin",
 
   52                        "course_export_fix_value" => 1,
 
   53                        "group_export_fix_value" => 1,
 
   54                        "changeable_hide" => 
true,
 
   55                        "required_hide" => 
true,
 
   56                        "group" => 
"personal_data"),
 
   58                        "input" => 
"password",
 
   59                        "required_hide" => 
true,
 
   60                        "visib_reg_hide" => 
true,
 
   61                        'visib_lua_fix_value' => 0,
 
   62                        "course_export_hide" => 
true,
 
   63                        "export_hide" => 
false,
 
   64                        "group_export_hide" => 
true,
 
   66                        "group" => 
"personal_data"),
 
   71                        "method" => 
"getFirstname",
 
   72                        "required_fix_value" => 1,
 
   73                        "visib_reg_fix_value" => 1,
 
   74                        'visib_lua_fix_value' => 1,
 
   75                        "course_export_fix_value" => 1,
 
   76                        "group_export_fix_value" => 1,
 
   77                        "group" => 
"personal_data"),
 
   82                        "method" => 
"getLastname",
 
   83                        "required_fix_value" => 1,
 
   84                        "visib_reg_fix_value" => 1,
 
   85                        'visib_lua_fix_value' => 1,
 
   86                        "course_export_fix_value" => 1,
 
   87                        "group_export_fix_value" => 1,
 
   88                        "group" => 
"personal_data"),
 
   91                        "lang_var" => 
"person_title",
 
   94                        "method" => 
"getUTitle",
 
   95                        "group" => 
"personal_data"),
 
   97                        "input" => 
"birthday",
 
   98                        "lang_var" => 
"birthday",
 
  101                        "method" => 
"getBirthday",
 
  102                        "group" => 
"personal_data"),
 
  105                        "values" => array(
"n" => 
"salutation_n", 
"f" => 
"salutation_f", 
"m" => 
"salutation_m"),
 
  106                        "method" => 
"getGender",
 
  107                        "group" => 
"personal_data"),
 
  109                        "input" => 
"picture",
 
  110                        "required_hide" => 
true,
 
  111                        "visib_reg_hide" => 
true,
 
  112                        "course_export_hide" => 
true,
 
  113                        "group_export_hide" => 
true,
 
  114                        "lists_hide" => 
true,
 
  115                        "lang_var" => 
"personal_picture",
 
  116                        "group" => 
"personal_data"),
 
  119                        "changeable_hide" => 
true,
 
  120                        "required_hide" => 
true,
 
  121                        "visib_reg_hide" => 
true,
 
  122                        "export_hide" => 
true,
 
  123                        "course_export_hide" => 
true,
 
  124                        "group_export_hide" => 
true,
 
  125                        "lists_hide" => 
true,
 
  126                        "group" => 
"personal_data"),
 
  127        "interests_general" => array(
 
  128                        "input" => 
"multitext",
 
  131                        "method" => 
"getGeneralInterests",
 
  132                        "course_export_hide" => 
true,
 
  133                        "group_export_hide" => 
true,
 
  134                        "lists_hide" => 
true,
 
  135                        "group" => 
"interests"),
 
  136        "interests_help_offered" => array(
 
  137                        "input" => 
"multitext",
 
  140                        "method" => 
"getOfferingHelp",
 
  141                        "course_export_hide" => 
true,
 
  142                        "group_export_hide" => 
true,
 
  143                        "lists_hide" => 
true,
 
  144                        "group" => 
"interests"),
 
  145        "interests_help_looking" => array(
 
  146                        "input" => 
"multitext",
 
  149                        "method" => 
"getLookingForHelp",
 
  150                        "course_export_hide" => 
true,
 
  151                        "group_export_hide" => 
true,
 
  152                        "lists_hide" => 
true,
 
  153                        "group" => 
"interests"),
 
  154        "org_units" => array(
 
  155                        "input" => 
"noneditable",
 
  156                        "lang_var" => 
"objs_orgu",
 
  157                        "required_hide" => 
true,
 
  158                        "visib_reg_hide" => 
true,
 
  159                        "course_export_hide" => 
false,
 
  160                        "group_export_hide" => 
false,
 
  161                        "export_hide" => 
true,
 
  162                        "changeable_hide" => 
true,
 
  163                        "changeable_fix_value" => 0,
 
  164                        "changeable_lua_hide" => 
true,
 
  165                        "changeable_lua_fix_value" => 0,
 
  166                        "method" => 
"getOrgUnitsRepresentation",
 
  167                        "group" => 
"contact_data"),
 
  168        "institution" => array(
 
  172                        "method" => 
"getInstitution",
 
  173                        "group" => 
"contact_data"),
 
  174        "department" => array(
 
  178                        "method" => 
"getDepartment",
 
  179                        "group" => 
"contact_data"),
 
  184                        "method" => 
"getStreet",
 
  185                        "group" => 
"contact_data"),
 
  190                        "method" => 
"getZipcode",
 
  191                        "group" => 
"contact_data"),
 
  196                        "method" => 
"getCity",
 
  197                        "group" => 
"contact_data"),
 
  202                        "method" => 
"getCountry",
 
  203                        "group" => 
"contact_data"),
 
  204        "sel_country" => array(
 
  205                        "input" => 
"sel_country",
 
  206                        "method" => 
"getSelectedCountry",
 
  207                        "group" => 
"contact_data"),
 
  208        "phone_office" => array(
 
  212                        "method" => 
"getPhoneOffice",
 
  213                        "group" => 
"contact_data"),
 
  214        "phone_home" => array(
 
  218                        "method" => 
"getPhoneHome",
 
  219                        "group" => 
"contact_data"),
 
  220        "phone_mobile" => array(
 
  224                        "method" => 
"getPhoneMobile",
 
  225                        "group" => 
"contact_data"),
 
  230                        "method" => 
"getFax",
 
  231                        "group" => 
"contact_data"),
 
  236                        "method" => 
"getEmail",
 
  237                        "group" => 
"contact_data"),
 
  238        "second_email" => array(
 
  239                        "input" => 
"second_email",
 
  242                        "method" => 
"getSecondEmail",
 
  243                        "group" => 
"contact_data"),
 
  245                        "input" => 
"textarea",
 
  248                        "method" => 
"getHobby",
 
  249                        "lists_hide" => 
true,
 
  250                        "group" => 
"contact_data"),
 
  251        "referral_comment" => array(
 
  252                        "input" => 
"textarea",
 
  255                        "method" => 
"getComment",
 
  256                        "course_export_hide" => 
true,
 
  257                        "group_export_hide" => 
true,
 
  258                        "lists_hide" => 
true,
 
  259                        "group" => 
"contact_data"),
 
  260        "matriculation" => array(
 
  264                        "method" => 
"getMatriculation",
 
  267                        "input" => 
"language",
 
  268                        "method" => 
"getLanguage",
 
  269                        "required_hide" => 
true,
 
  270                        "visib_reg_hide" => 
true,
 
  271                        "course_export_hide" => 
true,
 
  272                        "group_export_hide" => 
true,
 
  273                        "group" => 
"settings"),
 
  274        "skin_style" => array(
 
  275                        "input" => 
"skinstyle",
 
  276                        "required_hide" => 
true,
 
  277                        "visib_reg_hide" => 
true,
 
  278                        "course_export_hide" => 
true,
 
  279                        "group_export_hide" => 
true,
 
  280                        "group" => 
"settings"),
 
  281        "hits_per_page" => array(
 
  282                        "input" => 
"hitsperpage",
 
  285                            10 => 10, 15 => 15, 20 => 20, 30 => 30, 40 => 40,
 
  286                            50 => 50, 100 => 100, 9999 => 9999),
 
  287                        "required_hide" => 
true,
 
  288                        "visib_reg_hide" => 
true,
 
  289                        "course_export_hide" => 
true,
 
  290                        "group_export_hide" => 
true,
 
  291                        "group" => 
"settings"),
 
  304        "hide_own_online_status" => array(
 
  305                        "input" => 
"selection",
 
  306                        "lang_var" => 
"awrn_user_show",
 
  307                        "required_hide" => 
true,
 
  308                        "visib_reg_hide" => 
true,
 
  309                        "course_export_hide" => 
true,
 
  310                        "group_export_hide" => 
true,
 
  311                        "group" => 
"settings",
 
  314                            "y" => 
"user_awrn_hide",
 
  315                            "n" => 
"user_awrn_show" 
  317        "bs_allow_to_contact_me" => array(
 
  318            "input" => 
"selection",
 
  319            "lang_var" => 
"buddy_allow_to_contact_me",
 
  320            "required_hide" => 
true,
 
  321            "visib_reg_hide" => 
true,
 
  322            "course_export_hide" => 
true,
 
  323            "group_export_hide" => 
true,
 
  324            "group" => 
"settings",
 
  327                "n" => 
"buddy_allow_to_contact_me_no",
 
  328                "y" => 
"buddy_allow_to_contact_me_yes" 
  331        "chat_osc_accept_msg" => array(
 
  332            "input" => 
"selection",
 
  333            "lang_var" => 
"chat_osc_accept_msg",
 
  334            "required_hide" => 
true,
 
  335            "visib_reg_hide" => 
true,
 
  336            "course_export_hide" => 
true,
 
  337            "group_export_hide" => 
true,
 
  338            "group" => 
"settings",
 
  341                "n" => 
"chat_osc_accepts_messages_no",
 
  342                "y" => 
"chat_osc_accepts_messages_yes" 
  345        "preferences" => array(
 
  346                        "visible_fix_value" => 1,
 
  347                        "changeable_fix_value" => 1,
 
  348                        "required_hide" => 
true,
 
  349                        "visib_reg_hide" => 
true,
 
  350                        "course_export_hide" => 
true,
 
  351                        "group_export_hide" => 
true,
 
  352                        "group" => 
"preferences"),
 
  353        "mail_incoming_mail" => array(
 
  354                        "input" => 
"selection",
 
  360                        "required_hide" => 
true,
 
  361                        "visib_reg_hide" => 
true,
 
  362                        "course_export_hide" => 
true,
 
  363                        "group_export_hide" => 
true,
 
  364                        "export_hide" => 
true,
 
  365                        "search_hide" => 
true,
 
  366                        "group" => 
"settings")
 
  379        $this->skip_groups = array();
 
  380        $this->skip_fields = array();
 
  384        $lng->loadLanguageModule(
"awrn");
 
  385        $lng->loadLanguageModule(
"buddysystem");
 
  394        foreach (self::$user_field as 
$f => $p) {
 
  396            if (in_array($p[
"group"], $this->skip_groups) ||
 
  397                in_array(
$f, $this->skip_fields)) {
 
  419            if (
$ilSetting->get(
'usr_settings_visib_lua_' . $field, 1)) {
 
  420                $fields[$field] = 
$info;
 
  421            } elseif (
$info[
'visib_lua_fix_value']) {
 
  422                $fields[$field] = 
$info;
 
  434        $this->skip_groups[] = $a_group;
 
  442        $this->skip_fields[] = $a_field;
 
  454        $rbacreview = 
$DIC[
'rbacreview'];
 
  455        $ilias = 
$DIC[
'ilias'];
 
  458        if (self::$mode == self::MODE_REGISTRATION) {
 
  459            include_once 
'Services/Registration/classes/class.ilRegistrationSettings.php';
 
  462            self::$user_field[
"username"][
"group"] = 
"login_data";
 
  463            self::$user_field[
"password"][
"group"] = 
"login_data";
 
  464            self::$user_field[
"language"][
"default"] = 
$lng->lang_key;
 
  467            $roles = self::$user_field[
"roles"];
 
  468            unset(self::$user_field[
"roles"]);
 
  469            self::$user_field[
"roles"] = $roles;
 
  470            self::$user_field[
"roles"][
"group"] = 
"settings";
 
  475        $custom_fields_done = 
false;
 
  476        foreach ($fields as 
$f => $p) {
 
  478            if (($p[
"group"] != $current_group) &&
 
  480                if (is_array($custom_fields) && !$custom_fields_done) {
 
  482                    if ($current_group == 
"other" || $p[
"group"] == 
"settings") {
 
  484                        if ($current_group != 
"other") {
 
  486                            $sh->setTitle(
$lng->txt(
"other"));
 
  487                            $a_form->addItem($sh);
 
  489                        foreach ($custom_fields as $custom_field) {
 
  490                            $a_form->addItem($custom_field);
 
  492                        $custom_fields_done = 
true;
 
  497                $sh->setTitle(
$lng->txt($p[
"group"]));
 
  498                $a_form->addItem($sh);
 
  499                $current_group = $p[
"group"];
 
  503            if (isset($p[
"method"])) {
 
  507            $lv = (isset($p[
"lang_var"]) && $p[
"lang_var"] != 
"")
 
  511            switch ($p[
"input"]) {
 
  516                            $val->setValue($a_user->getLogin());
 
  518                        $val->setMaxLength($p[
'maxlength']);
 
  520                        $val->setRequired(
true);
 
  525                            $val->setValue($a_user->getLogin());
 
  528                    $a_form->addItem($val);
 
  535                            $ti->setValue($a_user->$m());
 
  537                        $ti->setMaxLength($p[
"maxlength"]);
 
  538                        $ti->setSize($p[
"size"]);
 
  540                        if (!$ti->getRequired() || $ti->getValue()) {
 
  541                            $ti->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  543                        $a_form->addItem($ti);
 
  549                        include_once(
"./Services/Form/classes/class.ilCountrySelectInputGUI.php");
 
  552                            $ci->setValue($a_user->$m());
 
  555                        if (!$ci->getRequired() || $ci->getValue()) {
 
  556                            $ci->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  558                        $a_form->addItem($ci);
 
  565                        include_once 
"./Services/Calendar/classes/class.ilDateTime.php";
 
  567                        if ($a_user && strlen($a_user->$m())) {
 
  572                        if (!$bi->getRequired() || $date) {
 
  573                            $bi->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  575                        $a_form->addItem($bi);
 
  583                            $rg->setValue($a_user->$m());
 
  585                        foreach ($p[
"values"] as $k => $v) {
 
  590                        if (!$rg->getRequired() || $rg->getValue()) {
 
  591                            $rg->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  593                        $a_form->addItem($rg);
 
  600                        $ii->setDisabled(
$ilSetting->get(
"usr_settings_disable_upload"));
 
  602                        $upload = $a_form->getFileUpload(
"userfile");
 
  603                        if ($upload[
"name"]) {
 
  604                            $ii->setPending($upload[
"name"]);
 
  606                            $im = ilObjUser::_getPersonalPicturePath(
 
  614                                $ii->setAlt(
$lng->txt(
"personal_picture"));
 
  618                        $a_form->addItem(
$ii);
 
  623                    if (self::$mode == self::MODE_DESKTOP) {
 
  625                            $global_roles = $rbacreview->getGlobalRoles();
 
  626                            foreach ($global_roles as $role_id) {
 
  627                                if (in_array($role_id, $rbacreview->assignedRoles($a_user->getId()))) {
 
  628                                    $roleObj = $ilias->obj_factory->getInstanceByObjId($role_id);
 
  629                                    $role_names .= $roleObj->getTitle() . 
", ";
 
  634                            $dr->setValue(substr($role_names, 0, -2));
 
  635                            $a_form->addItem($dr);
 
  637                    } elseif (self::$mode == self::MODE_REGISTRATION) {
 
  638                        if ($registration_settings->roleSelectionEnabled()) {
 
  639                            include_once(
"./Services/AccessControl/classes/class.ilObjRole.php");
 
  642                                $options[$role[
"id"]] = $role[
"title"];
 
  650                                    if (!$ta->getRequired()) {
 
  651                                        $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  657                                    $ta->setValue(array_shift(array_keys(
$options)));
 
  659                                $a_form->addItem($ta);
 
  669                            $em->setValue($a_user->$m());
 
  672                        if (!$em->getRequired() || $em->getValue()) {
 
  673                            $em->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  675                        if (self::MODE_REGISTRATION == self::$mode) {
 
  676                            $em->setRetype(
true);
 
  678                        $a_form->addItem($em);
 
  685                            $em->setValue($a_user->$m());
 
  688                        if (!$em->getRequired() || $em->getValue()) {
 
  689                            $em->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  691                        if (self::MODE_REGISTRATION == self::$mode) {
 
  692                            $em->setRetype(
true);
 
  694                        $a_form->addItem($em);
 
  701                            $ta->setValue($a_user->$m());
 
  703                        $ta->setRows($p[
"rows"]);
 
  704                        $ta->setCols($p[
"cols"]);
 
  706                        if (!$ta->getRequired() || $ta->getValue()) {
 
  707                            $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  709                        $a_form->addItem($ta);
 
  714                    if (self::$mode == self::MODE_REGISTRATION) {
 
  715                        if (!$registration_settings->passwordGenerationEnabled()) {
 
  717                            $ta->setUseStripSlashes(
false);
 
  718                            $ta->setRequired(
true);
 
  723                            $ta->setValue(
$lng->txt(
"reg_passwd_via_mail"));
 
  725                        $a_form->addItem($ta);
 
  733                            $ta->setValue($a_user->$m());
 
  736                        $lng->loadLanguageModule(
"meta");
 
  737                        foreach (
$lng->getInstalledLanguages() as $lang_key) {
 
  743                        if (!$ta->getRequired() || $ta->getValue()) {
 
  744                            $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  746                        $a_form->addItem($ta);
 
  755                            $ti->setValue($a_user->$m());
 
  757                        $ti->setMaxLength($p[
"maxlength"]);
 
  758                        $ti->setSize($p[
"size"]);
 
  760                        if (!$ti->getRequired() || $ti->getValue()) {
 
  761                            $ti->setDisabled(
$ilSetting->get(
"usr_settings_disable_" . 
$f));
 
  763                        if ($this->ajax_href) {
 
  765                            $ti->setDataSource($this->ajax_href . 
"&f=" . 
$f);
 
  767                        $a_form->addItem($ti);
 
  773                        $ne->setValue($a_user->$m());
 
  774                        $a_form->addItem($ne);
 
  781        if (is_array($custom_fields) && !$custom_fields_done) {
 
  783            if ($current_group != 
"other") {
 
  785                $sh->setTitle(
$lng->txt(
"other"));
 
  786                $a_form->addItem($sh);
 
  788            foreach ($custom_fields as $custom_field) {
 
  789                $a_form->addItem($custom_field);
 
  796        $this->ajax_href = $a_href;
 
  808        if (self::$mode == self::MODE_DESKTOP) {
 
  809            return (
$ilSetting->get(
"usr_settings_hide_" . $a_setting) != 1);
 
  811            if (isset(self::$user_field[$a_setting][
"visib_reg_hide"]) && self::$user_field[$a_setting][
"visib_reg_hide"] === 
true) {
 
  814            return (
$ilSetting->get(
"usr_settings_visib_reg_" . $a_setting, 
"1") || 
$ilSetting->get(
"require_" . $a_setting, 
"0"));
 
  824        if (in_array(
$mode, array(self::MODE_DESKTOP, self::MODE_REGISTRATION))) {
 
  846        foreach (self::$user_field as $field => $definition) {
 
  848            if ($a_personal_data_only && 
$ilSetting->get(
"usr_settings_hide_" . $field)) {
 
  852            if (
$ilSetting->get(
"require_" . $field) && $definition[
"method"]) {
 
  853                $value = $a_user->{$definition[
"method"]}();
 
  861        if ($a_include_udf) {
 
  862            $user_defined_data = $a_user->getUserDefinedData();
 
  864            include_once 
'./Services/User/classes/class.ilUserDefinedFields.php';
 
  866            foreach ($user_defined_fields->getRequiredDefinitions() as $field => $definition) {
 
  868                if ($a_personal_data_only && !$definition[
"visible"]) {
 
  872                if (!$user_defined_data[
"f_" . $field]) {
 
  904        if (
$ilSetting->get(
'usr_settings_hide_' . $setting) == 1 ||
 
  905            $ilSetting->get(
'usr_settings_disable_' . $setting) == 1) {
 
  933        $ignorableSettings = array();
 
  935        foreach (self::$user_field as $field => $definition) {
 
  937            if (
'username' == $field ||
 
  938                'password' == $field) {
 
  947            if (self::isEditableByUser($field)) {
 
  948                $ignorableSettings[] = $field;
 
  952        return $ignorableSettings;
 
An exception for terminatinating execution or to throw for unit testing.
@classDescription Date and time handling
static getLogger($a_component_id)
Get component logger.
This class represents a non editable value in a property form.
static _lookupRegisterAllowed()
get all roles that are activated in user registration
This class represents an option in a radio group.
Class ilObjAuthSettingsGUI.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static _getInstance()
Get instance.
addStandardFieldsToForm($a_form, $a_user=null, array $custom_fields=null)
Add standard fields to form.
__construct()
Constructor.
getStandardFields()
Get standard user fields array.
getLocalUserAdministrationFields()
Get visible fields in local user administration.
skipField($a_field)
Skip a field.
skipGroup($a_group)
Skip a group.
static isEditableByUser($setting)
Returns whether a profile setting is editable by an user in the profile gui.
static userSettingVisible($a_setting)
Checks whether user setting is visible.
static getIgnorableRequiredSettings()
Returns an array of all ignorable profiel fields.
static isProfileIncomplete($a_user, $a_include_udf=true, $a_personal_data_only=true)
Check if all required personal data fields are set.
static getPasswordRequirementsInfo()
infotext for ilPasswordInputGUI setInfo()