Allow apps to write/update account data

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2021-03-31 15:18:25 +02:00 committed by backportbot[bot]
parent 737f755941
commit 0c348863e7
2 changed files with 24 additions and 0 deletions

View File

@ -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);
}
}

View File

@ -110,6 +110,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
*