mirror of
https://github.com/nuxsmin/sysPass.git
synced 2026-03-19 14:56:50 +01:00
refactor: [WIP] Migrate user settings manager controller.
Signed-off-by: Rubén D <nuxsmin@syspass.org>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* @author nuxsmin
|
||||
* @link https://syspass.org
|
||||
* @copyright 2012-2021, Rubén Domínguez nuxsmin@$syspass.org
|
||||
* @copyright 2012-2022, Rubén Domínguez nuxsmin@$syspass.org
|
||||
*
|
||||
* This file is part of sysPass.
|
||||
*
|
||||
@@ -22,36 +22,44 @@
|
||||
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace SP\Modules\Web\Controllers;
|
||||
namespace SP\Modules\Web\Controllers\UserSettingsManager;
|
||||
|
||||
use DI\DependencyException;
|
||||
use DI\NotFoundException;
|
||||
use SP\Core\Acl\Acl;
|
||||
use SP\Core\Acl\ActionsInterface;
|
||||
use SP\Core\Application;
|
||||
use SP\Core\Events\Event;
|
||||
use SP\Core\Events\EventDispatcherInterface;
|
||||
use SP\Core\Exceptions\SessionTimeout;
|
||||
use SP\Core\Language;
|
||||
use SP\Domain\Auth\Services\AuthException;
|
||||
use SP\DataModel\UserPreferencesData;
|
||||
use SP\Modules\Web\Controllers\ControllerBase;
|
||||
use SP\Modules\Web\Controllers\Helpers\TabsHelper;
|
||||
use SP\Mvc\Controller\ExtensibleTabControllerInterface;
|
||||
use SP\Mvc\Controller\WebControllerHelper;
|
||||
use SP\Mvc\View\Components\DataTab;
|
||||
use SP\Mvc\View\Components\SelectItemAdapter;
|
||||
use SP\Mvc\View\TemplateInterface;
|
||||
|
||||
/**
|
||||
* Class UserSettingsManagerController
|
||||
* Class IndexController
|
||||
*
|
||||
* @package web\Controllers
|
||||
*/
|
||||
final class UserSettingsManagerController extends ControllerBase implements ExtensibleTabControllerInterface
|
||||
final class IndexController extends ControllerBase implements ExtensibleTabControllerInterface
|
||||
{
|
||||
protected ?TabsHelper $tabsHelper = null;
|
||||
private TabsHelper $tabsHelper;
|
||||
|
||||
public function __construct(
|
||||
Application $application,
|
||||
WebControllerHelper $webControllerHelper,
|
||||
TabsHelper $tabsHelper
|
||||
) {
|
||||
parent::__construct($application, $webControllerHelper);
|
||||
|
||||
$this->checkLoggedIn();
|
||||
|
||||
$this->tabsHelper = $tabsHelper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DependencyException
|
||||
* @throws NotFoundException
|
||||
*/
|
||||
public function indexAction(): void
|
||||
{
|
||||
$this->getTabs();
|
||||
@@ -59,20 +67,12 @@ final class UserSettingsManagerController extends ControllerBase implements Exte
|
||||
|
||||
/**
|
||||
* Returns a tabbed grid with items
|
||||
*
|
||||
* @throws DependencyException
|
||||
* @throws NotFoundException
|
||||
*/
|
||||
protected function getTabs(): void
|
||||
{
|
||||
$this->tabsHelper = $this->dic->get(TabsHelper::class);
|
||||
|
||||
$this->tabsHelper->addTab($this->getUserPreferences());
|
||||
|
||||
$this->eventDispatcher->notifyEvent(
|
||||
'show.userSettings',
|
||||
new Event($this)
|
||||
);
|
||||
$this->eventDispatcher->notifyEvent('show.userSettings', new Event($this));
|
||||
|
||||
$this->tabsHelper->renderTabs(
|
||||
Acl::getActionRoute(ActionsInterface::USERSETTINGS),
|
||||
@@ -82,6 +82,14 @@ final class UserSettingsManagerController extends ControllerBase implements Exte
|
||||
$this->view();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTab $tab
|
||||
*/
|
||||
public function addTab(DataTab $tab): void
|
||||
{
|
||||
$this->tabsHelper->addTab($tab);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DataTab
|
||||
*/
|
||||
@@ -92,17 +100,21 @@ final class UserSettingsManagerController extends ControllerBase implements Exte
|
||||
$template->addTemplate('general');
|
||||
|
||||
$userData = $this->session->getUserData();
|
||||
$userPreferences = $userData->getPreferences();
|
||||
$userPreferences = $userData->getPreferences() ?? new UserPreferencesData();
|
||||
|
||||
$template->assign('langs',
|
||||
SelectItemAdapter::factory(
|
||||
Language::getAvailableLanguages()
|
||||
)->getItemsFromArraySelected([$userPreferences->getLang() ?: $this->configData->getSiteLang()])
|
||||
$template->assign(
|
||||
'langs',
|
||||
SelectItemAdapter::factory(Language::getAvailableLanguages())
|
||||
->getItemsFromArraySelected(
|
||||
[$userPreferences->getLang() ?: $this->configData->getSiteLang()]
|
||||
)
|
||||
);
|
||||
$template->assign('themes',
|
||||
SelectItemAdapter::factory(
|
||||
$this->theme->getThemesAvailable()
|
||||
)->getItemsFromArraySelected([$userPreferences->getTheme() ?: $this->configData->getSiteTheme()])
|
||||
$template->assign(
|
||||
'themes',
|
||||
SelectItemAdapter::factory($this->theme->getThemesAvailable())
|
||||
->getItemsFromArraySelected(
|
||||
[$userPreferences->getTheme() ?: $this->configData->getSiteTheme()]
|
||||
)
|
||||
);
|
||||
$template->assign('userPreferences', $userPreferences);
|
||||
$template->assign('route', 'userSettingsGeneral/save');
|
||||
@@ -110,14 +122,6 @@ final class UserSettingsManagerController extends ControllerBase implements Exte
|
||||
return new DataTab(__('Preferences'), $template);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTab $tab
|
||||
*/
|
||||
public function addTab(DataTab $tab): void
|
||||
{
|
||||
$this->tabsHelper->addTab($tab);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TemplateInterface
|
||||
*/
|
||||
@@ -141,15 +145,4 @@ final class UserSettingsManagerController extends ControllerBase implements Exte
|
||||
{
|
||||
return $this->eventDispatcher;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DependencyException
|
||||
* @throws NotFoundException
|
||||
* @throws SessionTimeout
|
||||
* @throws AuthException
|
||||
*/
|
||||
protected function initialize(): void
|
||||
{
|
||||
$this->checkLoggedIn();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user