def save_profile_changes(self, REQUEST): """!TXT! Save changes to the user's profile.""" profile_id = self._get_profile_id(request.AUTHENTICATED_USER) settings = self.__profiles.get(profile_id, {}) for formkey in REQUEST.form.keys(): if formkey.startswith('value_'): key = formkey[6:] value = eval_valuestring(REQUEST[formkey], settings[key]) if value: settings[key] = value for key in REQUEST.get('delete_keys', []): del settings[key] profiles = self.__profiles profiles[profile_id] = settings self.__profiles = profiles self.redirect( REQUEST, 'profiles_form', message='!TXT! The changes to your profile have been saved.', )
def set_profile_variable(self, request, key, value): """!TXT! Set the value of the specified variable in the User's profile.""" profile_id = self._get_profile_id(request.AUTHENTICATED_USER) settings = self.__profiles.get(profile_id, {}) if key in settings: value = eval_valuestring(value, settings[key]) if not value: return settings[key] = value profiles = self.__profiles profiles[profile_id] = settings self.__profiles = profiles
def update_profile(self, request, variables): """!TXT! Set the value of the specified variable in the User's profile.""" form = request.form form_has_key = form.has_key profile_id = self._get_profile_id(request.AUTHENTICATED_USER) settings = self.__profiles.get(profile_id, {}) settings_changed = false for key, default in variables: value = eval_valuestring(form.get(key, settings.get(key, default)), default) if value is not None: request.set(key, value) if value != settings.get(key, None): settings_changed = true settings[key] = value if settings_changed: profiles = self.__profiles profiles[profile_id] = settings self.__profiles = profiles