Name sync option

This commit is contained in:
Marcin Łojewski
2019-10-08 20:58:22 +02:00
parent a8e8e53538
commit 34a0c65be6
7 changed files with 58 additions and 15 deletions

View File

@@ -99,6 +99,9 @@ class EmailSync implements IUserAction
$this->config->setUserValue(
$user->uid, "settings", "email", $user->email
);
\OC::$server->getUserManager()->get($user->uid)->triggerChange(
'eMailAddress', $user->email, null
);
}
$result = true;
@@ -120,7 +123,9 @@ class EmailSync implements IUserAction
$this->config->setUserValue(
$user->uid, "settings", "email", $user->email
);
\OC::$server->getUserManager()->get($user->uid)->triggerChange('eMailAddress', $user->email, null);
\OC::$server->getUserManager()->get($user->uid)->triggerChange(
'eMailAddress', $user->email, null
);
}
$result = true;

View File

@@ -93,16 +93,45 @@ class NameSync implements IUserAction
$result = false;
if (!empty($user->name) && $user->name !== $ncName) {
$this->config->setUserValue(
$user->uid, "settings", "displayName", $user->name
);
\OC::$server->getUserManager()->get($user->uid)->triggerChange('displayName', $user->name, null);
switch ($this->properties[Opt::NAME_SYNC]) {
case App::SYNC_INITIAL:
if (empty($ncName) && !empty($user->name)) {
$this->config->setUserValue(
$user->uid, "settings", "displayName", $user->name
);
\OC::$server->getUserManager()->get($user->uid)->triggerChange(
'displayName', $user->name, null
);
}
$result = true;
break;
case App::SYNC_FORCE_NC:
if (!empty($ncName) && $user->name !== $ncName) {
$user = $this->userRepository->findByUid($user->uid);
if (!($user instanceof User)) {
break;
}
$user->name = $ncName;
$result = $this->userRepository->save($user, UserRepository::DISPLAY_NAME_FIELD);
}
break;
case App::SYNC_FORCE_SQL:
if (!empty($user->name) && $user->name !== $ncName) {
$this->config->setUserValue(
$user->uid, "settings", "displayName", $user->name
);
\OC::$server->getUserManager()->get($user->uid)->triggerChange(
'displayName', $user->name, null
);
}
$result = true;
break;
}
$result = true;
$this->logger->debug(
"Returning NameSync#doAction($user->uid): " . ($result ? "true"
: "false"),

View File

@@ -24,8 +24,8 @@ namespace OCA\UserSQL\Backend;
use OC\User\Backend;
use OCA\UserSQL\Action\EmailSync;
use OCA\UserSQL\Action\IUserAction;
use OCA\UserSQL\Action\QuotaSync;
use OCA\UserSQL\Action\NameSync;
use OCA\UserSQL\Action\QuotaSync;
use OCA\UserSQL\Cache;
use OCA\UserSQL\Constant\App;
use OCA\UserSQL\Constant\DB;
@@ -152,7 +152,8 @@ final class UserBackend extends ABackend implements
$this->userRepository
);
}
if (!empty($this->properties[DB::USER_NAME_COLUMN])
if (!empty($this->properties[Opt::NAME_SYNC])
&& !empty($this->properties[DB::USER_NAME_COLUMN])
) {
$this->actions[] = new NameSync(
$this->appName, $this->logger, $this->properties, $this->config,

View File

@@ -38,6 +38,7 @@ final class Opt
const HOME_LOCATION = "opt.home_location";
const HOME_MODE = "opt.home_mode";
const NAME_CHANGE = "opt.name_change";
const NAME_SYNC = "opt.name_sync";
const PASSWORD_CHANGE = "opt.password_change";
const PREPEND_SALT = "opt.prepend_salt";
const PROVIDE_AVATAR = "opt.provide_avatar";