%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Mail/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Mail/NewClientMail.php |
<?php
/*
* @copyright 2020 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\Mail;
use OC_Defaults;
use OCA\Passwords\Helper\Settings\ThemeSettingsHelper;
use OCA\Passwords\Services\LoggingService;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\Mail\IMailer;
/**
* Class NewClientMail
*
* @package OCA\Passwords\Mail
*/
class NewClientMail extends AbstractMail {
const MAIL_ID = 'security.connect';
const MAIL_TYPE = 'security';
/**
* @var ThemeSettingsHelper
*/
protected ThemeSettingsHelper $themingSettings;
/**
* NewClientMail constructor.
*
* @param IMailer $mailer
* @param OC_Defaults $defaults
* @param LoggingService $logger
* @param IURLGenerator $urlGenerator
* @param ThemeSettingsHelper $themingSettings
*/
public function __construct(IMailer $mailer, OC_Defaults $defaults, LoggingService $logger, IURLGenerator $urlGenerator, ThemeSettingsHelper $themingSettings) {
parent::__construct($mailer, $defaults, $logger, $urlGenerator);
$this->themingSettings = $themingSettings;
}
/**
* @param IUser $user
* @param IL10N $localisation
* @param mixed ...$parameters
*/
public function send(IUser $user, IL10N $localisation, ...$parameters): void {
[$client] = $parameters;
$template = $this->getTemplate();
$template->addHeading(
$this->getTitle($localisation)
);
$template->addBodyText(
$this->getBody($localisation, $client)
);
$template->addBodyButton(
$localisation->t('Manage devices & apps'),
$this->urlGenerator->linkToRouteAbsolute('settings.PersonalSettings.index', ['section' => 'security'])
);
$subject = $this->getSubject($localisation);
$this->sendMessage($user, $subject, $template);
}
/**
* @param IL10N $localisation
* @param string $client
*
* @return string
*/
protected function getBody(IL10N $localisation, string $client): string {
$label = $this->themingSettings->get('label');
return
$localisation->t('"%s" was granted access to your %s Passwords account via PassLink.', [$client, $label])
.' '.
$localisation->t('You can manage all connected devices and apps in your %s settings in the security section.', [$label]);
}
/**
* @param IL10N $localisation
*
* @return string
*/
protected function getTitle(IL10N $localisation): string {
return $localisation->t('A new client or app was connected to your account');
}
/**
* @param IL10N $localisation
*
* @return string
*/
protected function getSubject(IL10N $localisation): string {
return $localisation->t('A new client or app was connected to your account');
}
}