openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 364522041885bd23c8c03033a10c854b985ac4f9
parent ef4e68395be724ca65805d10e52cc261f9b5b09a
Author: dankert <openrat@jandankert.de>
Date:   Wed,  9 Mar 2022 02:12:03 +0100

New: Only save a property if it is send by the client. This is useful using a API, so not sent properties will not be deleted.

Diffstat:
Mmodules/cms/action/profile/ProfileEditAction.class.php | 57+++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 41 insertions(+), 16 deletions(-)

diff --git a/modules/cms/action/profile/ProfileEditAction.class.php b/modules/cms/action/profile/ProfileEditAction.class.php @@ -43,27 +43,52 @@ class ProfileEditAction extends ProfileAction implements Method { } + + + /** + * Saving the user profile. + * + * @return void + */ public function post() { - $this->user->fullname = $this->request->getRequiredText('fullname'); - $this->user->tel = $this->request->getText('tel' ); - $this->user->desc = $this->request->getText('desc' ); - $this->user->style = $this->request->getText('style' ); - $this->user->language = $this->request->getText('language'); - $this->user->timezone = $this->request->getText('timezone'); - $this->user->hotp = $this->request->has('hotp' ); - $this->user->totp = $this->request->has('totp' ); - + + $this->request->handleText('fullname',function($value) { + $this->user->fullname = $value; + }); + + $this->request->handleText('tel',function($value) { + $this->user->tel = $value; + }); + + $this->request->handleText('desc',function($value) { + $this->user->desc = $value; + }); + + $this->request->handleText('style',function($value) { + $this->user->style = $value; + }); + + $this->request->handleText('language',function($value) { + $this->user->language = $value; + $this->setLanguage($value); // Change language immediately + }); + + $this->request->handleText('timezone',function($value) { + $this->user->timezone = $value; + }); + + $this->request->handleBoolDefaultFalse('hotp',function($value) { + $this->user->hotp = $value; + }); + + $this->request->handleBoolDefaultFalse('totp',function($value) { + $this->user->totp = $value; + }); + // Overwrite user in session with new settings. Session::setUser( $this->user ); $this->user->persist(); $this->addNoticeFor( $this->user,Messages::SAVED); - - - // Ausgewählte Sprache sofort verwenden. - $l = $this->request->getText('language'); - - if ( $l ) - $this->setLanguage($l); } }