%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Services/ |
Current File : //www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Services/HelperService.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\Services; use OCA\Passwords\Helper\Image\AbstractImageHelper; use OCA\Passwords\Helper\Image\AutoImageHelper; use OCA\Passwords\Helper\Image\GdHelper; use OCA\Passwords\Helper\Image\ImagickHelper; use OCA\Passwords\Helper\Image\ImaginaryHelper; use OCA\Passwords\Provider\SecurityCheck\BigDbPlusHibpSecurityCheckProvider; use OCA\Passwords\Provider\SecurityCheck\BigLocalDbSecurityCheckProvider; use OCA\Passwords\Provider\SecurityCheck\HaveIBeenPwnedProvider; use OCA\Passwords\Provider\SecurityCheck\SecurityCheckProviderInterface; use OCA\Passwords\Provider\SecurityCheck\SmallLocalDbSecurityCheckProvider; use OCA\Passwords\Provider\Words\AutoWordsProvider; use OCA\Passwords\Provider\Words\LeipzigCorporaProvider; use OCA\Passwords\Provider\Words\LocalWordsProvider; use OCA\Passwords\Provider\Words\RandomCharactersProvider; use OCA\Passwords\Provider\Words\SnakesWordsProvider; use OCA\Passwords\Provider\Words\WordsProviderInterface; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; /** * Class HelperService * * @package OCA\Passwords\Services */ class HelperService { const PREVIEW_SCREEN_SHOT_MACHINE = 'ssm'; const PREVIEW_SCREEN_SHOT_LAYER = 'ssl'; const PREVIEW_BROW_SHOT = 'bws'; const PREVIEW_PAGERES = 'pageres'; const PREVIEW_SCREEENLY = 'screeenly'; const PREVIEW_DEFAULT = 'default'; const FAVICON_BESTICON = 'bi'; const FAVICON_FAVICON_GRABBER = 'fg'; const FAVICON_DUCK_DUCK_GO = 'ddg'; const FAVICON_GOOGLE = 'gl'; const FAVICON_LOCAL = 'local'; const FAVICON_DEFAULT = 'default'; const WORDS_LOCAL = 'local'; const WORDS_RANDOM = 'random'; const WORDS_SNAKES = 'wo4snakes'; const WORDS_LEIPZIG = 'leipzig'; const WORDS_AUTO = 'auto'; const SECURITY_BIGDB_HIBP = 'bigdb+hibp'; const SECURITY_BIG_LOCAL = 'bigdb'; const SECURITY_SMALL_LOCAL = 'smalldb'; const SECURITY_HIBP = 'hibp'; const IMAGES_AUTO = 'auto'; const IMAGES_IMAGICK = 'imagick'; const IMAGES_GDLIB = 'gdlib'; const IMAGES_IMAGINARY = 'imaginary'; /** * @var ConfigurationService */ protected ConfigurationService $config; /** * @var ContainerInterface */ protected ContainerInterface $container; /** * FaviconService constructor. * * @param ConfigurationService $config * @param ContainerInterface $container */ public function __construct(ConfigurationService $config, ContainerInterface $container) { $this->config = $config; $this->container = $container; } /** * @param string|null $service * * @return AbstractImageHelper */ public function getImageHelper(string $service = null): AbstractImageHelper { if($service === null) $service = $this->config->getAppValue('service/images', self::IMAGES_AUTO); return match ($service) { self::IMAGES_IMAGICK => $this->container->get(ImagickHelper::class), self::IMAGES_GDLIB => $this->container->get(GdHelper::class), self::IMAGES_IMAGINARY => $this->container->get(ImaginaryHelper::class), default => $this->container->get(AutoImageHelper::class), }; } /** * @param string|null $service * * @return WordsProviderInterface */ public function getWordsHelper(string $service = null): WordsProviderInterface { if($service === null) $service = $this->config->getAppValue('service/words', HelperService::WORDS_AUTO); return match ($service) { self::WORDS_LOCAL => $this->container->get(LocalWordsProvider::class), self::WORDS_LEIPZIG => $this->container->get(LeipzigCorporaProvider::class), self::WORDS_SNAKES => $this->container->get(SnakesWordsProvider::class), self::WORDS_RANDOM => $this->container->get(RandomCharactersProvider::class), default => $this->container->get(AutoWordsProvider::class), }; } /** * @param string|null $service * * @depreacted without replacement * * @return SecurityCheckProviderInterface * * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function getSecurityHelper(string $service = null): SecurityCheckProviderInterface { $service = $this->config->getAppValue('service/security', $service ?? self::SECURITY_HIBP); return match ($service) { self::SECURITY_BIG_LOCAL => $this->container->get(BigLocalDbSecurityCheckProvider::class), self::SECURITY_SMALL_LOCAL => $this->container->get(SmallLocalDbSecurityCheckProvider::class), self::SECURITY_BIGDB_HIBP => $this->container->get(BigDbPlusHibpSecurityCheckProvider::class), default => $this->container->get(HaveIBeenPwnedProvider::class), }; } }