Improve settings and settings tests

This commit is contained in:
Dennis Eichhorn 2020-10-05 19:30:55 +02:00
parent 073fe5fff2
commit aa6f510d0b
4 changed files with 21 additions and 21 deletions

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\Admin\Controller;
use Model\Settings;
use Model\SettingsEnum;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\AccountMapper;
use Modules\Admin\Models\AccountPermission;
@ -176,8 +176,8 @@ final class ApiController extends Controller
[
'response' => $this->app->appSettings->get(
$id !== null ? (int) $id : $id,
$request->getData('name'),
$request->getData('module'),
$request->getData('name') ?? '',
$request->getData('module') ?? null,
$group !== null ? (int) $group : $group,
$account !== null ? (int) $account : $account
),
@ -775,7 +775,7 @@ final class ApiController extends Controller
);
$this->updateModel($request->getHeader()->getAccount(), $old, $account, function() use($account) : void {
$account->setLoginTries((int) $this->app->appSettings->get(null, (string) Settings::LOGIN_TRIES));
$account->setLoginTries((int) $this->app->appSettings->get(null, SettingsENUM::LOGIN_TRIES)['content']);
AccountMapper::update($account);
}, 'account', $request->getOrigin());
}

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\Admin\Controller;
use Model\Settings;
use Model\SettingsEnum;
use Modules\Admin\Models\AccountMapper;
use Modules\Admin\Models\AccountPermissionMapper;
use Modules\Admin\Models\GroupMapper;
@ -79,14 +79,14 @@ final class BackendController extends Controller
{
$view = new View($this->app->l11nManager, $request, $response);
$settings = $this->app->appSettings->get(null, [
Settings::PASSWORD_PATTERN, Settings::LOGIN_TIMEOUT, Settings::PASSWORD_INTERVAL, Settings::PASSWORD_HISTORY, Settings::LOGIN_TRIES, Settings::LOGGING_STATUS, Settings::LOGGING_PATH, Settings::DEFAULT_ORGANIZATION,
Settings::LOGIN_STATUS, Settings::DEFAULT_LOCALIZATION, Settings::ADMIN_MAIL,
SettingsEnum::PASSWORD_PATTERN, SettingsEnum::LOGIN_TIMEOUT, SettingsEnum::PASSWORD_INTERVAL, SettingsEnum::PASSWORD_HISTORY, SettingsEnum::LOGIN_TRIES, SettingsEnum::LOGGING_STATUS, SettingsEnum::LOGGING_PATH, SettingsEnum::DEFAULT_ORGANIZATION,
SettingsEnum::LOGIN_STATUS, SettingsEnum::DEFAULT_LOCALIZATION, SettingsEnum::ADMIN_MAIL,
]);
$view->setTemplate('/Modules/Admin/Theme/Backend/settings-general');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response));
$view->setData('settings', $settings);
$view->setData('defaultlocalization', LocalizationMapper::get((int) $settings[Settings::DEFAULT_LOCALIZATION]));
$view->setData('defaultlocalization', LocalizationMapper::get((int) $settings[SettingsEnum::DEFAULT_LOCALIZATION]));
return $view;
}

View File

