Merge pull request #487 from differentreality/user_is_admin

Make second user admin
This commit is contained in:
Stella Rouzi 2014-11-12 19:09:00 +02:00
commit 08a47339a4
4 changed files with 30 additions and 11 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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