aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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