guachiman 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +66 -1
- data/guachiman.gemspec +2 -2
- data/lib/guachiman/version.rb +1 -1
- metadata +25 -41
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 24c4933a403cafbadec8a89d9d4c97fcc60363a1
|
4
|
+
data.tar.gz: f7105a30e32169f70009ba9e7035859ae35440c9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 700a5be51edeec2700bc4c584856e65e9a9ac5696c6ae1dcdc6f4ed3b0f8467eb55d83402a74d903685c9a70ea0b950c515d3b49df03de45dc3304e6606cafa0
|
7
|
+
data.tar.gz: c91922b1e2b61f69a3b10a4789f74371d02023b0d58597417c95f4f5c3df019f1560101352bb266f2ed9a6aec319b52d0ce8e5417823567458ac7c67dde336de
|
data/README.md
CHANGED
@@ -22,4 +22,69 @@ Or install it yourself as:
|
|
22
22
|
Usage
|
23
23
|
-----
|
24
24
|
|
25
|
-
|
25
|
+
Include it in your `Gemfile`
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
gem 'guachiman'
|
29
|
+
```
|
30
|
+
|
31
|
+
Run `bundle install`
|
32
|
+
|
33
|
+
Run `rails g guachiman:install`
|
34
|
+
|
35
|
+
This will generate a `Permission.rb` file in `app/models`.
|
36
|
+
|
37
|
+
Include `Guachiman::Permissible` in `ApplicationController` and implemente a `current_user` method there.
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
include Guachiman::Permissible
|
41
|
+
|
42
|
+
def current_user
|
43
|
+
@current_user ||= User.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
That's it, now you can describe your permissions in this way:
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
class Permission
|
51
|
+
include Guachiman::Permissions
|
52
|
+
include Guachiman::Params
|
53
|
+
|
54
|
+
attr_reader :user
|
55
|
+
|
56
|
+
def initialize current_user
|
57
|
+
@user = current_user
|
58
|
+
|
59
|
+
if user.nil?
|
60
|
+
guest
|
61
|
+
elsif user.admin?
|
62
|
+
admin
|
63
|
+
else
|
64
|
+
member
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def guest
|
71
|
+
allow :sessions, [:new, :create, :destroy]
|
72
|
+
allow :identities, [:new, :create]
|
73
|
+
allow :passwords, [:new, :create]
|
74
|
+
|
75
|
+
allow_param :user, [:name, :email, :password]
|
76
|
+
end
|
77
|
+
|
78
|
+
def member
|
79
|
+
guest
|
80
|
+
allow :identities, [:show, :edit, :update]
|
81
|
+
allow :passwords, [:edit, :update]
|
82
|
+
end
|
83
|
+
|
84
|
+
def admin
|
85
|
+
allow_all!
|
86
|
+
end
|
87
|
+
end
|
88
|
+
```
|
89
|
+
|
90
|
+
The method `allow` takes a controller params key and an array of actions. The method `allow_param` takes a model params key and an array of attributes. The method `allow_all!` is a convinience method to allow all controlles, actions and parameteres.
|
data/guachiman.gemspec
CHANGED
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency 'railties', '>= 3.
|
21
|
-
spec.add_dependency 'activerecord', '>= 3.
|
20
|
+
spec.add_dependency 'railties', '>= 3.0'
|
21
|
+
spec.add_dependency 'activerecord', '>= 3.0'
|
22
22
|
spec.add_dependency 'strong_parameters', '>= 0.2.1'
|
23
23
|
spec.add_development_dependency 'minitest'
|
24
24
|
spec.add_development_dependency 'minitest-focus'
|
data/lib/guachiman/version.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guachiman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Francesco Rodriguez
|
@@ -10,92 +9,81 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-07-09 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: railties
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: '3.
|
20
|
+
version: '3.0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: '3.
|
27
|
+
version: '3.0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: activerecord
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - '>='
|
37
33
|
- !ruby/object:Gem::Version
|
38
|
-
version: '3.
|
34
|
+
version: '3.0'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - '>='
|
45
40
|
- !ruby/object:Gem::Version
|
46
|
-
version: '3.
|
41
|
+
version: '3.0'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: strong_parameters
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - '>='
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: 0.2.1
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: 0.2.1
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: minitest
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - '>='
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0'
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - '>='
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: minitest-focus
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - '>='
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - '>='
|
93
82
|
- !ruby/object:Gem::Version
|
94
83
|
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: bundler
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,21 +98,19 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: rake
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
|
-
- -
|
102
|
+
- - '>='
|
117
103
|
- !ruby/object:Gem::Version
|
118
104
|
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
|
-
- -
|
109
|
+
- - '>='
|
125
110
|
- !ruby/object:Gem::Version
|
126
111
|
version: '0'
|
127
|
-
description:
|
128
|
-
|
112
|
+
description: 'Basic authorization library based on Ryan Bates'' Railscasts #385 and
|
113
|
+
#386'
|
129
114
|
email:
|
130
115
|
- lrodriguezsanc@gmail.com
|
131
116
|
- gustavo@epiclabs.pe
|
@@ -152,27 +137,26 @@ files:
|
|
152
137
|
homepage: https://github.com/epiclabs/guachiman
|
153
138
|
licenses:
|
154
139
|
- MIT
|
140
|
+
metadata: {}
|
155
141
|
post_install_message:
|
156
142
|
rdoc_options: []
|
157
143
|
require_paths:
|
158
144
|
- lib
|
159
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
146
|
requirements:
|
162
|
-
- -
|
147
|
+
- - '>='
|
163
148
|
- !ruby/object:Gem::Version
|
164
149
|
version: '0'
|
165
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
-
none: false
|
167
151
|
requirements:
|
168
|
-
- -
|
152
|
+
- - '>='
|
169
153
|
- !ruby/object:Gem::Version
|
170
154
|
version: '0'
|
171
155
|
requirements: []
|
172
156
|
rubyforge_project:
|
173
|
-
rubygems_version:
|
157
|
+
rubygems_version: 2.0.3
|
174
158
|
signing_key:
|
175
|
-
specification_version:
|
159
|
+
specification_version: 4
|
176
160
|
summary: Basic authorization library
|
177
161
|
test_files:
|
178
162
|
- test/generators/install_generator_test.rb
|