mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
refactor: add migration for email setting
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
parent
eb98e99530
commit
e7859f0dac
5 changed files with 38 additions and 5 deletions
|
|
@ -757,7 +757,7 @@ class UsersController extends AUserDataOCSController {
|
|||
}
|
||||
|
||||
// Fallback to display name value to avoid changing behavior with the new option.
|
||||
if ($this->config->getSystemValue('allow_user_to_change_email', $allowDisplayNameChange)) {
|
||||
if ($this->config->getSystemValue('allow_user_to_change_email', true)) {
|
||||
$permittedFields[] = IAccountManager::PROPERTY_EMAIL;
|
||||
}
|
||||
|
||||
|
|
@ -918,8 +918,7 @@ class UsersController extends AUserDataOCSController {
|
|||
$permittedFields[] = IAccountManager::PROPERTY_DISPLAYNAME;
|
||||
}
|
||||
|
||||
// Fallback to display name value to avoid changing behavior with the new option.
|
||||
if ($this->config->getSystemValue('allow_user_to_change_email', $allowDisplayNameChange)) {
|
||||
if ($this->config->getSystemValue('allow_user_to_change_email', true)) {
|
||||
$permittedFields[] = IAccountManager::PROPERTY_EMAIL;
|
||||
}
|
||||
|
||||
|
|
|
|||
33
core/Migrations/Version32000Date20250402182800.php
Normal file
33
core/Migrations/Version32000Date20250402182800.php
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
namespace OC\Core\Migrations;
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
|
||||
/**
|
||||
* Add `allow_user_to_change_email` system config
|
||||
*/
|
||||
class Version32000Date20250402182800 extends SimpleMigrationStep {
|
||||
|
||||
public function __construct(
|
||||
private IConfig $config,
|
||||
) {
|
||||
}
|
||||
|
||||
public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
$allowDisplayName = $this->config->getSystemValue('allow_user_to_change_display_name', null);
|
||||
$allowEmail = $this->config->getSystemValue('allow_user_to_change_email', null);
|
||||
|
||||
// if displayname was set, but not the email setting, then set the email setting to the same as the email setting
|
||||
if ($allowDisplayName !== null && $allowEmail === null) {
|
||||
$this->config->setSystemValue('allow_user_to_change_email', $allowDisplayName === true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1453,6 +1453,7 @@ return array(
|
|||
'OC\\Core\\Migrations\\Version31000Date20240101084401' => $baseDir . '/core/Migrations/Version31000Date20240101084401.php',
|
||||
'OC\\Core\\Migrations\\Version31000Date20240814184402' => $baseDir . '/core/Migrations/Version31000Date20240814184402.php',
|
||||
'OC\\Core\\Migrations\\Version31000Date20250213102442' => $baseDir . '/core/Migrations/Version31000Date20250213102442.php',
|
||||
'OC\\Core\\Migrations\\Version32000Date20250402182800' => $baseDir . '/core/Migrations/Version32000Date20250402182800.php',
|
||||
'OC\\Core\\Notification\\CoreNotifier' => $baseDir . '/core/Notification/CoreNotifier.php',
|
||||
'OC\\Core\\ResponseDefinitions' => $baseDir . '/core/ResponseDefinitions.php',
|
||||
'OC\\Core\\Service\\LoginFlowV2Service' => $baseDir . '/core/Service/LoginFlowV2Service.php',
|
||||
|
|
|
|||
|
|
@ -1502,6 +1502,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
|
|||
'OC\\Core\\Migrations\\Version31000Date20240101084401' => __DIR__ . '/../../..' . '/core/Migrations/Version31000Date20240101084401.php',
|
||||
'OC\\Core\\Migrations\\Version31000Date20240814184402' => __DIR__ . '/../../..' . '/core/Migrations/Version31000Date20240814184402.php',
|
||||
'OC\\Core\\Migrations\\Version31000Date20250213102442' => __DIR__ . '/../../..' . '/core/Migrations/Version31000Date20250213102442.php',
|
||||
'OC\\Core\\Migrations\\Version32000Date20250402182800' => __DIR__ . '/../../..' . '/core/Migrations/Version32000Date20250402182800.php',
|
||||
'OC\\Core\\Notification\\CoreNotifier' => __DIR__ . '/../../..' . '/core/Notification/CoreNotifier.php',
|
||||
'OC\\Core\\ResponseDefinitions' => __DIR__ . '/../../..' . '/core/ResponseDefinitions.php',
|
||||
'OC\\Core\\Service\\LoginFlowV2Service' => __DIR__ . '/../../..' . '/core/Service/LoginFlowV2Service.php',
|
||||
|
|
|
|||
|
|
@ -448,8 +448,7 @@ class User implements IUser {
|
|||
}
|
||||
|
||||
public function canChangeEmail(): bool {
|
||||
// Fallback to display name value to avoid changing behavior with the new option.
|
||||
return $this->config->getSystemValueBool('allow_user_to_change_email', $this->config->getSystemValueBool('allow_user_to_change_display_name', true));
|
||||
return $this->config->getSystemValueBool('allow_user_to_change_email', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue