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
|
end
|
||||||
|
|
||||||
def setup_role
|
def setup_role
|
||||||
self.is_admin = true if User.count == 0
|
if User.count == 1 && User.first.email == 'deleted@localhost.osem'
|
||||||
roles << Role.where(name: 'Admin') if User.count == 1
|
self.is_admin = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Gets the roles of the user, groups them by role.name and returns the resource(s) of each role
|
# 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
|
it 'populates an array of users' do
|
||||||
user1 = create(:user, email: 'user1@email.osem')
|
user1 = create(:user, email: 'user1@email.osem')
|
||||||
user2 = create(:user, email: 'user2@email.osem')
|
user2 = create(:user, email: 'user2@email.osem')
|
||||||
|
user_deleted = User.find_by(name: 'User deleted')
|
||||||
get :index
|
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
|
end
|
||||||
it 'renders index template' do
|
it 'renders index template' do
|
||||||
get :index
|
get :index
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,6 @@ describe User do
|
||||||
|
|
||||||
# It is necessary to use bang version of let to build roles before user
|
# It is necessary to use bang version of let to build roles before user
|
||||||
let!(:user_admin) { create(:user) }
|
let!(:user_admin) { create(:user) }
|
||||||
let!(:admin) { create(:admin) }
|
|
||||||
let!(:participant) { create(:user) }
|
|
||||||
let!(:conference) { create(:conference) }
|
let!(:conference) { create(:conference) }
|
||||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||||
let!(:cfp_role) { create(:cfp_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
|
it_behaves_like '#role?', :organizer, 'participant', false
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'admin' do
|
|
||||||
it 'assigns second user admin role' do
|
|
||||||
expect(User.second.is_admin).to be true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'participant' do
|
context 'participant' do
|
||||||
it_behaves_like '#role?', :user, 'adMin', false
|
it_behaves_like '#role?', :user, 'adMin', false
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ RSpec.configure do |config|
|
||||||
|
|
||||||
config.around(:each) do |example|
|
config.around(:each) do |example|
|
||||||
DatabaseCleaner.cleaning do
|
DatabaseCleaner.cleaning do
|
||||||
|
load "#{Rails.root}/db/seeds.rb"
|
||||||
example.run
|
example.run
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue