Skip to content

Commit

Permalink
Display group email to logged-in users
Browse files Browse the repository at this point in the history
This facilitates collaboration.
  • Loading branch information
Dany Marcoux committed Jan 23, 2023
1 parent d9a7e03 commit 2f30e8b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 5 deletions.
4 changes: 4 additions & 0 deletions src/api/app/policies/group_policy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@ def update?
def destroy?
update?
end

def display_email?
!user.is_nobody?
end
end
19 changes: 14 additions & 5 deletions src/api/app/views/webui/groups/_group_members.html.haml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
- write_access = policy(group).update?
- display_group_email = policy(group).display_email? && group.email.present?

- if group.users.blank?
%p
Expand Down Expand Up @@ -33,13 +34,21 @@
Maintainer
%i.fas.fa-spinner.fa-spin.d-none

- if write_access
- if write_access || display_group_email
.pt-4
%ul.list-inline
%li.list-inline-item
= link_to('#', class: 'nav-link', title: 'Add Member', data: { 'bs-toggle': 'modal', 'bs-target': '#add-group-user-modal' }) do
%i.fas.fa-plus-circle.text-primary
Add Member
- if write_access
%li.list-inline-item
= link_to('#', class: 'nav-link', title: 'Add Member', data: { 'bs-toggle': 'modal', 'bs-target': '#add-group-user-modal' }) do
%i.fas.fa-plus-circle.text-primary
Add Member
- if display_group_email
%li.list-inline-item
= mail_to(group.email, class: 'nav-link') do
%i.far.fa-envelope.text-secondary{ title: "Send email to #{group}" }
Send email to group
%em= group.title

= render partial: 'add_group_user_modal', locals: { group: group }

= render DeleteConfirmationDialogComponent.new(modal_id: 'delete-group-members-modal',
Expand Down
9 changes: 9 additions & 0 deletions src/api/spec/policies/group_policy_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

RSpec.describe GroupPolicy do
let(:group) { create(:group) }
let(:anonymous_user) { create(:user_nobody) }
let(:user) { create(:confirmed_user) }
let(:admin) { create(:admin_user) }
let(:group_member) { create(:groups_user, group: group).user }
Expand All @@ -24,5 +25,13 @@
it { is_expected.to permit(group_maintainer, group) }
it { is_expected.to permit(admin, group) }
end

permissions :display_email? do
it { is_expected.not_to permit(anonymous_user, group) }
it { is_expected.to permit(user, group) }
it { is_expected.to permit(group_member, group) }
it { is_expected.to permit(group_maintainer, group) }
it { is_expected.to permit(admin, group) }
end
# rubocop:enable RSpec/RepeatedExample
end

0 comments on commit 2f30e8b

Please sign in to comment.