Add super_admin? method to User
This commit is contained in:
parent
7f9e643915
commit
9264297a51
2 changed files with 40 additions and 0 deletions
|
@ -47,6 +47,15 @@ class User < ApplicationRecord
|
|||
self
|
||||
end
|
||||
|
||||
#
|
||||
# Is this user a super_admin?
|
||||
#
|
||||
# @return [boolean] True if the user is, false otherwise
|
||||
#
|
||||
def super_admin?
|
||||
roles.super_admins.any?
|
||||
end
|
||||
|
||||
# This creates the user in the normal way, but also sends the devise email confirmation email, which we don't want to send to np admins or anyone else
|
||||
def self.register_donor!(params)
|
||||
u = User.create!(params)
|
||||
|
|
31
spec/models/user_spec.rb
Normal file
31
spec/models/user_spec.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
||||
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe User, type: :model do
|
||||
describe 'super_admin?' do
|
||||
let(:super_admin) {
|
||||
sa = create(:user)
|
||||
|
||||
sa.roles.create(name: 'super_admin')
|
||||
sa
|
||||
}
|
||||
|
||||
let(:not_super_admin) {
|
||||
sa = create(:user)
|
||||
sa.roles.create(name: 'nonprofit_admin')
|
||||
sa.roles.create(name: 'nonprofit_associate')
|
||||
sa
|
||||
}
|
||||
|
||||
it 'returns true for super admin' do
|
||||
expect(super_admin).to be_super_admin
|
||||
end
|
||||
|
||||
it 'returns false for not super admin' do
|
||||
expect(not_super_admin).to_not be_super_admin
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue