protected function _getIssueRelatedUsers(Issue $issue, $postedby = null) { $u_id = $postedby instanceof User ? $postedby->getID() : $postedby; $users = $issue->getSubscribers(); foreach ($users as $key => $user) { if ($user->getNotificationSetting(self::NOTIFY_SUBSCRIBED_ISSUES, true, 'mailing')->isOff()) { unset($users[$key]); } if ($user->getNotificationSetting(self::NOTIFY_UPDATED_SELF, true, 'mailing')->isOff() && $user->getID() == $u_id) { unset($users[$key]); } if ($user->getNotificationSetting(self::NOTIFY_ITEM_ONCE, false, 'mailing')->isOn() && $user->getNotificationSetting(self::NOTIFY_ITEM_ONCE . '_issue_' . $issue->getID(), false, 'mailing')->isOn()) { unset($users[$key]); } } return $users; }
protected function _getIssueRelatedUsers(Issue $issue, $postedby = null) { $u_id = $postedby instanceof User ? $postedby->getID() : $postedby; $subscribers = $issue->getSubscribers(); $users = array(); foreach ($subscribers as $user) { $users[$user->getID()] = $user; if ($user->getNotificationSetting(self::NOTIFY_SUBSCRIBED_ISSUES, true, 'mailing')->isOff()) { unset($users[$user->getID()]); } if ($user->getNotificationSetting(self::NOTIFY_UPDATED_SELF, true, 'mailing')->isOff() && $user->getID() == $u_id) { unset($users[$user->getID()]); } if ($user->getNotificationSetting(self::NOTIFY_ITEM_ONCE, false, 'mailing')->isOn() && $user->getNotificationSetting(self::NOTIFY_ITEM_ONCE . '_issue_' . $issue->getID(), false, 'mailing')->isOn()) { unset($users[$user->getID()]); } if ($user->getNotificationSetting(framework\Settings::SETTINGS_USER_NOTIFY_ONLY_IN_BOX_WHEN_ACTIVE, false, 'core')->isOn() && $user->isActive()) { unset($users[$user->getID()]); } } $mentioned_users = $issue->getMentionedUsers(); foreach ($mentioned_users as $user) { $users[$user->getID()] = $user; if ($user->getNotificationSetting(self::NOTIFY_MENTIONED, true, 'mailing')->isOff()) { unset($users[$user->getID()]); } if ($user->getNotificationSetting(self::NOTIFY_ITEM_ONCE, false, 'mailing')->isOn() && $user->getNotificationSetting(self::NOTIFY_ITEM_ONCE . '_issue_' . $issue->getID(), false, 'mailing')->isOn()) { unset($users[$user->getID()]); } if ($user->getNotificationSetting(framework\Settings::SETTINGS_USER_NOTIFY_ONLY_IN_BOX_WHEN_ACTIVE, false, 'core')->isOn() && $user->isActive()) { unset($users[$user->getID()]); } } return $users; }