@ -80,23 +80,23 @@ $l11n = $this->getData('defaultlocalization') ?? new NullLocalization();
<tr><td>
<label for="iPassword"><?= $this->getHtml('PasswordRegex'); ?></label>
<i class="tooltip" data-tooltip="<?= $this->getHtml('i:PasswordRegex'); ?>"><i class="fa fa-info-circle"></i></i>
<tr><td><input id="iPassword" name="settings_1000000001" type="text" value="<?= $this->printHtml($settings[1000000001]); ?>" placeholder="&#xf023; ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&;:\(\)\[\]=\{\}\+\-])[A-Za-z\d$@$!%*?&;:\(\)\[\]=\{\}\+\-]{8,}">
<tr><td><input id="iPassword" name="settings_1000000001" type="text" value="<?= $this->printHtml($settings['1000000001']['content']); ?>" placeholder="&#xf023; ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&;:\(\)\[\]=\{\}\+\-])[A-Za-z\d$@$!%*?&;:\(\)\[\]=\{\}\+\-]{8,}">
<tr><td>
<label for="iLoginRetries"><?= $this->getHtml('LoginRetries'); ?></label>
<i class="tooltip" data-tooltip="<?= $this->getHtml('i:LoginRetries'); ?>"><i class="fa fa-info-circle"></i></i>
<tr><td><input id="iLoginRetries" name="settings_1000000005" type="number" value="<?= $this->printHtml($settings[1000000005]); ?>" min="-1">
<tr><td><input id="iLoginRetries" name="settings_1000000005" type="number" value="<?= $this->printHtml($settings['1000000005']['content']); ?>" min="-1">
<tr><td>
<label for="iTimeoutPeriod"><?= $this->getHtml('TimeoutPeriod'); ?></label>
<i class="tooltip" data-tooltip="<?= $this->getHtml('i:TimeoutPeriod'); ?>"><i class="fa fa-info-circle"></i></i>
<tr><td><input id="iTimeoutPeriod" name="settings_1000000002" type="number" value="<?= $this->printHtml($settings[1000000002]); ?>">
<tr><td><input id="iTimeoutPeriod" name="settings_1000000002" type="number" value="<?= $this->printHtml($settings['1000000002']['content']); ?>">
<tr><td>
<label for="iPasswordChangeInterval"><?= $this->getHtml('PasswordChangeInterval'); ?></label>
<i class="tooltip" data-tooltip="<?= $this->getHtml('i:PasswordChangeInterval'); ?>"><i class="fa fa-info-circle"></i></i>
<tr><td><input id="iPasswordChangeInterval" name="settings_1000000003" type="number" value="<?= $this->printHtml($settings[1000000003]); ?>">
<tr><td><input id="iPasswordChangeInterval" name="settings_1000000003" type="number" value="<?= $this->printHtml($settings['1000000003']['content']); ?>">
<tr><td>
<label for="iPasswordHistory"><?= $this->getHtml('PasswordHistory'); ?></label>
<i class="tooltip" data-tooltip="<?= $this->getHtml('i:PasswordHistory'); ?>"><i class="fa fa-info-circle"></i></i>
<tr><td><input id="iPasswordHistory" name="settings_1000000004" type="number" value="<?= $this->printHtml($settings[1000000004]); ?>">
<tr><td><input id="iPasswordHistory" name="settings_1000000004" type="number" value="<?= $this->printHtml($settings['1000000004']['content']); ?>">
</table>
</div>
<div class="portlet-foot"><input id="iSubmitGeneral" name="submitGeneral" type="submit" value="<?= $this->getHtml('Save', '0', '0'); ?>"></div>
@ -118,7 +118,7 @@ $l11n = $this->getData('defaultlocalization') ?? new NullLocalization();
<?= $this->getHtml('Log'); ?>
</label>
<tr><td><label for="iLogPath"><?= $this->getHtml('LogPath'); ?></label>
<tr><td><input id="iLogPath" name="settings_1000000007" type="text" value="<?= $this->printHtml($settings[1000000007]); ?>" placeholder="&#xf023; /Logs">
<tr><td><input id="iLogPath" name="settings_1000000007" type="text" value="<?= $this->printHtml($settings['1000000007']['content']); ?>" placeholder="&#xf023; /Logs">
</table>
</div>
<div class="portlet-foot"><input id="iSubmitGeneral" name="submitGeneral" type="submit" value="<?= $this->getHtml('Save', '0', '0'); ?>"></div>

View File

@ -14,7 +14,7 @@ declare(strict_types=1);
namespace Modules\Admin\tests\Controller\Api;
use Model\Settings;
use Model\SettingsEnum;
use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse;
use phpOMS\Uri\HttpUri;
@ -32,10 +32,10 @@ trait ApiControllerSettingsTrait
$request = new HttpRequest(new HttpUri(''));
$request->getHeader()->setAccount(1);
$request->setData('name', Settings::PASSWORD_INTERVAL);
$request->setData('name', SettingsEnum::PASSWORD_INTERVAL);
$this->module->apiSettingsGet($request, $response);
self::assertEquals('90', $response->get('')['response']);
self::assertEquals('90', $response->get('')['response']['content']);
}
/**
@ -49,14 +49,14 @@ trait ApiControllerSettingsTrait
$request = new HttpRequest(new HttpUri(''));
$request->getHeader()->setAccount(1);
$request->setData('settings', \json_encode([['name' => Settings::PASSWORD_INTERVAL, 'content' => '60']]));
$request->setData('settings', \json_encode([['name' => SettingsEnum::PASSWORD_INTERVAL, 'content' => '60']]));
$this->module->apiSettingsSet($request, $response);
$request->setData('name', Settings::PASSWORD_INTERVAL);
$request->setData('name', SettingsEnum::PASSWORD_INTERVAL);
$this->module->apiSettingsGet($request, $response);
self::assertEquals('60', $response->get('')['response']);
self::assertEquals('60', $response->get('')['response']['content']);
$request->setData('settings', \json_encode([['name' => Settings::PASSWORD_INTERVAL, 'content' => '90']]), true);
$request->setData('settings', \json_encode([['name' => SettingsEnum::PASSWORD_INTERVAL, 'content' => '90']]), true);
$this->module->apiSettingsSet($request, $response);
}