function saveGlobalUserSettingsObject($action = "") { include_once 'Services/Search/classes/class.ilUserSearchOptions.php'; include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; global $ilias, $ilSetting; // see ilUserFieldSettingsTableGUI include_once "./Services/User/classes/class.ilUserProfile.php"; $up = new ilUserProfile(); $up->skipField("username"); $field_properties = $up->getStandardFields(); $profile_fields = array_keys($field_properties); $valid = true; foreach ($profile_fields as $field) { if ($_POST["chb"]["required_" . $field] && !(int) $_POST['chb']['visib_reg_' . $field]) { $valid = false; break; } } if (!$valid) { global $lng; ilUtil::sendFailure($lng->txt('invalid_visible_required_options_selected')); $this->confirm_change = 1; $this->settingsObject(); return; } // For the following fields, the required state can not be changed $fixed_required_fields = array("firstname" => 1, "lastname" => 1, "upload" => 0, "password" => 0, "language" => 0, "skin_style" => 0, "hits_per_page" => 0, "show_users_online" => 0, "hide_own_online_status" => 0); // check if a course export state of any field has been added $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledCourseExport() == true && $privacy->courseConfirmationRequired() == true && $action != "save") { foreach ($profile_fields as $field) { if (!$ilias->getSetting("usr_settings_course_export_" . $field) && $_POST["chb"]["course_export_" . $field] == "1") { #ilUtil::sendQuestion($this->lng->txt('confirm_message_course_export')); #$this->confirm_change = 1; #$this->settingsObject(); #return; } } } // Reset user confirmation if ($action == 'save') { include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); } foreach ($profile_fields as $field) { // Enable disable searchable if (ilUserSearchOptions::_isSearchable($field)) { ilUserSearchOptions::_saveStatus($field, (bool) $_POST['chb']['searchable_' . $field]); } if (!$_POST["chb"]["visible_" . $field] && !$field_properties[$field]["visible_hide"]) { $ilias->setSetting("usr_settings_hide_" . $field, "1"); } else { $ilias->deleteSetting("usr_settings_hide_" . $field); } if (!$_POST["chb"]["changeable_" . $field] && !$field_properties[$field]["changeable_hide"]) { $ilias->setSetting("usr_settings_disable_" . $field, "1"); } else { $ilias->deleteSetting("usr_settings_disable_" . $field); } // registration visible if ((int) $_POST['chb']['visib_reg_' . $field] && !$field_properties[$field]["visib_reg_hide"]) { $ilSetting->set('usr_settings_visib_reg_' . $field, '1'); } else { $ilSetting->set('usr_settings_visib_reg_' . $field, '0'); } if ((int) $_POST['chb']['visib_lua_' . $field]) { $ilSetting->set('usr_settings_visib_lua_' . $field, '1'); } else { $ilSetting->set('usr_settings_visib_lua_' . $field, '0'); } if ((int) $_POST['chb']['changeable_lua_' . $field]) { $ilSetting->set('usr_settings_changeable_lua_' . $field, '1'); } else { $ilSetting->set('usr_settings_changeable_lua_' . $field, '0'); } if ($_POST["chb"]["export_" . $field] && !$field_properties[$field]["export_hide"]) { $ilias->setSetting("usr_settings_export_" . $field, "1"); } else { $ilias->deleteSetting("usr_settings_export_" . $field); } // Course export/visibility if ($_POST["chb"]["course_export_" . $field] && !$field_properties[$field]["course_export_hide"]) { $ilias->setSetting("usr_settings_course_export_" . $field, "1"); } else { $ilias->deleteSetting("usr_settings_course_export_" . $field); } // Group export/visibility if ($_POST["chb"]["group_export_" . $field] && !$field_properties[$field]["group_export_hide"]) { $ilias->setSetting("usr_settings_group_export_" . $field, "1"); } else { $ilias->deleteSetting("usr_settings_group_export_" . $field); } $is_fixed = array_key_exists($field, $fixed_required_fields); if ($is_fixed && $fixed_required_fields[$field] || !$is_fixed && $_POST["chb"]["required_" . $field]) { $ilias->setSetting("require_" . $field, "1"); } else { $ilias->deleteSetting("require_" . $field); } } if ($_POST["select"]["default_hits_per_page"]) { $ilias->setSetting("hits_per_page", $_POST["select"]["default_hits_per_page"]); } if ($_POST["select"]["default_show_users_online"]) { $ilias->setSetting("show_users_online", $_POST["select"]["default_show_users_online"]); } if ($_POST["chb"]["export_preferences"]) { $ilias->setSetting("usr_settings_export_preferences", $_POST["chb"]["export_preferences"]); } else { $ilias->deleteSetting("usr_settings_export_preferences"); } $ilias->setSetting('mail_incoming_mail', (int) $_POST['select']['default_mail_incoming_mail']); ilUtil::sendSuccess($this->lng->txt("usr_settings_saved")); $this->settingsObject(); }
/** * Save privacy settings * * @access public * */ public function save_privacy() { global $ilErr, $ilAccess, $ilSetting; if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) { $ilErr->raiseError($this->lng->txt('no_permission'), $ilErr->WARNING); } if ((int) $_POST['rbac_log_age'] > 24) { $_POST['rbac_log_age'] = 24; } else { if ((int) $_POST['rbac_log_age'] < 1) { $_POST['rbac_log_age'] = 1; } } $_POST['profile_protection'] = isset($_POST['profile_protection']) ? $_POST['profile_protection'] : array(); $privacy = ilPrivacySettings::_getInstance(); $privacy->enableCourseExport((int) in_array('export_course', $_POST['profile_protection'])); $privacy->enableGroupExport((int) in_array('export_group', $_POST['profile_protection'])); $privacy->setCourseConfirmationRequired((int) in_array('export_confirm_course', $_POST['profile_protection'])); $privacy->setGroupConfirmationRequired((int) in_array('export_confirm_group', $_POST['profile_protection'])); $privacy->showGroupAccessTimes((int) in_array('grp_access_times', $_POST['profile_protection'])); $privacy->showCourseAccessTimes((int) in_array('crs_access_times', $_POST['profile_protection'])); $privacy->enableForaStatistics((int) $_POST['fora_statistics']); $privacy->enableAnonymousFora((int) $_POST['anonymous_fora']); $privacy->enableRbacLog((int) $_POST['rbac_log']); $privacy->setRbacLogAge((int) $_POST['rbac_log_age']); $privacy->enableSahsProtocolData((int) $_POST['enable_sahs_pd']); // validate settings $code = $privacy->validate(); // if error code != 0, display error and do not save if ($code != 0) { $msg = $this->getErrorMessage($code); ilUtil::sendFailure($msg); } else { $privacy->save(); include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); ilUtil::sendSuccess($this->lng->txt('settings_saved')); } $this->showPrivacy(); }
function update() { global $lng, $ilCtrl; $user_field_definitions = ilUserDefinedFields::_getInstance(); $user_field_definitions->setFieldType($this->field_definition["field_type"]); $access = array(); $form = $this->initForm("edit"); if ($this->validateForm($form, $user_field_definitions, $access) && $this->field_id) { // field values are set in validateForm()... $user_field_definitions->setFieldName($form->getInput("name")); $user_field_definitions->enableVisible($access['visible']); $user_field_definitions->enableVisibleRegistration((int) $access['visib_reg']); $user_field_definitions->enableVisibleLocalUserAdministration($access['visib_lua']); $user_field_definitions->enableCourseExport($access['course_export']); $user_field_definitions->enableGroupExport($access['group_export']); $user_field_definitions->enableChangeable($access['changeable']); $user_field_definitions->enableChangeableLocalUserAdministration($access['changeable_lua']); $user_field_definitions->enableRequired($access['required']); $user_field_definitions->enableExport($access['export']); $user_field_definitions->enableSearchable($access['searchable']); $user_field_definitions->enableCertificate($access['certificate']); $user_field_definitions->update($this->field_id); if ($access['course_export']) { include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); } ilUtil::sendSuccess($lng->txt('udf_added_field'), true); $ilCtrl->redirect($this); } $form->setValuesByPost(); $this->edit($form); }
function update() { global $lng, $ilCtrl; $user_field_definitions = ilUserDefinedFields::_getInstance(); $user_field_definitions->setFieldType($this->field_definition["field_type"]); // gather old select options $old_options = null; if ($this->field_id) { $old_values = $user_field_definitions->getDefinition($this->field_id); if ($old_values["field_type"] == UDF_TYPE_SELECT) { $old_options = $old_values["field_values"]; } $perms = $this->permissions->hasPermissions(ilUDFPermissionHelper::CONTEXT_FIELD, $this->field_id, array(array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_PROPERTY, ilUDFPermissionHelper::SUBACTION_FIELD_TITLE), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_PROPERTY, ilUDFPermissionHelper::SUBACTION_FIELD_PROPERTIES), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_VISIBLE_PERSONAL), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_VISIBLE_REGISTRATION), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_VISIBLE_LOCAL), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_VISIBLE_COURSES), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_VISIBLE_GROUPS), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_CHANGEABLE_PERSONAL), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_CHANGEABLE_LOCAL), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_REQUIRED), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_EXPORT), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_SEARCHABLE), array(ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS, ilUDFPermissionHelper::SUBACTION_FIELD_ACCESS_CERTIFICATE))); } $access = array(); $form = $this->initForm("edit"); if ($this->validateForm($form, $user_field_definitions, $access, $perms) && $this->field_id) { // field values are set in validateForm()... if (!$perms || $perms[ilUDFPermissionHelper::ACTION_FIELD_EDIT_PROPERTY][ilUDFPermissionHelper::SUBACTION_FIELD_PROPERTIES]) { // diff old select options against new to handle deleted values properly if (is_array($old_options)) { foreach ($old_options as $old_option) { if (!in_array($old_option, $user_field_definitions->getFieldValues())) { ilUserDefinedData::deleteFieldValue($this->field_id, $old_option); } } } } else { if (is_array($old_options)) { $user_field_definitions->setFieldValues($old_options); } } if (!$perms || $perms[ilUDFPermissionHelper::ACTION_FIELD_EDIT_PROPERTY][ilUDFPermissionHelper::SUBACTION_FIELD_TITLE]) { $user_field_definitions->setFieldName($form->getInput("name")); } else { $user_field_definitions->setFieldName($this->field_definition["field_name"]); } $user_field_definitions->enableVisible($access['visible']); $user_field_definitions->enableVisibleRegistration((int) $access['visib_reg']); $user_field_definitions->enableVisibleLocalUserAdministration($access['visib_lua']); $user_field_definitions->enableCourseExport($access['course_export']); $user_field_definitions->enableGroupExport($access['group_export']); $user_field_definitions->enableChangeable($access['changeable']); $user_field_definitions->enableChangeableLocalUserAdministration($access['changeable_lua']); $user_field_definitions->enableRequired($access['required']); $user_field_definitions->enableExport($access['export']); $user_field_definitions->enableSearchable($access['searchable']); $user_field_definitions->enableCertificate($access['certificate']); $user_field_definitions->update($this->field_id); if ($access['course_export']) { include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); } ilUtil::sendSuccess($lng->txt('udf_added_field'), true); $ilCtrl->redirect($this); } $form->setValuesByPost(); $this->edit($form); }
/** * Save privacy settings * * @access public * */ public function save_privacy() { global $ilErr, $ilAccess, $ilSetting; if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) { $ilErr->raiseError($this->lng->txt('no_permission'), $ilErr->WARNING); } if ((int) $_POST['rbac_log_age'] > 24) { $_POST['rbac_log_age'] = 24; } else { if ((int) $_POST['rbac_log_age'] < 1) { $_POST['rbac_log_age'] = 1; } } $_POST['profile_protection'] = isset($_POST['profile_protection']) ? $_POST['profile_protection'] : array(); $privacy = ilPrivacySettings::_getInstance(); // to determine if agreements need to be reset - see below $old_settings = array('export_course' => $privacy->enabledCourseExport(), 'export_group' => $privacy->enabledGroupExport(), 'export_confirm_course' => $privacy->courseConfirmationRequired(), 'export_confirm_group' => $privacy->groupConfirmationRequired(), 'crs_access_times' => $privacy->enabledCourseAccessTimes(), 'grp_access_times' => $privacy->enabledGroupAccessTimes()); $privacy->enableCourseExport((int) in_array('export_course', $_POST['profile_protection'])); $privacy->enableGroupExport((int) in_array('export_group', $_POST['profile_protection'])); $privacy->setCourseConfirmationRequired((int) in_array('export_confirm_course', $_POST['profile_protection'])); $privacy->setGroupConfirmationRequired((int) in_array('export_confirm_group', $_POST['profile_protection'])); $privacy->showGroupAccessTimes((int) in_array('grp_access_times', $_POST['profile_protection'])); $privacy->showCourseAccessTimes((int) in_array('crs_access_times', $_POST['profile_protection'])); // validate settings $code = $privacy->validate(); // if error code != 0, display error and do not save if ($code != 0) { $msg = $this->getErrorMessage($code); ilUtil::sendFailure($msg); } else { $privacy->save(); // reset agreements? $do_reset = false; if (!$old_settings['export_course'] && $privacy->enabledCourseExport()) { $do_reset = true; } if (!$do_reset && !$old_settings['export_group'] && $privacy->enabledGroupExport()) { $do_reset = true; } if (!$do_reset && !$old_settings['export_confirm_course'] && $privacy->courseConfirmationRequired()) { $do_reset = true; } if (!$do_reset && !$old_settings['export_confirm_group'] && $privacy->groupConfirmationRequired()) { $do_reset = true; } if (!$do_reset && !$old_settings['crs_access_times'] && $privacy->enabledCourseAccessTimes()) { $do_reset = true; } if (!$do_reset && !$old_settings['grp_access_times'] && $privacy->enabledGroupAccessTimes()) { $do_reset = true; } if ($do_reset) { include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); } ilUtil::sendSuccess($this->lng->txt('settings_saved')); } $this->showPrivacy(); }
function update() { global $lng, $ilCtrl; $user_field_definitions = ilUserDefinedFields::_getInstance(); $user_field_definitions->setFieldType($this->field_definition["field_type"]); // gather old select options $old_options = null; if ($this->field_id) { $old_values = $user_field_definitions->getDefinition($this->field_id); if ($old_values["field_type"] == UDF_TYPE_SELECT) { $old_options = $old_values["field_values"]; } } $access = array(); $form = $this->initForm("edit"); if ($this->validateForm($form, $user_field_definitions, $access) && $this->field_id) { // field values are set in validateForm()... // diff old select options against new to handle deleted values properly if (is_array($old_options)) { foreach ($old_options as $old_option) { if (!in_array($old_option, $user_field_definitions->getFieldValues())) { ilUserDefinedData::deleteFieldValue($this->field_id, $old_option); } } } $user_field_definitions->setFieldName($form->getInput("name")); $user_field_definitions->enableVisible($access['visible']); $user_field_definitions->enableVisibleRegistration((int) $access['visib_reg']); $user_field_definitions->enableVisibleLocalUserAdministration($access['visib_lua']); $user_field_definitions->enableCourseExport($access['course_export']); $user_field_definitions->enableGroupExport($access['group_export']); $user_field_definitions->enableChangeable($access['changeable']); $user_field_definitions->enableChangeableLocalUserAdministration($access['changeable_lua']); $user_field_definitions->enableRequired($access['required']); $user_field_definitions->enableExport($access['export']); $user_field_definitions->enableSearchable($access['searchable']); $user_field_definitions->enableCertificate($access['certificate']); $user_field_definitions->update($this->field_id); if ($access['course_export']) { include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; ilMemberAgreement::_reset(); } ilUtil::sendSuccess($lng->txt('udf_added_field'), true); $ilCtrl->redirect($this); } $form->setValuesByPost(); $this->edit($form); }