%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Dashboard/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Dashboard/PasswordsWidget.php |
<?php
/*
* @copyright 2023 Passwords App
*
* @author Marius David Wieschollek
* @license AGPL-3.0
*
* This file is part of the Passwords App
* created by Marius David Wieschollek.
*/
namespace OCA\Passwords\Dashboard;
use OCA\Passwords\Helper\Token\ApiTokenHelper;
use OCA\Passwords\Services\ConfigurationService;
use OCA\Passwords\Services\EnvironmentService;
use OCA\Passwords\Services\UserChallengeService;
use OCA\Passwords\Services\UserSettingsService;
use OCP\AppFramework\Services\IInitialState;
use OCP\Dashboard\IConditionalWidget;
use OCP\Dashboard\IWidget;
use OCP\IL10N;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\Util;
class PasswordsWidget implements IWidget, IConditionalWidget {
public function __construct(
protected IL10N $l10n,
protected ConfigurationService $config,
protected IRequest $request,
protected UserSettingsService $settings,
protected ApiTokenHelper $tokenHelper,
protected IURLGenerator $urlGenerator,
protected IInitialState $initialState,
protected UserChallengeService $challengeService,
protected EnvironmentService $environmentService
) {
}
public function getId(): string {
return 'passwords-widget';
}
public function getTitle(): string {
return $this->l10n->t('Passwords');
}
public function getOrder(): int {
return 10;
}
public function getIconClass(): string {
return 'icon-category-auth';
}
public function getUrl(): ?string {
return $this->urlGenerator->linkToRouteAbsolute('passwords.page.index');
}
public function load(): void {
if($this->request->urlParams['_route'] !== 'dashboard.dashboard.index') {
return;
}
[$token, $user] = $this->tokenHelper->getWebUiToken();
$this->initialState->provideInitialState('settings', $this->settings->list());
$this->initialState->provideInitialState('api-user', $user);
$this->initialState->provideInitialState('api-token', $token);
$this->initialState->provideInitialState('authenticate', $this->challengeService->hasChallenge());
$this->initialState->provideInitialState('impersonate', false);
if($this->config->hasAppValue('dev/app/hash')) {
Util::addScript('passwords', 'Static/dashboard.'.$this->config->getAppValue('dev/app/hash'));
} else {
Util::addScript('passwords', 'Static/dashboard');
}
}
public function isEnabled(): bool {
return $this->request->getServerProtocol() === 'https' &&
!$this->environmentService->isImpersonating() ;
}
}