Completed
Pull Request — master (#5508)
by Joas
17:29
created
settings/Hooks.php 1 patch
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -34,172 +34,172 @@
 block discarded – undo
34 34
 
35 35
 class Hooks {
36 36
 
37
-	/** @var IActivityManager */
38
-	protected $activityManager;
39
-	/** @var IUserManager */
40
-	protected $userManager;
41
-	/** @var IUserSession */
42
-	protected $userSession;
43
-	/** @var IURLGenerator */
44
-	protected $urlGenerator;
45
-	/** @var IMailer */
46
-	protected $mailer;
47
-	/** @var IConfig */
48
-	protected $config;
49
-	/** @var IFactory */
50
-	protected $languageFactory;
51
-	/** @var IL10N */
52
-	protected $l;
53
-
54
-	public function __construct(IActivityManager $activityManager,
55
-								IUserManager $userManager,
56
-								IUserSession $userSession,
57
-								IURLGenerator $urlGenerator,
58
-								IMailer $mailer,
59
-								IConfig $config,
60
-								IFactory $languageFactory,
61
-								IL10N $l) {
62
-		$this->activityManager = $activityManager;
63
-		$this->userManager = $userManager;
64
-		$this->userSession = $userSession;
65
-		$this->urlGenerator = $urlGenerator;
66
-		$this->mailer = $mailer;
67
-		$this->config = $config;
68
-		$this->languageFactory = $languageFactory;
69
-		$this->l = $l;
70
-	}
71
-
72
-	/**
73
-	 * @param string $uid
74
-	 * @throws \InvalidArgumentException
75
-	 * @throws \BadMethodCallException
76
-	 * @throws \Exception
77
-	 */
78
-	public function onChangePassword($uid) {
79
-		$user = $this->userManager->get($uid);
80
-
81
-		if (!$user instanceof IUser || $user->getLastLogin() === 0) {
82
-			// User didn't login, so don't create activities and emails.
83
-			return;
84
-		}
85
-
86
-		$event = $this->activityManager->generateEvent();
87
-		$event->setApp('settings')
88
-			->setType('personal_settings')
89
-			->setAffectedUser($user->getUID());
90
-
91
-		$instanceUrl = $this->urlGenerator->getAbsoluteURL('/');
92
-
93
-		$actor = $this->userSession->getUser();
94
-		if ($actor instanceof IUser) {
95
-			if ($actor->getUID() !== $user->getUID()) {
96
-				$this->l = $this->languageFactory->get(
97
-					'settings',
98
-					$this->config->getUserValue(
99
-						$user->getUID(), 'core', 'lang',
100
-						$this->config->getSystemValue('default_language', 'en')
101
-					)
102
-				);
103
-
104
-				$text = $this->l->t('%1$s changed your password on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
105
-				$event->setAuthor($actor->getUID())
106
-					->setSubject(Provider::PASSWORD_CHANGED_BY, [$actor->getUID()]);
107
-			} else {
108
-				$text = $this->l->t('Your password on %s was changed.', [$instanceUrl]);
109
-				$event->setAuthor($actor->getUID())
110
-					->setSubject(Provider::PASSWORD_CHANGED_SELF);
111
-			}
112
-		} else {
113
-			$text = $this->l->t('Your password on %s was reset by an administrator.', [$instanceUrl]);
114
-			$event->setSubject(Provider::PASSWORD_RESET);
115
-		}
116
-
117
-		$this->activityManager->publish($event);
118
-
119
-		if ($user->getEMailAddress() !== null) {
120
-			$template = $this->mailer->createEMailTemplate();
121
-			$template->addHeader();
122
-			$template->addHeading($this->l->t('Password changed for %s', $user->getDisplayName()), false);
123
-			$template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.'));
124
-			$template->addFooter();
125
-
126
-
127
-			$message = $this->mailer->createMessage();
128
-			$message->setTo([$user->getEMailAddress() => $user->getDisplayName()]);
129
-			$message->setSubject($this->l->t('Password for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl]));
130
-			$message->setBody($template->renderText(), 'text/plain');
131
-			$message->setHtmlBody($template->renderHtml());
132
-
133
-			$this->mailer->send($message);
134
-		}
135
-	}
136
-
137
-	/**
138
-	 * @param IUser $user
139
-	 * @param string|null $oldMailAddress
140
-	 * @throws \InvalidArgumentException
141
-	 * @throws \BadMethodCallException
142
-	 */
143
-	public function onChangeEmail(IUser $user, $oldMailAddress) {
144
-
145
-		if ($oldMailAddress === $user->getEMailAddress() ||
146
-			$user->getLastLogin() === 0) {
147
-			// Email didn't really change or user didn't login,
148
-			// so don't create activities and emails.
149
-			return;
150
-		}
151
-
152
-		$event = $this->activityManager->generateEvent();
153
-		$event->setApp('settings')
154
-			->setType('personal_settings')
155
-			->setAffectedUser($user->getUID());
156
-
157
-		$instanceUrl = $this->urlGenerator->getAbsoluteURL('/');
158
-
159
-		$actor = $this->userSession->getUser();
160
-		if ($actor instanceof IUser) {
161
-			if ($actor->getUID() !== $user->getUID()) {
162
-				$this->l = $this->languageFactory->get(
163
-					'settings',
164
-					$this->config->getUserValue(
165
-						$user->getUID(), 'core', 'lang',
166
-						$this->config->getSystemValue('default_language', 'en')
167
-					)
168
-				);
169
-
170
-				$text = $this->l->t('%1$s changed your email address on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
171
-				$event->setAuthor($actor->getUID())
172
-					->setSubject(Provider::EMAIL_CHANGED_BY, [$actor->getUID()]);
173
-			} else {
174
-				$text = $this->l->t('Your email address on %s was changed.', [$instanceUrl]);
175
-				$event->setAuthor($actor->getUID())
176
-					->setSubject(Provider::EMAIL_CHANGED_SELF);
177
-			}
178
-		} else {
179
-			$text = $this->l->t('Your email address on %s was changed by an administrator.', [$instanceUrl]);
180
-			$event->setSubject(Provider::EMAIL_CHANGED);
181
-		}
182
-		$this->activityManager->publish($event);
183
-
184
-
185
-		if ($oldMailAddress !== null) {
186
-			$template = $this->mailer->createEMailTemplate();
187
-			$template->addHeader();
188
-			$template->addHeading($this->l->t('Email address changed for %s', $user->getDisplayName()), false);
189
-			$template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.'));
190
-			if ($user->getEMailAddress()) {
191
-				$template->addBodyText($this->l->t('The new email address is %s', $user->getEMailAddress()));
192
-			}
193
-			$template->addFooter();
194
-
195
-
196
-			$message = $this->mailer->createMessage();
197
-			$message->setTo([$oldMailAddress => $user->getDisplayName()]);
198
-			$message->setSubject($this->l->t('Email address for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl]));
199
-			$message->setBody($template->renderText(), 'text/plain');
200
-			$message->setHtmlBody($template->renderHtml());
201
-
202
-			$this->mailer->send($message);
203
-		}
204
-	}
37
+    /** @var IActivityManager */
38
+    protected $activityManager;
39
+    /** @var IUserManager */
40
+    protected $userManager;
41
+    /** @var IUserSession */
42
+    protected $userSession;
43
+    /** @var IURLGenerator */
44
+    protected $urlGenerator;
45
+    /** @var IMailer */
46
+    protected $mailer;
47
+    /** @var IConfig */
48
+    protected $config;
49
+    /** @var IFactory */
50
+    protected $languageFactory;
51
+    /** @var IL10N */
52
+    protected $l;
53
+
54
+    public function __construct(IActivityManager $activityManager,
55
+                                IUserManager $userManager,
56
+                                IUserSession $userSession,
57
+                                IURLGenerator $urlGenerator,
58
+                                IMailer $mailer,
59
+                                IConfig $config,
60
+                                IFactory $languageFactory,
61
+                                IL10N $l) {
62
+        $this->activityManager = $activityManager;
63
+        $this->userManager = $userManager;
64
+        $this->userSession = $userSession;
65
+        $this->urlGenerator = $urlGenerator;
66
+        $this->mailer = $mailer;
67
+        $this->config = $config;
68
+        $this->languageFactory = $languageFactory;
69
+        $this->l = $l;
70
+    }
71
+
72
+    /**
73
+     * @param string $uid
74
+     * @throws \InvalidArgumentException
75
+     * @throws \BadMethodCallException
76
+     * @throws \Exception
77
+     */
78
+    public function onChangePassword($uid) {
79
+        $user = $this->userManager->get($uid);
80
+
81
+        if (!$user instanceof IUser || $user->getLastLogin() === 0) {
82
+            // User didn't login, so don't create activities and emails.
83
+            return;
84
+        }
85
+
86
+        $event = $this->activityManager->generateEvent();
87
+        $event->setApp('settings')
88
+            ->setType('personal_settings')
89
+            ->setAffectedUser($user->getUID());
90
+
91
+        $instanceUrl = $this->urlGenerator->getAbsoluteURL('/');
92
+
93
+        $actor = $this->userSession->getUser();
94
+        if ($actor instanceof IUser) {
95
+            if ($actor->getUID() !== $user->getUID()) {
96
+                $this->l = $this->languageFactory->get(
97
+                    'settings',
98
+                    $this->config->getUserValue(
99
+                        $user->getUID(), 'core', 'lang',
100
+                        $this->config->getSystemValue('default_language', 'en')
101
+                    )
102
+                );
103
+
104
+                $text = $this->l->t('%1$s changed your password on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
105
+                $event->setAuthor($actor->getUID())
106
+                    ->setSubject(Provider::PASSWORD_CHANGED_BY, [$actor->getUID()]);
107
+            } else {
108
+                $text = $this->l->t('Your password on %s was changed.', [$instanceUrl]);
109
+                $event->setAuthor($actor->getUID())
110
+                    ->setSubject(Provider::PASSWORD_CHANGED_SELF);
111
+            }
112
+        } else {
113
+            $text = $this->l->t('Your password on %s was reset by an administrator.', [$instanceUrl]);
114
+            $event->setSubject(Provider::PASSWORD_RESET);
115
+        }
116
+
117
+        $this->activityManager->publish($event);
118
+
119
+        if ($user->getEMailAddress() !== null) {
120
+            $template = $this->mailer->createEMailTemplate();
121
+            $template->addHeader();
122
+            $template->addHeading($this->l->t('Password changed for %s', $user->getDisplayName()), false);
123
+            $template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.'));
124
+            $template->addFooter();
125
+
126
+
127
+            $message = $this->mailer->createMessage();
128
+            $message->setTo([$user->getEMailAddress() => $user->getDisplayName()]);
129
+            $message->setSubject($this->l->t('Password for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl]));
130
+            $message->setBody($template->renderText(), 'text/plain');
131
+            $message->setHtmlBody($template->renderHtml());
132
+
133
+            $this->mailer->send($message);
134
+        }
135
+    }
136
+
137
+    /**
138
+     * @param IUser $user
139
+     * @param string|null $oldMailAddress
140
+     * @throws \InvalidArgumentException
141
+     * @throws \BadMethodCallException
142
+     */
143
+    public function onChangeEmail(IUser $user, $oldMailAddress) {
144
+
145
+        if ($oldMailAddress === $user->getEMailAddress() ||
146
+            $user->getLastLogin() === 0) {
147
+            // Email didn't really change or user didn't login,
148
+            // so don't create activities and emails.
149
+            return;
150
+        }
151
+
152
+        $event = $this->activityManager->generateEvent();
153
+        $event->setApp('settings')
154
+            ->setType('personal_settings')
155
+            ->setAffectedUser($user->getUID());
156
+
157
+        $instanceUrl = $this->urlGenerator->getAbsoluteURL('/');
158
+
159
+        $actor = $this->userSession->getUser();
160
+        if ($actor instanceof IUser) {
161
+            if ($actor->getUID() !== $user->getUID()) {
162
+                $this->l = $this->languageFactory->get(
163
+                    'settings',
164
+                    $this->config->getUserValue(
165
+                        $user->getUID(), 'core', 'lang',
166
+                        $this->config->getSystemValue('default_language', 'en')
167
+                    )
168
+                );
169
+
170
+                $text = $this->l->t('%1$s changed your email address on %2$s.', [$actor->getDisplayName(), $instanceUrl]);
171
+                $event->setAuthor($actor->getUID())
172
+                    ->setSubject(Provider::EMAIL_CHANGED_BY, [$actor->getUID()]);
173
+            } else {
174
+                $text = $this->l->t('Your email address on %s was changed.', [$instanceUrl]);
175
+                $event->setAuthor($actor->getUID())
176
+                    ->setSubject(Provider::EMAIL_CHANGED_SELF);
177
+            }
178
+        } else {
179
+            $text = $this->l->t('Your email address on %s was changed by an administrator.', [$instanceUrl]);
180
+            $event->setSubject(Provider::EMAIL_CHANGED);
181
+        }
182
+        $this->activityManager->publish($event);
183
+
184
+
185
+        if ($oldMailAddress !== null) {
186
+            $template = $this->mailer->createEMailTemplate();
187
+            $template->addHeader();
188
+            $template->addHeading($this->l->t('Email address changed for %s', $user->getDisplayName()), false);
189
+            $template->addBodyText($text . ' ' . $this->l->t('If you did not request this, please contact an administrator.'));
190
+            if ($user->getEMailAddress()) {
191
+                $template->addBodyText($this->l->t('The new email address is %s', $user->getEMailAddress()));
192
+            }
193
+            $template->addFooter();
194
+
195
+
196
+            $message = $this->mailer->createMessage();
197
+            $message->setTo([$oldMailAddress => $user->getDisplayName()]);
198
+            $message->setSubject($this->l->t('Email address for %1$s changed on %2$s', [$user->getDisplayName(), $instanceUrl]));
199
+            $message->setBody($template->renderText(), 'text/plain');
200
+            $message->setHtmlBody($template->renderHtml());
201
+
202
+            $this->mailer->send($message);
203
+        }
204
+    }
205 205
 }
Please login to merge, or discard this patch.