aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2021-03-31 15:18:25 +0200
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>2021-04-01 06:07:47 +0000
commit0c348863e7502d0e6db731e7657b29f675b11590 (patch)
tree012d26b19d04c0f1b71f2f53f036d4a9ee725d74
parent737f7559410cc79053819d8aac9ae573529c3c93 (diff)
downloadnextcloud-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.php14
-rw-r--r--lib/public/Accounts/IAccountManager.php10
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