thelinuxlich-aegis 1.1.8 → 1.1.9
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/README.rdoc +40 -3
- data/VERSION +1 -1
- data/thelinuxlich-aegis.gemspec +2 -3
- metadata +3 -4
- data/:test +0 -0
data/README.rdoc
CHANGED
@@ -13,12 +13,49 @@ Alternatively, use
|
|
13
13
|
sudo gem install thelinuxlich-aegis
|
14
14
|
|
15
15
|
== Changes in this fork
|
16
|
-
|
16
|
+
WARNING! Opinionated stuff!
|
17
|
+
Now you can set the permission prefix, admin and crud verbs with your locale(default is 'may','admin','read','write','update' and 'destroy', respectively)
|
17
18
|
Example: in locale/en.yml:
|
18
19
|
aegis:
|
19
|
-
|
20
|
+
permission: 'should'
|
21
|
+
admin: 'manage'
|
22
|
+
read: 'access'
|
23
|
+
write: 'insert'
|
24
|
+
update: 'update'
|
25
|
+
destroy: 'delete'
|
26
|
+
|
27
|
+
And then you can verify authorization with current_user.should_access_posts?
|
28
|
+
|
29
|
+
Also, there is a class method you can put on ApplicationController(or anything that extends ActionController::Base) to automatically add before_filter to all REST actions verifying authorization:
|
30
|
+
authorize_first!(:current_user, options)
|
31
|
+
|
32
|
+
First parameter is a string containing the method to access the current user on your favorite authentication gem, second parameter accepts :except => [ARRAY_OF_CONTROLLER_NAMES]
|
33
|
+
|
34
|
+
The user class now can call has_role :special_permissions => true, and it will add a has_many association with special_permissions to really customize what every role can access.
|
35
|
+
|
36
|
+
In Permissions class, you can add restful_permissions!(:except => [ARRAY_OF_CONTROLLER_NAMES]) and it will add the 4 crud verbs to verify permission with every role, first verifying if the current user has admin access then verifying in SpecialPermission association.
|
37
|
+
Example: Imagine we have a controller called Posts. It will add the permission methods may_read_posts?, may_write_posts?, may_update_posts?, may_destroy_posts?, all customizable with locales.
|
38
|
+
|
39
|
+
For special permissions, you'll also need a table for it. Create a migration like this:
|
40
|
+
class CreateSpecialPermissions < ActiveRecord::Migration
|
41
|
+
def self.up
|
42
|
+
create_table :special_permissions do |t|
|
43
|
+
t.integer :user_id
|
44
|
+
t.string :permission_module
|
45
|
+
t.boolean :permission_read, :default => false
|
46
|
+
t.boolean :permission_write, :default => false
|
47
|
+
t.boolean :permission_destroy, :default => false
|
48
|
+
t.boolean :permission_update, :default => false
|
49
|
+
t.timestamps
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.down
|
54
|
+
drop_table :special_permissions
|
55
|
+
end
|
56
|
+
end
|
20
57
|
|
21
|
-
|
58
|
+
Until I fix the generator, the migration part is manual, unfortunately :(
|
22
59
|
|
23
60
|
== Example
|
24
61
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.9
|
data/thelinuxlich-aegis.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{thelinuxlich-aegis}
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["thelinuxlich"]
|
12
|
-
s.date = %q{2010-03-
|
12
|
+
s.date = %q{2010-03-29}
|
13
13
|
s.description = %q{Aegis is a role-based permission system, where all users are given a role. It is possible to define detailed and complex permissions for each role very easily.}
|
14
14
|
s.email = %q{thelinuxlich@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
|
|
17
17
|
]
|
18
18
|
s.files = [
|
19
19
|
".gitignore",
|
20
|
-
":test",
|
21
20
|
"MIT-LICENSE",
|
22
21
|
"README.rdoc",
|
23
22
|
"Rakefile",
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 1.1.
|
8
|
+
- 9
|
9
|
+
version: 1.1.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- thelinuxlich
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-29 00:00:00 -03:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -28,7 +28,6 @@ extra_rdoc_files:
|
|
28
28
|
- README.rdoc
|
29
29
|
files:
|
30
30
|
- .gitignore
|
31
|
-
- ":test"
|
32
31
|
- MIT-LICENSE
|
33
32
|
- README.rdoc
|
34
33
|
- Rakefile
|
data/:test
DELETED
File without changes
|