Merge pull request #5118 from nextcloud/use-language-of-recipient-not-admin

Use the language of the recipient not the actor
This commit is contained in:
Lukas Reschke 2017-06-09 11:34:08 +02:00 committed by GitHub
commit 0433c4e4cf
1 changed files with 32 additions and 1 deletions

View File

@ -23,11 +23,13 @@ namespace OC\Settings;
use OC\Settings\Activity\Provider; use OC\Settings\Activity\Provider;
use OCP\Activity\IManager as IActivityManager; use OCP\Activity\IManager as IActivityManager;
use OCP\IConfig;
use OCP\IL10N; use OCP\IL10N;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use OCP\IUser; use OCP\IUser;
use OCP\IUserManager; use OCP\IUserManager;
use OCP\IUserSession; use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Mail\IMailer; use OCP\Mail\IMailer;
class Hooks { class Hooks {
@ -42,15 +44,28 @@ class Hooks {
protected $urlGenerator; protected $urlGenerator;
/** @var IMailer */ /** @var IMailer */
protected $mailer; protected $mailer;
/** @var IConfig */
protected $config;
/** @var IFactory */
protected $languageFactory;
/** @var IL10N */ /** @var IL10N */
protected $l; protected $l;
public function __construct(IActivityManager $activityManager, IUserManager $userManager, IUserSession $userSession, IURLGenerator $urlGenerator, IMailer $mailer, IL10N $l) { public function __construct(IActivityManager $activityManager,
IUserManager $userManager,
IUserSession $userSession,
IURLGenerator $urlGenerator,
IMailer $mailer,
IConfig $config,
IFactory $languageFactory,
IL10N $l) {
$this->activityManager = $activityManager; $this->activityManager = $activityManager;
$this->userManager = $userManager; $this->userManager = $userManager;
$this->userSession = $userSession; $this->userSession = $userSession;
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->mailer = $mailer; $this->mailer = $mailer;
$this->config = $config;
$this->languageFactory = $languageFactory;
$this->l = $l; $this->l = $l;
} }
@ -77,6 +92,14 @@ class Hooks {
$actor = $this->userSession->getUser(); $actor = $this->userSession->getUser();
if ($actor instanceof IUser) { if ($actor instanceof IUser) {
if ($actor->getUID() !== $user->getUID()) { if ($actor->getUID() !== $user->getUID()) {
$this->l = $this->languageFactory->get(
'settings',
$this->config->getUserValue(
$user->getUID(), 'core', 'lang',
$this->config->getSystemValue('default_language', 'en')
)
);
$text = $this->l->t('%1$s changed your password on %2$s.', [$actor->getDisplayName(), $instanceUrl]); $text = $this->l->t('%1$s changed your password on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
$event->setAuthor($actor->getUID()) $event->setAuthor($actor->getUID())
->setSubject(Provider::PASSWORD_CHANGED_BY, [$actor->getUID()]); ->setSubject(Provider::PASSWORD_CHANGED_BY, [$actor->getUID()]);
@ -133,6 +156,14 @@ class Hooks {
$actor = $this->userSession->getUser(); $actor = $this->userSession->getUser();
if ($actor instanceof IUser) { if ($actor instanceof IUser) {
if ($actor->getUID() !== $user->getUID()) { if ($actor->getUID() !== $user->getUID()) {
$this->l = $this->languageFactory->get(
'settings',
$this->config->getUserValue(
$user->getUID(), 'core', 'lang',
$this->config->getSystemValue('default_language', 'en')
)
);
$text = $this->l->t('%1$s changed your email address on %2$s.', [$actor->getDisplayName(), $instanceUrl]); $text = $this->l->t('%1$s changed your email address on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
$event->setAuthor($actor->getUID()) $event->setAuthor($actor->getUID())
->setSubject(Provider::EMAIL_CHANGED_BY, [$actor->getUID()]); ->setSubject(Provider::EMAIL_CHANGED_BY, [$actor->getUID()]);