diff options
author | Joas Schilling <coding@schilljs.com> | 2021-03-31 15:18:25 +0200 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2021-04-01 06:07:47 +0000 |
commit | 0c348863e7502d0e6db731e7657b29f675b11590 (patch) | |
tree | 012d26b19d04c0f1b71f2f53f036d4a9ee725d74 | |
parent | 737f7559410cc79053819d8aac9ae573529c3c93 (diff) | |
download | nextcloud-server-0c348863e7502d0e6db731e7657b29f675b11590.tar.gz nextcloud-server-0c348863e7502d0e6db731e7657b29f675b11590.zip |
Allow apps to write/update account data
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | lib/private/Accounts/AccountManager.php | 14 | ||||
-rw-r--r-- | lib/public/Accounts/IAccountManager.php | 10 |
2 files changed, 24 insertions, 0 deletions
diff --git a/lib/private/Accounts/AccountManager.php b/lib/private/Accounts/AccountManager.php index 6198f8dbddd..7b08fa3e598 100644 --- a/lib/private/Accounts/AccountManager.php +++ b/lib/private/Accounts/AccountManager.php @@ -510,4 +510,18 @@ class AccountManager implements IAccountManager { public function getAccount(IUser $user): IAccount { return $this->parseAccountData($user, $this->getUser($user)); } + + public function updateAccount(IAccount $account): void { + $data = []; + + foreach ($account->getProperties() as $property) { + $data[$property->getName()] = [ + 'value' => $property->getValue(), + 'scope' => $property->getScope(), + 'verified' => $property->getVerified(), + ]; + } + + $this->updateUser($account->getUser(), $data, true); + } } diff --git a/lib/public/Accounts/IAccountManager.php b/lib/public/Accounts/IAccountManager.php index e88fd32f674..63fbc9ba312 100644 --- a/lib/public/Accounts/IAccountManager.php +++ b/lib/public/Accounts/IAccountManager.php @@ -111,6 +111,16 @@ interface IAccountManager { public function getAccount(IUser $user): IAccount; /** + * Update the account data with for the user + * + * @since 21.0.1 + * + * @param IAccount $account + * @throws \InvalidArgumentException Message is the property that was invalid + */ + public function updateAccount(IAccount $account): void; + + /** * Search for users based on account data * * @param string $property |