Module: PlanMyStuff::IssueExtractions::Viewers
- Included in:
- PlanMyStuff::Issue
- Defined in:
- lib/plan_my_stuff/issue_extractions/viewers.rb
Instance Method Summary collapse
-
#add_viewers!(user_ids:, user: nil) ⇒ Array<Integer>
Adds user IDs to this issue’s visibility allowlist (non-support users whose ID is in the allowlist can see internal comments).
-
#remove_viewers!(user_ids:, user: nil) ⇒ Array<Integer>
Removes user IDs from this issue’s visibility allowlist.
-
#visible_to?(user) ⇒ Boolean
Delegates visibility check to metadata.
Instance Method Details
#add_viewers!(user_ids:, user: nil) ⇒ Array<Integer>
Adds user IDs to this issue’s visibility allowlist (non-support users whose ID is in the allowlist can see internal comments).
Fires plan_my_stuff.issue.viewers_added.
16 17 18 19 20 21 |
# File 'lib/plan_my_stuff/issue_extractions/viewers.rb', line 16 def add_viewers!(user_ids:, user: nil) ids = Array.wrap(user_ids) modify_allowlist! { |allowlist| allowlist | ids } PlanMyStuff::Notifications.instrument('issue.viewers_added', self, user: user, user_ids: ids) .visibility_allowlist end |
#remove_viewers!(user_ids:, user: nil) ⇒ Array<Integer>
Removes user IDs from this issue’s visibility allowlist.
Fires plan_my_stuff.issue.viewers_removed.
32 33 34 35 36 37 |
# File 'lib/plan_my_stuff/issue_extractions/viewers.rb', line 32 def remove_viewers!(user_ids:, user: nil) ids = Array.wrap(user_ids) modify_allowlist! { |allowlist| allowlist - ids } PlanMyStuff::Notifications.instrument('issue.viewers_removed', self, user: user, user_ids: ids) .visibility_allowlist end |
#visible_to?(user) ⇒ Boolean
Delegates visibility check to metadata. Non-PMS issues are always visible.
46 47 48 49 50 51 52 |
# File 'lib/plan_my_stuff/issue_extractions/viewers.rb', line 46 def visible_to?(user) if pms_issue? .visible_to?(user) else PlanMyStuff::UserResolver.support?(PlanMyStuff::UserResolver.resolve(user)) end end |