acts_as_role 0.2.0 → 0.3.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/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/README.rdoc +18 -5
- data/VERSION +1 -1
- data/acts_as_role.gemspec +6 -6
- data/lib/active_model/validations/roles_validator.rb +23 -0
- data/lib/acts_as_role.rb +2 -0
- data/spec/access_spec.rb +1 -0
- data/spec/spec_helper.rb +0 -1
- metadata +7 -7
- data/lib/roles_validator.rb +0 -12
data/Gemfile
CHANGED
@@ -3,11 +3,11 @@ source "http://rubygems.org"
|
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
|
-
gem "rails", ">= 3.0.0"
|
7
6
|
|
8
7
|
# Add dependencies to develop your gem here.
|
9
8
|
# Include everything needed to run rake, tests, features, etc.
|
10
9
|
group :development do
|
10
|
+
gem "rails", "~> 3.1.0.rc4"
|
11
11
|
gem "rspec-rails"
|
12
12
|
gem "sqlite3"
|
13
13
|
gem "bundler", "~> 1.0.0"
|
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -9,7 +9,7 @@ This is a minimalist implementation of roles using a database column to store th
|
|
9
9
|
Use role field to store the user roles.
|
10
10
|
|
11
11
|
user = User.new
|
12
|
-
user.role
|
12
|
+
user.role => "user"
|
13
13
|
user.has_role?(:user) => true
|
14
14
|
|
15
15
|
Test roles using has_#{role_column.singularize}? or has_#{role_column.pluralize}?
|
@@ -19,7 +19,7 @@ Test roles using has_#{role_column.singularize}? or has_#{role_column.pluralize}
|
|
19
19
|
user.add_roles :owner
|
20
20
|
user.has_roles?(:user, :owner) => true
|
21
21
|
|
22
|
-
Roles are
|
22
|
+
Roles are stored using plain text
|
23
23
|
|
24
24
|
user.roles => "user_owner"
|
25
25
|
|
@@ -27,7 +27,7 @@ Roles are stores using text
|
|
27
27
|
user.has_role?(:user) => false
|
28
28
|
user.roles => "owner"
|
29
29
|
|
30
|
-
Validation - internally there is a roles validator
|
30
|
+
Validation - internally there is a roles validator, you can add a :message to customize the validation message
|
31
31
|
|
32
32
|
user.add_roles :not_specified
|
33
33
|
user.valid? => false
|
@@ -40,7 +40,7 @@ You can use a different field with different syntax
|
|
40
40
|
end
|
41
41
|
|
42
42
|
access = Access.new
|
43
|
-
access.flag =>
|
43
|
+
access.flag => "" (no default role specified)
|
44
44
|
access.add_flags(:owner)
|
45
45
|
access.has_flag?(:owner) => true
|
46
46
|
access.add_flags(:manager)
|
@@ -50,7 +50,20 @@ You can use a different field with different syntax
|
|
50
50
|
access.valid? => false
|
51
51
|
access.errors[:flag] => "invalid role"
|
52
52
|
|
53
|
-
|
53
|
+
Also you can use is_role to query a custom role
|
54
|
+
|
55
|
+
user = User.new
|
56
|
+
user.is_user? => true
|
57
|
+
user.is_admin? => false
|
58
|
+
|
59
|
+
access = Access.new
|
60
|
+
access.is_owner? => false
|
61
|
+
access.is_manager? => false
|
62
|
+
access.add_roles :manager
|
63
|
+
access.is_manager? => true
|
64
|
+
|
65
|
+
|
66
|
+
== Contributing to acts_as_roles
|
54
67
|
|
55
68
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
56
69
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.1
|
data/acts_as_role.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts_as_role}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Carlos Segura"]
|
12
|
-
s.date = %q{2011-07-
|
12
|
+
s.date = %q{2011-07-26}
|
13
13
|
s.description = %q{Use a field to store plain-text roles and manage them easily}
|
14
14
|
s.email = %q{csegura@ideseg.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,8 +26,8 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"acts_as_role.gemspec",
|
29
|
+
"lib/active_model/validations/roles_validator.rb",
|
29
30
|
"lib/acts_as_role.rb",
|
30
|
-
"lib/roles_validator.rb",
|
31
31
|
"spec/access_spec.rb",
|
32
32
|
"spec/models/access.rb",
|
33
33
|
"spec/models/user.rb",
|
@@ -53,14 +53,14 @@ Gem::Specification.new do |s|
|
|
53
53
|
s.specification_version = 3
|
54
54
|
|
55
55
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
|
-
s.
|
56
|
+
s.add_development_dependency(%q<rails>, ["~> 3.1.0.rc4"])
|
57
57
|
s.add_development_dependency(%q<rspec-rails>, [">= 0"])
|
58
58
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
59
59
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
60
60
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
61
61
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
62
62
|
else
|
63
|
-
s.add_dependency(%q<rails>, ["
|
63
|
+
s.add_dependency(%q<rails>, ["~> 3.1.0.rc4"])
|
64
64
|
s.add_dependency(%q<rspec-rails>, [">= 0"])
|
65
65
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
66
66
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -68,7 +68,7 @@ Gem::Specification.new do |s|
|
|
68
68
|
s.add_dependency(%q<rcov>, [">= 0"])
|
69
69
|
end
|
70
70
|
else
|
71
|
-
s.add_dependency(%q<rails>, ["
|
71
|
+
s.add_dependency(%q<rails>, ["~> 3.1.0.rc4"])
|
72
72
|
s.add_dependency(%q<rspec-rails>, [">= 0"])
|
73
73
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
74
74
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'active_model/validations'
|
2
|
+
|
3
|
+
module ActiveModel
|
4
|
+
module Validations
|
5
|
+
extend ActiveSupport::Autoload
|
6
|
+
|
7
|
+
autoload 'RolesValidator'
|
8
|
+
|
9
|
+
class RolesValidator < ActiveModel::EachValidator
|
10
|
+
def initialize(options)
|
11
|
+
@roles = options[:roles]
|
12
|
+
super
|
13
|
+
end
|
14
|
+
def validate_each(record, attribute, value)
|
15
|
+
unless value.split("_").all? {|x| @roles.include?(x) }
|
16
|
+
record.errors[attribute] << (options[:message] || "contains an invalid role")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
module HelperMethods
|
22
|
+
end
|
23
|
+
end
|
data/lib/acts_as_role.rb
CHANGED
data/spec/access_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: acts_as_role
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Carlos Segura
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-26 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -18,10 +18,10 @@ dependencies:
|
|
18
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ~>
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 3.0.
|
24
|
-
type: :
|
23
|
+
version: 3.1.0.rc4
|
24
|
+
type: :development
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -98,8 +98,8 @@ files:
|
|
98
98
|
- Rakefile
|
99
99
|
- VERSION
|
100
100
|
- acts_as_role.gemspec
|
101
|
+
- lib/active_model/validations/roles_validator.rb
|
101
102
|
- lib/acts_as_role.rb
|
102
|
-
- lib/roles_validator.rb
|
103
103
|
- spec/access_spec.rb
|
104
104
|
- spec/models/access.rb
|
105
105
|
- spec/models/user.rb
|
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
121
121
|
- - ">="
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
hash:
|
123
|
+
hash: 1760841836674811335
|
124
124
|
segments:
|
125
125
|
- 0
|
126
126
|
version: "0"
|
data/lib/roles_validator.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
|
2
|
-
class RolesValidator < ActiveModel::EachValidator
|
3
|
-
def initialize(options)
|
4
|
-
@roles = options[:roles]
|
5
|
-
super
|
6
|
-
end
|
7
|
-
def validate_each(record, attribute, value)
|
8
|
-
unless value.split("_").all? {|x| @roles.include?(x) }
|
9
|
-
record.errors[attribute] << (options[:message] || "contains an invalid role")
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|