コード例 #1
0
ファイル: Consumer.php プロジェクト: drognisep/Portfolio-Site
 /**
  * Send an event to the notifications of a user
  *
  * @param IEvent $event
  * @return null
  */
 public function receive(IEvent $event)
 {
     $selfAction = $event->getAffectedUser() === $event->getAuthor();
     $streamSetting = $this->userSettings->getUserSetting($event->getAffectedUser(), 'stream', $event->getType());
     $emailSetting = $this->userSettings->getUserSetting($event->getAffectedUser(), 'email', $event->getType());
     $emailSetting = $emailSetting ? $this->userSettings->getUserSetting($event->getAffectedUser(), 'setting', 'batchtime') : false;
     $types = $this->data->getNotificationTypes($this->l10nFactory->get('activity'));
     $typeData = $types[$event->getType()];
     // User is not the author or wants to see their own actions
     $createStream = !$selfAction || $this->userSettings->getUserSetting($event->getAffectedUser(), 'setting', 'self');
     // User can not control the setting
     $createStream = $createStream || is_array($typeData) && isset($typeData['methods']) && !in_array(IExtension::METHOD_STREAM, $typeData['methods']);
     // Add activity to stream
     if ($streamSetting && $createStream) {
         $this->data->send($event);
     }
     // User is not the author or wants to see their own actions
     $createEmail = !$selfAction || $this->userSettings->getUserSetting($event->getAffectedUser(), 'setting', 'selfemail');
     // User can not control the setting
     $createEmail = $createEmail || is_array($typeData) && isset($typeData['methods']) && !in_array(IExtension::METHOD_MAIL, $typeData['methods']);
     // Add activity to mail queue
     if ($emailSetting && $createEmail) {
         $latestSend = $event->getTimestamp() + $emailSetting;
         $this->data->storeMail($event, $latestSend);
     }
 }
コード例 #2
0
ファイル: usersettings.php プロジェクト: Kevin-ZK/vaneDisk
 /**
  * Get a list with enabled notification types for a user
  *
  * @param string	$user	Name of the user
  * @param string	$method	Should be one of 'stream' or 'email'
  * @return array
  */
 public function getNotificationTypes($user, $method)
 {
     $l = Util::getL10N('activity');
     $types = $this->data->getNotificationTypes($l);
     $notificationTypes = array();
     foreach ($types as $type => $desc) {
         if ($this->getUserSetting($user, $method, $type)) {
             $notificationTypes[] = $type;
         }
     }
     return $notificationTypes;
 }
コード例 #3
0
 /**
  * @NoAdminRequired
  * @NoCSRFRequired
  *
  * @return TemplateResponse
  */
 public function displayPanel()
 {
     $types = $this->data->getNotificationTypes($this->l10n);
     $activities = array();
     foreach ($types as $type => $desc) {
         $activities[$type] = array('desc' => $desc, 'email' => $this->userSettings->getUserSetting($this->user, 'email', $type), 'stream' => $this->userSettings->getUserSetting($this->user, 'stream', $type));
     }
     $settingBatchTime = UserSettings::EMAIL_SEND_HOURLY;
     if ($this->userSettings->getUserSetting($this->user, 'setting', 'batchtime') == 3600 * 24 * 7) {
         $settingBatchTime = UserSettings::EMAIL_SEND_WEEKLY;
     } else {
         if ($this->userSettings->getUserSetting($this->user, 'setting', 'batchtime') == 3600 * 24) {
             $settingBatchTime = UserSettings::EMAIL_SEND_DAILY;
         }
     }
     return new TemplateResponse('activity', 'personal', ['activities' => $activities, 'activity_email' => $this->config->getUserValue($this->user, 'settings', 'email', ''), 'setting_batchtime' => $settingBatchTime, 'notify_self' => $this->userSettings->getUserSetting($this->user, 'setting', 'self'), 'notify_selfemail' => $this->userSettings->getUserSetting($this->user, 'setting', 'selfemail')], '');
 }
コード例 #4
0
 /**
  * @NoAdminRequired
  * @NoCSRFRequired
  *
  * @return TemplateResponse
  */
 public function displayPanel()
 {
     $types = $this->data->getNotificationTypes($this->l10n);
     $activities = array();
     foreach ($types as $type => $desc) {
         if (is_array($desc)) {
             $methods = isset($desc['methods']) ? $desc['methods'] : [IExtension::METHOD_STREAM, IExtension::METHOD_MAIL];
             $desc = isset($desc['desc']) ? $desc['desc'] : '';
         } else {
             $methods = [IExtension::METHOD_STREAM, IExtension::METHOD_MAIL];
         }
         $activities[$type] = array('desc' => $desc, IExtension::METHOD_MAIL => $this->userSettings->getUserSetting($this->user, 'email', $type), IExtension::METHOD_STREAM => $this->userSettings->getUserSetting($this->user, 'stream', $type), 'methods' => $methods);
     }
     $settingBatchTime = UserSettings::EMAIL_SEND_HOURLY;
     $currentSetting = (int) $this->userSettings->getUserSetting($this->user, 'setting', 'batchtime');
     if ($currentSetting === 3600 * 24 * 7) {
         $settingBatchTime = UserSettings::EMAIL_SEND_WEEKLY;
     } else {
         if ($currentSetting === 3600 * 24) {
             $settingBatchTime = UserSettings::EMAIL_SEND_DAILY;
         }
     }
     return new TemplateResponse('activity', 'personal', ['activities' => $activities, 'activity_email' => $this->config->getUserValue($this->user, 'settings', 'email', ''), 'setting_batchtime' => $settingBatchTime, 'notify_self' => $this->userSettings->getUserSetting($this->user, 'setting', 'self'), 'notify_selfemail' => $this->userSettings->getUserSetting($this->user, 'setting', 'selfemail'), 'methods' => [IExtension::METHOD_MAIL => $this->l10n->t('Mail'), IExtension::METHOD_STREAM => $this->l10n->t('Stream')]], '');
 }
コード例 #5
0
ファイル: datatest.php プロジェクト: amin-hedayati/activity
 /**
  * @dataProvider dataGetNotificationTypes
  * @param string $typeKey
  */
 public function testGetNotificationTypes($typeKey)
 {
     $this->assertArrayHasKey($typeKey, $this->data->getNotificationTypes($this->activityLanguage));
     // Check cached version aswell
     $this->assertArrayHasKey($typeKey, $this->data->getNotificationTypes($this->activityLanguage));
 }
コード例 #6
0
ファイル: usersettings.php プロジェクト: CDN-Sparks/owncloud
 /**
  * Get a list with enabled notification types for a user
  *
  * @param string	$user	Name of the user
  * @param string	$method	Should be one of 'stream' or 'email'
  * @return array
  */
 public static function getNotificationTypes($user, $method)
 {
     $l = \OC_L10N::get('activity');
     $data = new Data(\OC::$server->getActivityManager());
     $types = $data->getNotificationTypes($l);
     $notificationTypes = array();
     foreach ($types as $type => $desc) {
         if (self::getUserSetting($user, $method, $type)) {
             $notificationTypes[] = $type;
         }
     }
     return $notificationTypes;
 }