Update pro dashboard permissions for organization members (#2173)
This commit is contained in:
parent
7f27aa32c7
commit
1b4c50574a
3 changed files with 29 additions and 2 deletions
|
|
@ -12,6 +12,6 @@ class OrganizationPolicy < ApplicationPolicy
|
|||
end
|
||||
|
||||
def pro_org_user?
|
||||
user.has_role?(:pro) && user.org_admin && user.organization_id == record.id
|
||||
user.has_role?(:pro) && user.organization_id == record.id
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -22,13 +22,19 @@
|
|||
<% if @user.has_role? :pro %>
|
||||
<a class="rounded-btn" href="/dashboard/pro">Pro Analytics</a>
|
||||
<% end %>
|
||||
<% if @user.has_role?(:pro) && @user.organization_id %>
|
||||
<a class="rounded-btn" href="/dashboard/pro/org/<%= @user.organization_id %>">Pro Analytics for <%= @user.organization.name %></a>
|
||||
<% end %>
|
||||
</h1>
|
||||
<% elsif @user.org_admin && @user.organization && (params[:which] == "organization_user_followers" || params[:which] == "user_followers") %>
|
||||
<h1>
|
||||
<a href="/dashboard/user_followers" class="rounded-btn <%= "active" if params[:which] == "user_followers" %>">Personal</a>
|
||||
<a href="/dashboard/organization_user_followers" class="rounded-btn <%= "active" if params[:which] == "organization_user_followers" %>"><%= @user.organization.name %> (<%= @user.organization.followers_count %>)</a>
|
||||
<% if @user.has_role? :pro %>
|
||||
<a class="rounded-btn" href="/pro">Pro Analytics</a>
|
||||
<a class="rounded-btn" href="/dashboard/pro">Pro Analytics</a>
|
||||
<% end %>
|
||||
<% if @user.has_role?(:pro) && @user.organization_id %>
|
||||
<a class="rounded-btn" href="/dashboard/pro/org/<%= @user.organization_id %>">Pro Analytics for <%= @user.organization.name %></a>
|
||||
<% end %>
|
||||
</h1>
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ require "rails_helper"
|
|||
RSpec.describe "Dashboards", type: :request do
|
||||
let(:user) { create(:user) }
|
||||
let(:second_user) { create(:user) }
|
||||
let(:org_admin) { create(:user, :org_admin) }
|
||||
let(:super_admin) { create(:user, :super_admin) }
|
||||
let(:article) { create(:article, user_id: user.id) }
|
||||
|
||||
|
|
@ -127,5 +128,25 @@ RSpec.describe "Dashboards", type: :request do
|
|||
expect(response.body).to include("pro")
|
||||
end
|
||||
end
|
||||
|
||||
context "when user has pro permission and is an org admin" do
|
||||
it "shows page properly" do
|
||||
org_admin.add_role(:pro)
|
||||
login_as org_admin
|
||||
get "/dashboard/pro/org/#{org_admin.organization_id}"
|
||||
expect(response.body).to include("pro")
|
||||
end
|
||||
end
|
||||
|
||||
context "when user has pro permission and is an org member" do
|
||||
it "shows page properly" do
|
||||
org = create :organization
|
||||
user.update(organization_id: org.id)
|
||||
user.add_role(:pro)
|
||||
login_as user
|
||||
get "/dashboard/pro/org/#{org.id}"
|
||||
expect(response.body).to include("pro")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue