roles_active_record 0.3.4 → 0.3.5
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/VERSION +1 -1
- data/development.sqlite3 +0 -0
- data/lib/generators/active_record/roles_migration/templates/add_many_roles_strategy.erb +14 -0
- data/lib/generators/active_record/roles_migration/templates/add_one_role_strategy.erb +10 -4
- data/lib/generators/active_record/roles_migration/templates/add_role_string_strategy.erb +2 -2
- data/lib/roles_active_record/role.rb +5 -4
- data/lib/roles_active_record/strategy/multi/many_roles.rb +1 -0
- data/lib/roles_active_record/strategy/single/one_role.rb +1 -0
- data/lib/roles_active_record/strategy/single/role_string.rb +1 -1
- data/roles_active_record.gemspec +12 -6
- data/spec/fixtures/many_roles_setup_unique_check.rb +8 -0
- data/spec/fixtures/one_role_setup_unique_check.rb +8 -0
- data/spec/migrations/one_role/002_add_one_role_strategy.rb +52 -0
- data/spec/roles_active_record/strategy/api_examples.rb +1 -1
- data/spec/roles_active_record/strategy/multi/many_roles_spec.rb +0 -7
- data/spec/roles_active_record/strategy/multi/many_roles_unique_spec.rb +35 -0
- data/spec/roles_active_record/strategy/single/one_role_spec.rb +0 -3
- data/spec/roles_active_record/strategy/single/one_role_unique_spec.rb +31 -0
- data/spec/spec_helper.rb +2 -1
- metadata +13 -7
- data/spec/migrations/one_role/002_create_roles.rb +0 -12
- data/spec/migrations/one_role/003_add_role_to_users.rb +0 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/development.sqlite3
CHANGED
Binary file
|
@@ -4,11 +4,16 @@ class AddManyRolesStrategy < ActiveRecord::Migration
|
|
4
4
|
def up
|
5
5
|
create_roles
|
6
6
|
create_user_roles
|
7
|
+
add_index :roles, :name, :unique => true
|
8
|
+
|
9
|
+
# insert_roles
|
7
10
|
end
|
8
11
|
|
9
12
|
def down
|
10
13
|
drop_roles
|
11
14
|
drop_user_roles
|
15
|
+
|
16
|
+
remove_index :roles, :name
|
12
17
|
end
|
13
18
|
|
14
19
|
protected
|
@@ -36,5 +41,14 @@ class AddManyRolesStrategy < ActiveRecord::Migration
|
|
36
41
|
def drop_roles
|
37
42
|
drop_table :roles
|
38
43
|
end
|
44
|
+
|
45
|
+
def insert_roles
|
46
|
+
<%- roles_to_add.each do |role| -%>
|
47
|
+
begin
|
48
|
+
Role.create(:name => '<%= role %>')
|
49
|
+
rescue
|
50
|
+
end
|
51
|
+
<%- end -%>
|
52
|
+
end
|
39
53
|
end
|
40
54
|
end
|
@@ -3,13 +3,16 @@ class AddOneRoleStrategy < ActiveRecord::Migration
|
|
3
3
|
|
4
4
|
def up
|
5
5
|
create_roles
|
6
|
-
add_user_role
|
7
|
-
|
6
|
+
add_user_role
|
7
|
+
add_index :roles, :name, :unique => true
|
8
|
+
# insert_roles
|
8
9
|
end
|
9
10
|
|
10
11
|
def down
|
11
12
|
drop_roles
|
12
13
|
remove_user_role
|
14
|
+
|
15
|
+
remove_index :roles, :name
|
13
16
|
end
|
14
17
|
|
15
18
|
protected
|
@@ -29,7 +32,7 @@ class AddOneRoleStrategy < ActiveRecord::Migration
|
|
29
32
|
|
30
33
|
def create_roles
|
31
34
|
create_table :roles do |t|
|
32
|
-
t.string :name
|
35
|
+
t.string :name, :null => false
|
33
36
|
t.timestamps
|
34
37
|
end
|
35
38
|
end
|
@@ -40,7 +43,10 @@ class AddOneRoleStrategy < ActiveRecord::Migration
|
|
40
43
|
|
41
44
|
def insert_roles
|
42
45
|
<%- roles_to_add.each do |role| -%>
|
43
|
-
|
46
|
+
begin
|
47
|
+
Role.create(:name => '<%= role %>')
|
48
|
+
rescue
|
49
|
+
end
|
44
50
|
<%- end -%>
|
45
51
|
end
|
46
52
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
class AddRoleStringStrategy < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
change_table :<%= table_name %> do |t|
|
4
|
-
t.string :
|
4
|
+
t.string :role_string, :default => 'guest', :null => false
|
5
5
|
end
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.down
|
9
9
|
change_table :<%= table_name %> do |t|
|
10
|
-
t.remove :
|
10
|
+
t.remove :role_string
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -2,12 +2,13 @@ module Roles::Base
|
|
2
2
|
def valid_roles_are(*role_list)
|
3
3
|
strategy_class.valid_roles = role_list.to_symbols
|
4
4
|
if role_class_name
|
5
|
-
"Create Roles: #{role_list}"
|
6
5
|
role_list.each do |name|
|
7
|
-
|
6
|
+
begin
|
7
|
+
role_class_name.create(:name => name.to_s) # if !role_class_name.where(:name => name.to_s).first
|
8
|
+
rescue
|
9
|
+
puts "Role name: #{name} is a duplicate"
|
10
|
+
end
|
8
11
|
end
|
9
|
-
else
|
10
|
-
"Using Inline roles"
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
data/roles_active_record.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{roles_active_record}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = %q{2010-12-
|
12
|
+
s.date = %q{2010-12-19}
|
13
13
|
s.description = %q{Makes it easy to set a role strategy on your User model in Active Record}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -63,14 +63,15 @@ Gem::Specification.new do |s|
|
|
63
63
|
"sandbox/test.rb",
|
64
64
|
"spec/db/database.yml",
|
65
65
|
"spec/fixtures/many_roles_setup.rb",
|
66
|
+
"spec/fixtures/many_roles_setup_unique_check.rb",
|
66
67
|
"spec/fixtures/one_role_setup.rb",
|
68
|
+
"spec/fixtures/one_role_setup_unique_check.rb",
|
67
69
|
"spec/generator_spec_helper.rb",
|
68
70
|
"spec/migration_spec_helper.rb",
|
69
71
|
"spec/migrations/admin_flag/004_add_admin_flag_to_users.rb",
|
70
72
|
"spec/migrations/many_roles/002_create_roles.rb",
|
71
73
|
"spec/migrations/many_roles/003_create_user_roles.rb",
|
72
|
-
"spec/migrations/one_role/
|
73
|
-
"spec/migrations/one_role/003_add_role_to_users.rb",
|
74
|
+
"spec/migrations/one_role/002_add_one_role_strategy.rb",
|
74
75
|
"spec/migrations/role_string/002_add_role_string_to_users.rb",
|
75
76
|
"spec/migrations/roles_mask/005_add_roles_mask_to_users.rb",
|
76
77
|
"spec/migrations/users/001_create_users.rb",
|
@@ -84,9 +85,11 @@ Gem::Specification.new do |s|
|
|
84
85
|
"spec/roles_active_record/strategy/api.rb",
|
85
86
|
"spec/roles_active_record/strategy/api_examples.rb",
|
86
87
|
"spec/roles_active_record/strategy/multi/many_roles_spec.rb",
|
88
|
+
"spec/roles_active_record/strategy/multi/many_roles_unique_spec.rb",
|
87
89
|
"spec/roles_active_record/strategy/multi/roles_mask_spec.rb",
|
88
90
|
"spec/roles_active_record/strategy/single/admin_flag_spec.rb",
|
89
91
|
"spec/roles_active_record/strategy/single/one_role_spec.rb",
|
92
|
+
"spec/roles_active_record/strategy/single/one_role_unique_spec.rb",
|
90
93
|
"spec/roles_active_record/strategy/single/role_string_spec.rb",
|
91
94
|
"spec/roles_active_record/strategy/user_setup.rb",
|
92
95
|
"spec/spec_helper.rb",
|
@@ -105,14 +108,15 @@ Gem::Specification.new do |s|
|
|
105
108
|
s.summary = %q{Implementation of Roles generic API for Active Record}
|
106
109
|
s.test_files = [
|
107
110
|
"spec/fixtures/many_roles_setup.rb",
|
111
|
+
"spec/fixtures/many_roles_setup_unique_check.rb",
|
108
112
|
"spec/fixtures/one_role_setup.rb",
|
113
|
+
"spec/fixtures/one_role_setup_unique_check.rb",
|
109
114
|
"spec/generator_spec_helper.rb",
|
110
115
|
"spec/migration_spec_helper.rb",
|
111
116
|
"spec/migrations/admin_flag/004_add_admin_flag_to_users.rb",
|
112
117
|
"spec/migrations/many_roles/002_create_roles.rb",
|
113
118
|
"spec/migrations/many_roles/003_create_user_roles.rb",
|
114
|
-
"spec/migrations/one_role/
|
115
|
-
"spec/migrations/one_role/003_add_role_to_users.rb",
|
119
|
+
"spec/migrations/one_role/002_add_one_role_strategy.rb",
|
116
120
|
"spec/migrations/role_string/002_add_role_string_to_users.rb",
|
117
121
|
"spec/migrations/roles_mask/005_add_roles_mask_to_users.rb",
|
118
122
|
"spec/migrations/users/001_create_users.rb",
|
@@ -126,9 +130,11 @@ Gem::Specification.new do |s|
|
|
126
130
|
"spec/roles_active_record/strategy/api.rb",
|
127
131
|
"spec/roles_active_record/strategy/api_examples.rb",
|
128
132
|
"spec/roles_active_record/strategy/multi/many_roles_spec.rb",
|
133
|
+
"spec/roles_active_record/strategy/multi/many_roles_unique_spec.rb",
|
129
134
|
"spec/roles_active_record/strategy/multi/roles_mask_spec.rb",
|
130
135
|
"spec/roles_active_record/strategy/single/admin_flag_spec.rb",
|
131
136
|
"spec/roles_active_record/strategy/single/one_role_spec.rb",
|
137
|
+
"spec/roles_active_record/strategy/single/one_role_unique_spec.rb",
|
132
138
|
"spec/roles_active_record/strategy/single/role_string_spec.rb",
|
133
139
|
"spec/roles_active_record/strategy/user_setup.rb",
|
134
140
|
"spec/spec_helper.rb"
|
@@ -0,0 +1,52 @@
|
|
1
|
+
class AddOneRoleStrategy < ActiveRecord::Migration
|
2
|
+
class << self
|
3
|
+
|
4
|
+
def up
|
5
|
+
create_roles
|
6
|
+
add_user_role
|
7
|
+
add_index :roles, :name, :unique => true
|
8
|
+
# insert_roles
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
drop_roles
|
13
|
+
remove_user_role
|
14
|
+
|
15
|
+
remove_index :roles, :name
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def add_user_role
|
21
|
+
change_table :users do |t|
|
22
|
+
t.integer :role_id
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def remove_user_role
|
27
|
+
change_table :users do |t|
|
28
|
+
t.remove :role_id
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_roles
|
33
|
+
create_table :roles do |t|
|
34
|
+
t.string :name, :null => false
|
35
|
+
t.timestamps
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def drop_roles
|
40
|
+
drop_table :roles
|
41
|
+
end
|
42
|
+
|
43
|
+
def insert_roles
|
44
|
+
roles_to_add.each do |role|
|
45
|
+
begin
|
46
|
+
Role.create(:name => "#{role}") # if !Role.where(:name => name.to_s).first
|
47
|
+
rescue
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,13 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
use_roles_strategy :many_roles
|
3
3
|
|
4
|
-
class User < ActiveRecord::Base
|
5
|
-
include Roles::ActiveRecord
|
6
|
-
|
7
|
-
strategy :many_roles, :default
|
8
|
-
valid_roles_are :admin, :guest, :user
|
9
|
-
end
|
10
|
-
|
11
4
|
def api_migrate
|
12
5
|
migrate('many_roles')
|
13
6
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
use_roles_strategy :many_roles
|
3
|
+
|
4
|
+
def api_migrate
|
5
|
+
migrate('many_roles')
|
6
|
+
end
|
7
|
+
|
8
|
+
def api_fixture
|
9
|
+
load 'fixtures/many_roles_setup_unique_check.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
def api_name
|
13
|
+
:many_roles
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "Roles for Active Record: #{api_name}" do
|
17
|
+
require "roles_active_record/strategy/user_setup.rb"
|
18
|
+
|
19
|
+
before do
|
20
|
+
api_fixture
|
21
|
+
default_user_setup
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#valid_roles' do
|
25
|
+
context ':guest role twice in list of valid roles' do
|
26
|
+
it 'roles table should not have duplicate role :guest' do
|
27
|
+
Role.all.map(&:name).select{|n| n == 'guest'}.size.should == 1
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
use_roles_strategy :one_role
|
3
|
+
|
4
|
+
def api_fixture
|
5
|
+
load 'fixtures/one_role_setup_unique_check.rb'
|
6
|
+
end
|
7
|
+
|
8
|
+
def api_migrate
|
9
|
+
migrate('one_role')
|
10
|
+
end
|
11
|
+
|
12
|
+
def api_name
|
13
|
+
:one_role
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "Roles for Active Record: #{api_name}" do
|
17
|
+
require "roles_active_record/strategy/user_setup.rb"
|
18
|
+
|
19
|
+
before do
|
20
|
+
api_fixture
|
21
|
+
default_user_setup
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#valid_roles' do
|
25
|
+
context ':guest role twice in list of valid roles' do
|
26
|
+
it 'roles table should not have duplicate role :guest' do
|
27
|
+
Role.all.map(&:name).select{|n| n == 'guest'}.size.should == 1
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 5
|
9
|
+
version: 0.3.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-12-
|
17
|
+
date: 2010-12-19 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -385,14 +385,15 @@ files:
|
|
385
385
|
- sandbox/test.rb
|
386
386
|
- spec/db/database.yml
|
387
387
|
- spec/fixtures/many_roles_setup.rb
|
388
|
+
- spec/fixtures/many_roles_setup_unique_check.rb
|
388
389
|
- spec/fixtures/one_role_setup.rb
|
390
|
+
- spec/fixtures/one_role_setup_unique_check.rb
|
389
391
|
- spec/generator_spec_helper.rb
|
390
392
|
- spec/migration_spec_helper.rb
|
391
393
|
- spec/migrations/admin_flag/004_add_admin_flag_to_users.rb
|
392
394
|
- spec/migrations/many_roles/002_create_roles.rb
|
393
395
|
- spec/migrations/many_roles/003_create_user_roles.rb
|
394
|
-
- spec/migrations/one_role/
|
395
|
-
- spec/migrations/one_role/003_add_role_to_users.rb
|
396
|
+
- spec/migrations/one_role/002_add_one_role_strategy.rb
|
396
397
|
- spec/migrations/role_string/002_add_role_string_to_users.rb
|
397
398
|
- spec/migrations/roles_mask/005_add_roles_mask_to_users.rb
|
398
399
|
- spec/migrations/users/001_create_users.rb
|
@@ -406,9 +407,11 @@ files:
|
|
406
407
|
- spec/roles_active_record/strategy/api.rb
|
407
408
|
- spec/roles_active_record/strategy/api_examples.rb
|
408
409
|
- spec/roles_active_record/strategy/multi/many_roles_spec.rb
|
410
|
+
- spec/roles_active_record/strategy/multi/many_roles_unique_spec.rb
|
409
411
|
- spec/roles_active_record/strategy/multi/roles_mask_spec.rb
|
410
412
|
- spec/roles_active_record/strategy/single/admin_flag_spec.rb
|
411
413
|
- spec/roles_active_record/strategy/single/one_role_spec.rb
|
414
|
+
- spec/roles_active_record/strategy/single/one_role_unique_spec.rb
|
412
415
|
- spec/roles_active_record/strategy/single/role_string_spec.rb
|
413
416
|
- spec/roles_active_record/strategy/user_setup.rb
|
414
417
|
- spec/spec_helper.rb
|
@@ -454,14 +457,15 @@ specification_version: 3
|
|
454
457
|
summary: Implementation of Roles generic API for Active Record
|
455
458
|
test_files:
|
456
459
|
- spec/fixtures/many_roles_setup.rb
|
460
|
+
- spec/fixtures/many_roles_setup_unique_check.rb
|
457
461
|
- spec/fixtures/one_role_setup.rb
|
462
|
+
- spec/fixtures/one_role_setup_unique_check.rb
|
458
463
|
- spec/generator_spec_helper.rb
|
459
464
|
- spec/migration_spec_helper.rb
|
460
465
|
- spec/migrations/admin_flag/004_add_admin_flag_to_users.rb
|
461
466
|
- spec/migrations/many_roles/002_create_roles.rb
|
462
467
|
- spec/migrations/many_roles/003_create_user_roles.rb
|
463
|
-
- spec/migrations/one_role/
|
464
|
-
- spec/migrations/one_role/003_add_role_to_users.rb
|
468
|
+
- spec/migrations/one_role/002_add_one_role_strategy.rb
|
465
469
|
- spec/migrations/role_string/002_add_role_string_to_users.rb
|
466
470
|
- spec/migrations/roles_mask/005_add_roles_mask_to_users.rb
|
467
471
|
- spec/migrations/users/001_create_users.rb
|
@@ -475,9 +479,11 @@ test_files:
|
|
475
479
|
- spec/roles_active_record/strategy/api.rb
|
476
480
|
- spec/roles_active_record/strategy/api_examples.rb
|
477
481
|
- spec/roles_active_record/strategy/multi/many_roles_spec.rb
|
482
|
+
- spec/roles_active_record/strategy/multi/many_roles_unique_spec.rb
|
478
483
|
- spec/roles_active_record/strategy/multi/roles_mask_spec.rb
|
479
484
|
- spec/roles_active_record/strategy/single/admin_flag_spec.rb
|
480
485
|
- spec/roles_active_record/strategy/single/one_role_spec.rb
|
486
|
+
- spec/roles_active_record/strategy/single/one_role_unique_spec.rb
|
481
487
|
- spec/roles_active_record/strategy/single/role_string_spec.rb
|
482
488
|
- spec/roles_active_record/strategy/user_setup.rb
|
483
489
|
- spec/spec_helper.rb
|