diff --git a/app/controllers/admin/admin_invitations_controller.rb b/app/controllers/admin/admin_invitations_controller.rb index 438eaed355f..7ff8181d40d 100644 --- a/app/controllers/admin/admin_invitations_controller.rb +++ b/app/controllers/admin/admin_invitations_controller.rb @@ -1,19 +1,19 @@ class Admin::AdminInvitationsController < Admin::BaseController - def index + authorize Invitation end def create - @invitation = current_admin.invitations.new(invitation_params) + @invitation = authorize current_admin.invitations.new(invitation_params) if @invitation.invitee_email.blank? - flash[:error] = t('no_email', default: "Please enter an email address.") - render action: 'index' + flash[:error] = t(".no_email") + render :index elsif @invitation.save - flash[:notice] = t('sent', default: "An invitation was sent to %{email_address}", email_address: @invitation.invitee_email) + flash[:notice] = t(".sent", email_address: @invitation.invitee_email) redirect_to admin_invitations_path else - render action: 'index' + render :index end end @@ -35,7 +35,7 @@ def grant_invites_to_users else Invitation.grant_empty(invitation_params[:number_of_invites].to_i) end - flash[:notice] = t('invites_created', default: 'Invitations successfully created.') + flash[:notice] = t(".invites_created") redirect_to admin_invitations_path end diff --git a/app/policies/invitation_policy.rb b/app/policies/invitation_policy.rb index 7f82d371a8a..1542ec95caf 100644 --- a/app/policies/invitation_policy.rb +++ b/app/policies/invitation_policy.rb @@ -1,6 +1,7 @@ class InvitationPolicy < ApplicationPolicy EXTRA_INFO_ROLES = %w[superadmin open_doors policy_and_abuse support tag_wrangling].freeze FIND_ROLES = %w[superadmin open_doors policy_and_abuse support].freeze + CREATE_ROLES = %w[superadmin policy_and_abuse support tag_wrangling].freeze INVITE_FROM_QUEUE_ROLES = %w[superadmin policy_and_abuse].freeze INVITE_ALL_ROLES = %w[superadmin].freeze @@ -8,6 +9,14 @@ def access_invitee_details? user_has_roles?(EXTRA_INFO_ROLES) end + def index? + user_has_roles?(FIND_ROLES | CREATE_ROLES) + end + + def create? + user_has_roles?(CREATE_ROLES) + end + def find? user_has_roles?(FIND_ROLES) end diff --git a/app/views/admin/_header.html.erb b/app/views/admin/_header.html.erb index 8c4e3fc15d5..bf8c40c2e96 100644 --- a/app/views/admin/_header.html.erb +++ b/app/views/admin/_header.html.erb @@ -10,18 +10,20 @@ <% end %> - + <% if policy(Invitation).index? %> + + <% end %>