Merge b668120883 into 9ff8becaf6
This commit is contained in:
commit
a5ef222378
6 changed files with 13 additions and 8 deletions
|
|
@ -67,7 +67,7 @@ class Ability
|
|||
|
||||
signed_in(user) # Inherit abilities from signed user
|
||||
# User with role
|
||||
can :manage, User if user.is_admin # ??? || (user.has_role? :organizer, :any)
|
||||
can :manage, User if user.is_admin || (user.has_role? :organizer, :any)
|
||||
can [:new, :create], Conference if user.is_admin || (user.has_role? :organizer, :any)
|
||||
can [:index, :show, :gallery_photos], Conference
|
||||
can :manage, Conference, id: conf_ids_for_organizer
|
||||
|
|
|
|||
|
|
@ -59,8 +59,7 @@ class User < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def setup_role
|
||||
self.is_admin = true if User.count == 0
|
||||
roles << Role.where(name: 'Admin') if User.count == 1
|
||||
self.is_admin = true if User.count == 1
|
||||
end
|
||||
|
||||
# Gets the roles of the user, groups them by role.name and returns the resource(s) of each role
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ describe Admin::ConferenceController do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let(:conference) { create(:conference) }
|
||||
let!(:first_user) { create(:user) }
|
||||
let!(:deleted_user) { create(:deleted_user) }
|
||||
let!(:admin_user) { create(:user) } # Second user. Automatically becomes admin.
|
||||
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
||||
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
|
|
|
|||
|
|
@ -22,5 +22,9 @@ FactoryGirl.define do
|
|||
factory :organizer do
|
||||
after(:create) { |user| user.role_ids = create(:organizer_role).id }
|
||||
end
|
||||
|
||||
factory :deleted_user do
|
||||
after(:create) { |user| user.email = 'deleted@localhost.osem', user.name = 'User deleted', user.biography = 'Data is no longer available for deleted user.' }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ require 'cancan/matchers'
|
|||
describe 'User' do
|
||||
describe 'Abilities' do
|
||||
subject(:ability){ Ability.new(user) }
|
||||
let!(:first_user) { create(:user) } # automatically becomes admin
|
||||
let!(:deleted_user) { create(:deleted_user) }
|
||||
let!(:admin_user) { create(:user) } # Second user. Automatically becomes admin.
|
||||
let(:user){ nil }
|
||||
let(:conference_not_public) { create(:conference, splashpage: create(:splashpage, public: false)) }
|
||||
let(:conference_public) { create(:conference, splashpage: create(:splashpage, public: true)) }
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ require 'spec_helper'
|
|||
describe User do
|
||||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:user_admin) { create(:user) }
|
||||
let!(:admin) { create(:admin) }
|
||||
let!(:deleted_user) { create(:deleted_user) }
|
||||
let!(:admin_user) { create(:user) } # Second user. Automatically becomes admin.
|
||||
let!(:participant) { create(:user) }
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
|
|
@ -13,7 +13,7 @@ describe User do
|
|||
let!(:user) { create(:user) }
|
||||
|
||||
it 'returns the correct role' do
|
||||
expect(user_admin.is_admin).to eq(true)
|
||||
expect(admin_user.is_admin).to eq(true)
|
||||
expect(organizer.roles.first).to eq(organizer_role)
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue