3 namespace BookStack\Settings;
5 use BookStack\Users\Models\User;
7 class UserNotificationPreferences
9 public function __construct(
14 public function notifyOnOwnPageChanges(): bool
16 return $this->getNotificationSetting('own-page-changes');
19 public function notifyOnOwnPageComments(): bool
21 return $this->getNotificationSetting('own-page-comments');
24 public function notifyOnCommentReplies(): bool
26 return $this->getNotificationSetting('comment-replies');
29 public function updateFromSettingsArray(array $settings)
31 $allowList = ['own-page-changes', 'own-page-comments', 'comment-replies'];
32 foreach ($settings as $setting => $status) {
33 if (!in_array($setting, $allowList)) {
37 $value = $status === 'true' ? 'true' : 'false';
38 setting()->putUser($this->user, 'notifications#' . $setting, $value);
42 protected function getNotificationSetting(string $key): bool
44 return setting()->getUser($this->user, 'notifications#' . $key);