diff options
author | Joas Schilling <coding@schilljs.com> | 2021-03-31 15:18:25 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2021-03-31 15:18:25 +0200 |
commit | fcedbc85d08f66b296416b00774d8a3ca3ba5257 (patch) | |
tree | 7ea81e041962c6eee25eea0b16543c051303a61d /lib | |
parent | b67ac4ec9bc0b8ab82765f11267e7c9cbd6988a6 (diff) | |
download | nextcloud-server-fcedbc85d08f66b296416b00774d8a3ca3ba5257.tar.gz nextcloud-server-fcedbc85d08f66b296416b00774d8a3ca3ba5257.zip |
Allow apps to write/update account data
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib')
-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 |