Merge pull request #487 from differentreality/user_is_admin
Make second user admin
This commit is contained in:
commit
08a47339a4
4 changed files with 30 additions and 11 deletions
|
|
@ -114,8 +114,9 @@ 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
|
||||
if User.count == 1 && User.first.email == 'deleted@localhost.osem'
|
||||
self.is_admin = true
|
||||
end
|
||||
end
|
||||
|
||||
# Gets the roles of the user, groups them by role.name and returns the resource(s) of each role
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ describe Admin::UsersController do
|
|||
it 'populates an array of users' do
|
||||
user1 = create(:user, email: 'user1@email.osem')
|
||||
user2 = create(:user, email: 'user2@email.osem')
|
||||
user_deleted = User.find_by(name: 'User deleted')
|
||||
get :index
|
||||
expect(assigns(:users)).to match_array([user, admin, user1, user2])
|
||||
expect(assigns(:users)).to match_array([user_deleted, user, admin, user1, user2])
|
||||
end
|
||||
it 'renders index template' do
|
||||
get :index
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ 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!(:participant) { create(:user) }
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:cfp_role) { create(:cfp_role, resource: conference) }
|
||||
|
|
@ -47,14 +45,32 @@ describe User do
|
|||
it_behaves_like '#role?', :organizer, 'participant', false
|
||||
end
|
||||
|
||||
context 'admin' do
|
||||
it 'assigns second user admin role' do
|
||||
expect(User.second.is_admin).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'participant' do
|
||||
it_behaves_like '#role?', :user, 'adMin', false
|
||||
end
|
||||
end
|
||||
|
||||
describe 'assigns admin attribute' do
|
||||
it 'to second user when first user is deleted_user' do
|
||||
DatabaseCleaner.clean_with(:truncation)
|
||||
|
||||
deleted_user = create(:user, email: 'deleted@localhost.osem', name: 'User deleted')
|
||||
expect(deleted_user.is_admin).to be false
|
||||
|
||||
user_after_deleted = create(:user)
|
||||
expect(user_after_deleted.is_admin).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe 'does not assign admin attribute' do
|
||||
it 'when first user is not deleted_user' do
|
||||
DatabaseCleaner.clean_with(:truncation)
|
||||
|
||||
first_user = create(:user)
|
||||
expect(first_user.is_admin).to be false
|
||||
|
||||
second_user = create(:user)
|
||||
expect(second_user.is_admin).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ RSpec.configure do |config|
|
|||
|
||||
config.around(:each) do |example|
|
||||
DatabaseCleaner.cleaning do
|
||||
load "#{Rails.root}/db/seeds.rb"
|
||||
example.run
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue