refactor: [WIP] Migrate user settings manager controller.

Signed-off-by: Rubén D <nuxsmin@syspass.org>
This commit is contained in:
Rubén D
2022-06-12 11:35:27 +02:00
parent 7dc998dc23
commit f5236ec09c

View File

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