mongoid_roles_zhd 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.bundle/config +2 -0
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +17 -0
- data/LICENSE +20 -0
- data/README.textile +99 -0
- data/Rakefile +26 -0
- data/VERSION +1 -0
- data/lib/generators/mongoid/roles/core_ext.rb +11 -0
- data/lib/generators/mongoid/roles/roles_generator.rb +173 -0
- data/lib/generators/mongoid/roles/templates/role.rb +8 -0
- data/lib/mongoid_roles.rb +10 -0
- data/lib/mongoid_roles/base.rb +91 -0
- data/lib/mongoid_roles/base_role.rb +27 -0
- data/lib/mongoid_roles/embedded_role.rb +24 -0
- data/lib/mongoid_roles/namespaces.rb +12 -0
- data/lib/mongoid_roles/role.rb +10 -0
- data/lib/mongoid_roles/strategy.rb +15 -0
- data/lib/mongoid_roles/strategy/multi.rb +59 -0
- data/lib/mongoid_roles/strategy/multi/embed_many_roles.rb +124 -0
- data/lib/mongoid_roles/strategy/multi/many_roles.rb +83 -0
- data/lib/mongoid_roles/strategy/multi/role_strings.rb +54 -0
- data/lib/mongoid_roles/strategy/multi/roles_mask.rb +130 -0
- data/lib/mongoid_roles/strategy/shared.rb +29 -0
- data/lib/mongoid_roles/strategy/single.rb +34 -0
- data/lib/mongoid_roles/strategy/single/admin_flag.rb +55 -0
- data/lib/mongoid_roles/strategy/single/embed_one_role.rb +83 -0
- data/lib/mongoid_roles/strategy/single/one_role.rb +66 -0
- data/lib/mongoid_roles/strategy/single/role_string.rb +61 -0
- data/mongoid_roles.gemspec +125 -0
- data/sandbox/roles_assign.rb +54 -0
- data/sandbox/single_role.rb +82 -0
- data/sandbox/test.rb +47 -0
- data/sandbox/test_query.rb +49 -0
- data/spec/generator_spec_helper.rb +12 -0
- data/spec/mongoid_roles/generators/roles_generator_spec.rb +67 -0
- data/spec/mongoid_roles/strategy/api_examples.rb +200 -0
- data/spec/mongoid_roles/strategy/multi/embed_many_roles_spec.rb +15 -0
- data/spec/mongoid_roles/strategy/multi/many_roles_old_spec.rb +22 -0
- data/spec/mongoid_roles/strategy/multi/many_roles_spec.rb +19 -0
- data/spec/mongoid_roles/strategy/multi/role_strings_spec.rb +16 -0
- data/spec/mongoid_roles/strategy/multi/roles_mask_spec.rb +20 -0
- data/spec/mongoid_roles/strategy/single/admin_flag_spec.rb +18 -0
- data/spec/mongoid_roles/strategy/single/embed_one_role_spec.rb +18 -0
- data/spec/mongoid_roles/strategy/single/one_role_spec.rb +18 -0
- data/spec/mongoid_roles/strategy/single/role_string_spec.rb +18 -0
- data/spec/mongoid_roles/strategy/user_setup.rb +13 -0
- data/spec/spec_helper.rb +15 -0
- data/tmp/rails/app/models/user.rb +8 -0
- data/tmp/rails/config/routes.rb +2 -0
- metadata +256 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
Mongoid.configure do |config|
|
4
|
+
config.master = Mongo::Connection.new.db('testing')
|
5
|
+
end
|
6
|
+
|
7
|
+
Mongoid.database.collections.each do |coll|
|
8
|
+
coll.remove
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
class Role
|
13
|
+
include Mongoid::Document
|
14
|
+
field :name, :type => String
|
15
|
+
|
16
|
+
class << self
|
17
|
+
def find_roles(*role_names)
|
18
|
+
where(:name.in => role_names.flatten).to_a #.map(&:_id)
|
19
|
+
end
|
20
|
+
alias_method :find_role, :find_roles
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module Blip
|
25
|
+
def self.included(base)
|
26
|
+
base.extend ClassMethods
|
27
|
+
end
|
28
|
+
|
29
|
+
module ClassMethods
|
30
|
+
def do_it
|
31
|
+
instance_eval "references_many :many_roles, :stored_as => :array, :class_name => 'Role'"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class User
|
37
|
+
include Mongoid::Document
|
38
|
+
include Blip
|
39
|
+
field :name, :type => String
|
40
|
+
|
41
|
+
do_it
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
Role.create :name => 'guest'
|
46
|
+
Role.create :name => 'admin'
|
47
|
+
|
48
|
+
user = User.create :name => 'Kristian'
|
49
|
+
|
50
|
+
user.many_roles << Role.find_role(:guest)
|
51
|
+
user.many_roles << Role.find_role(:admin)
|
52
|
+
|
53
|
+
puts user.many_roles.inspect
|
54
|
+
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
Mongoid.configure do |config|
|
4
|
+
config.master = Mongo::Connection.new.db('testing')
|
5
|
+
end
|
6
|
+
|
7
|
+
Mongoid.database.collections.each do |coll|
|
8
|
+
coll.remove
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
class Role
|
13
|
+
include Mongoid::Document
|
14
|
+
field :name, :type => String
|
15
|
+
references_many :users #one_role, :class_name => 'Role'
|
16
|
+
|
17
|
+
class << self
|
18
|
+
def find_roles(*role_names)
|
19
|
+
where(:name.in => role_names.flatten).to_a #.map(&:_id)
|
20
|
+
end
|
21
|
+
alias_method :find_role, :find_roles
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
module Blip
|
26
|
+
def self.included(base)
|
27
|
+
base.extend ClassMethods
|
28
|
+
end
|
29
|
+
|
30
|
+
module ClassMethods
|
31
|
+
def do_it
|
32
|
+
instance_eval "references_one :role" # :class_name => 'Role'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class User
|
38
|
+
include Mongoid::Document
|
39
|
+
# include Blip
|
40
|
+
field :name, :type => String
|
41
|
+
referenced_in :one_role, :class_name => 'Role'
|
42
|
+
|
43
|
+
# do_it
|
44
|
+
end
|
45
|
+
|
46
|
+
user = User.create :name => 'Sandy'
|
47
|
+
user2 = User.create :name => 'Mike'
|
48
|
+
role = Role.create :name => 'Guest'
|
49
|
+
role2 = Role.create :name => 'Admin'
|
50
|
+
|
51
|
+
user.save
|
52
|
+
user2.save
|
53
|
+
|
54
|
+
user.one_role = role2 #<< [role, role2]
|
55
|
+
role.users << [user, user2]
|
56
|
+
user2.one_role = role
|
57
|
+
|
58
|
+
# role.users << user
|
59
|
+
# role.users << user2
|
60
|
+
|
61
|
+
role.save
|
62
|
+
|
63
|
+
puts "user: #{user.inspect}"
|
64
|
+
puts "user2 #{user2.inspect}"
|
65
|
+
puts "role: #{role.inspect}"
|
66
|
+
puts "role users: #{role.users.to_a.inspect}"
|
67
|
+
|
68
|
+
|
69
|
+
# Role.create :name => 'guest'
|
70
|
+
# Role.create :name => 'admin'
|
71
|
+
#
|
72
|
+
# user = User.create :name => 'Kristian'
|
73
|
+
#
|
74
|
+
#
|
75
|
+
# user.role.create :name => :guest
|
76
|
+
# user.save
|
77
|
+
|
78
|
+
# user.role = Role.find_role(:guest).first
|
79
|
+
# user.save
|
80
|
+
|
81
|
+
|
82
|
+
|
data/sandbox/test.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
Mongoid.configure do |config|
|
4
|
+
config.master = Mongo::Connection.new.db('testing')
|
5
|
+
end
|
6
|
+
|
7
|
+
Mongoid.database.collections.each do |coll|
|
8
|
+
coll.remove
|
9
|
+
end
|
10
|
+
|
11
|
+
class User
|
12
|
+
include Mongoid::Document
|
13
|
+
field :name
|
14
|
+
references_many :roles, :stored_as => :array
|
15
|
+
|
16
|
+
def self.find_roles *ids
|
17
|
+
arr_ids = ids.flatten
|
18
|
+
all.to_a.select do |user|
|
19
|
+
user.roles.to_a.any? do |role|
|
20
|
+
arr_ids.include?(role._id)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.get_roles(*ids)
|
26
|
+
arr = ids.flatten
|
27
|
+
criteria.in(:role_ids => arr).to_a
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
class Role
|
33
|
+
include Mongoid::Document
|
34
|
+
field :name
|
35
|
+
end
|
36
|
+
|
37
|
+
user = User.create(:name => 'Kristian')
|
38
|
+
user.roles.create(:name => 'guest')
|
39
|
+
user.save
|
40
|
+
#
|
41
|
+
puts "user roles: #{User.first.roles.map(&:_id)}"
|
42
|
+
|
43
|
+
role_id = user.roles.to_a.first._id
|
44
|
+
|
45
|
+
p role_id
|
46
|
+
p User.find_roles role_id
|
47
|
+
p User.get_roles role_id
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
Mongoid.configure do |config|
|
4
|
+
config.master = Mongo::Connection.new.db('testing')
|
5
|
+
end
|
6
|
+
|
7
|
+
Mongoid.database.collections.each do |coll|
|
8
|
+
coll.remove
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
class User
|
13
|
+
include Mongoid::Document
|
14
|
+
|
15
|
+
field :username, :type => String
|
16
|
+
field :email, :type => String
|
17
|
+
|
18
|
+
def self.find_record(login)
|
19
|
+
found = where(:username => login).to_a
|
20
|
+
found = where(:email => login).to_a if found.empty?
|
21
|
+
found
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.find_record_generic(attributes)
|
25
|
+
where(attributes).first
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.find_record_alt(login)
|
29
|
+
where("function() {return this.username == '#{login}' || this.email == '#{login}'}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
User.create :username => 'guest', :email => 'guest@email.com'
|
34
|
+
User.create :username => 'admin', :email => 'admin@email.com'
|
35
|
+
User.create :username => 'blip', :email => 'guest@email.com'
|
36
|
+
User.create :username => 'blip', :email => 'guest@cool.com'
|
37
|
+
|
38
|
+
puts User.all
|
39
|
+
|
40
|
+
puts "Found match 'blip'"
|
41
|
+
|
42
|
+
# puts User.find_record('blip').first.inspect
|
43
|
+
puts User.find_record_alt('blip').first.inspect
|
44
|
+
|
45
|
+
# puts User.find_record_generic(:username => 'blip')
|
46
|
+
|
47
|
+
puts "Found match 'guest@email.com'"
|
48
|
+
|
49
|
+
puts User.find_record('guest@email.com').first.inspect
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'rails_artifactor'
|
3
|
+
require 'generator-spec'
|
4
|
+
require 'roles_generic'
|
5
|
+
|
6
|
+
RSpec::Generator.configure do |config|
|
7
|
+
config.debug = false
|
8
|
+
config.remove_temp_dir = false # true
|
9
|
+
config.default_rails_root(__FILE__)
|
10
|
+
config.lib = File.dirname(__FILE__) + '/../lib'
|
11
|
+
config.logger = :stdout
|
12
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'generator_spec_helper'
|
2
|
+
# require_generator :mongoid => :roles
|
3
|
+
|
4
|
+
require 'generators/mongoid/roles/roles_generator'
|
5
|
+
|
6
|
+
# root_dir = RailsAssist::Directory.rails_root
|
7
|
+
root_dir = File.join(Rails.application.config.root_dir, 'rails')
|
8
|
+
|
9
|
+
describe 'role strategy generator: admin_flag' do
|
10
|
+
describe 'ORM: mongoid' do
|
11
|
+
use_orm :mongoid
|
12
|
+
|
13
|
+
before :each do
|
14
|
+
setup_generator 'mongoid_roles_generator' do
|
15
|
+
tests Mongoid::Generators::RolesGenerator
|
16
|
+
end
|
17
|
+
remove_model :user
|
18
|
+
end
|
19
|
+
|
20
|
+
after :each do
|
21
|
+
# remove_model :user
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should configure 'admin_flag' strategy" do
|
25
|
+
create_model :user do
|
26
|
+
'# content'
|
27
|
+
end
|
28
|
+
|
29
|
+
with_generator do |g|
|
30
|
+
arguments = "User --strategy admin_flag --roles admin user"
|
31
|
+
puts "arguments: #{arguments}"
|
32
|
+
g.run_generator arguments.args
|
33
|
+
root_dir.should have_model_file :user do |clazz|
|
34
|
+
clazz.should include_module 'Mongoid::Document'
|
35
|
+
clazz.should include_module 'Mongoid::Roles'
|
36
|
+
puts "clazz: #{clazz}"
|
37
|
+
clazz.should have_call :valid_roles_are, :args => ':admin, :guest, :user'
|
38
|
+
clazz.should have_call :strategy, :args => ":admin_flag"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should configure 'one_role' strategy" do
|
44
|
+
create_model :user do
|
45
|
+
'# content'
|
46
|
+
end
|
47
|
+
# puts read_model :user
|
48
|
+
|
49
|
+
with_generator do |g|
|
50
|
+
arguments = "User --strategy one_role --roles admin user"
|
51
|
+
puts "arguments: #{arguments}"
|
52
|
+
g.run_generator arguments.args
|
53
|
+
|
54
|
+
# puts read_model :user
|
55
|
+
|
56
|
+
root_dir.should have_model_file :user do |clazz|
|
57
|
+
clazz.should include_module 'Mongoid::Document'
|
58
|
+
clazz.should include_module 'Mongoid::Roles'
|
59
|
+
puts "clazz: #{clazz}"
|
60
|
+
clazz.should have_call :valid_roles_are, :args => ':admin, :guest, :user'
|
61
|
+
clazz.should have_call :strategy, :args => ":one_role"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
@@ -0,0 +1,200 @@
|
|
1
|
+
describe "Roles for Mongoid: #{api_name}" do
|
2
|
+
require "mongoid_roles/strategy/user_setup.rb"
|
3
|
+
|
4
|
+
before do
|
5
|
+
default_user_setup
|
6
|
+
end
|
7
|
+
|
8
|
+
describe '#in_role' do
|
9
|
+
it "should return first user matching role" do
|
10
|
+
if User.respond_to? :in_role
|
11
|
+
User.in_role(:guest).first.name.should == 'Guest user'
|
12
|
+
User.in_role(:admin).first.name.should == 'Admin user'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#in_any_role' do
|
18
|
+
it "should return first user matching role" do
|
19
|
+
if User.respond_to? :in_roles
|
20
|
+
User.in_any_role(:guest, :user).first.name.should == 'Guest user'
|
21
|
+
User.in_any_role(:admin, :guest).should be_empty
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should be true that a User that includes Roles::Generic has a complete Roles::Generic interface" do
|
27
|
+
# mutation API
|
28
|
+
[:roles=, :role=, :add_roles, :add_role, :remove_role, :remove_roles, :exchange_roles, :exchange_role].each do |api_method|
|
29
|
+
@admin_user.respond_to?(api_method).should be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
# inspection API
|
33
|
+
[:valid_role?, :valid_roles?, :has_roles?, :has_role?, :has?, :is?, :roles, :roles_list, :admin?].each do |api_method|
|
34
|
+
@admin_user.respond_to?(api_method).should be_true
|
35
|
+
end
|
36
|
+
|
37
|
+
# class method API
|
38
|
+
[:valid_role?, :valid_roles?, :valid_roles].each do |class_api_method|
|
39
|
+
@admin_user.class.respond_to?(class_api_method).should be_true
|
40
|
+
end
|
41
|
+
end
|
42
|
+
#
|
43
|
+
describe '#valid_role?' do
|
44
|
+
it "should be true that the admin user has a valid role of :guest" do
|
45
|
+
# @admin_user.valid_role?(:guest).should be_true
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should be true that the User class has a valid role of :guest" do
|
49
|
+
# User.valid_role?(:guest).should be_true
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#valid_roles' do
|
54
|
+
it "should be true that the admin user has a valid role of :guest" do
|
55
|
+
# @admin_user.valid_roles.should include(:guest, :admin)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be true that the User class has a valid role of :guest" do
|
59
|
+
User.valid_roles.should include(:guest, :admin)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#valid_roles?' do
|
64
|
+
it "should be true that the admin user has a valid role of :guest" do
|
65
|
+
@admin_user.valid_roles?(:guest, :admin).should be_true
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should be true that the User class has a valid role of :guest" do
|
69
|
+
User.valid_roles?(:guest, :admin).should be_true
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe '#has_role?' do
|
74
|
+
it "should have admin user role to :admin and not to :user" do
|
75
|
+
@admin_user.has_role?(:user).should be_false
|
76
|
+
@admin_user.has_role?(:admin).should be_true
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should be true that guest user has role :guest and not :admin" do
|
80
|
+
@guest_user.has_role?(:guest).should be_true
|
81
|
+
@guest_user.has_role?(:admin).should be_false
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe '#has?' do
|
86
|
+
it "should be true that the admin_user has the :admin role" do
|
87
|
+
@admin_user.has?(:admin).should be_true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should NOT be true that the admin_user has the :admin role" do
|
91
|
+
@guest_user.has?(:admin).should be_false
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe '#has_roles?' do
|
96
|
+
it "should be true that the admin_user has the roles :admin" do
|
97
|
+
@admin_user.has_roles?(:admin).should be_true
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should NOT be true that the user has the roles :admin" do
|
101
|
+
@guest_user.has_roles?(:admin).should be_false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe '#roles_list' do
|
106
|
+
it "should be true that the first role of admin_user is the :admin role" do
|
107
|
+
@admin_user.roles_list.should include(:admin)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should be true that the first role of admin_user is the :user role" do
|
111
|
+
case @normal_user.class.role_strategy.multiplicity
|
112
|
+
when :single
|
113
|
+
@normal_user.roles_list.should include(:guest)
|
114
|
+
# @normal_user.roles_list.should include(:user)
|
115
|
+
when :multi
|
116
|
+
@normal_user.roles_list.should include(:user, :guest)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe '#roles' do
|
122
|
+
it "should be true that the roles of admin_user is an array with the role :admin" do
|
123
|
+
roles = @admin_user.roles
|
124
|
+
if defined?(Role) && roles.kind_of?(Role)
|
125
|
+
roles.name.to_sym.should == :admin
|
126
|
+
elsif roles.kind_of? Array
|
127
|
+
if @normal_user.class.role_strategy.type == :complex
|
128
|
+
roles.first.name.to_sym.should == :admin
|
129
|
+
end
|
130
|
+
if @normal_user.class.role_strategy.name == :admin_flag
|
131
|
+
roles.first.should == true
|
132
|
+
end
|
133
|
+
else
|
134
|
+
roles.to_sym.should == :admin
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe '#admin?' do
|
140
|
+
it "should be true that admin_user is in the :admin role" do
|
141
|
+
@admin_user.admin?.should be_true
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should NOT be true that the user is in the :admin role" do
|
145
|
+
@guest_user.admin?.should be_false
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
describe '#is?' do
|
150
|
+
it "should be true that admin_user is in the :admin role" do
|
151
|
+
@admin_user.is?(:admin).should be_true
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should NOT be true that the user is in the :admin role" do
|
155
|
+
@guest_user.is?(:admin).should be_false
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe '#roles=' do
|
160
|
+
it "should set user role to :admin" do
|
161
|
+
@guest_user.roles = :admin
|
162
|
+
@guest_user.has_role?(:admin).should be_true
|
163
|
+
@guest_user.roles = :guest
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
describe '#exchange_roles' do
|
168
|
+
it "should exchange user role :user with role :admin" do
|
169
|
+
@guest_user.exchange_role :guest, :with => :admin
|
170
|
+
@guest_user.has?(:guest).should be_false
|
171
|
+
@guest_user.has?(:admin).should be_true
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should exchange user role :admin with roles :user and :guest" do
|
175
|
+
case @admin_user.class.role_strategy.multiplicity
|
176
|
+
when :single
|
177
|
+
lambda { @admin_user.exchange_role :admin, :with => [:user, :guest] }.should raise_error(ArgumentError)
|
178
|
+
when :multi
|
179
|
+
@admin_user.exchange_role :admin, :with => [:user, :guest]
|
180
|
+
@admin_user.has_role?(:user).should be_true
|
181
|
+
@admin_user.has_role?(:guest).should be_true
|
182
|
+
@admin_user.has?(:admin).should be_false
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe '#remove_roles' do
|
188
|
+
it "should remove user role :admin using #remove_roles" do
|
189
|
+
@admin_user.remove_roles :admin
|
190
|
+
@admin_user.has_role?(:admin).should_not be_true
|
191
|
+
end
|
192
|
+
|
193
|
+
it "should remove user role :admin using #remove_role" do
|
194
|
+
@guest_user.add_role :admin
|
195
|
+
@guest_user.has_role?(:admin).should be_true
|
196
|
+
@guest_user.remove_role :admin
|
197
|
+
@guest_user.has_role?(:admin).should_not be_true
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|