restricted_access 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a09963a023398671ce46a2bb029db73ec5d1ad41
4
- data.tar.gz: fecea55f47f5b79637cbd1a88d178bb46328fb29
3
+ metadata.gz: 12693ef49b674bf4de045b247dd2369e5e70e03d
4
+ data.tar.gz: 73646b84274e0d922f882d242fc283a1d2ef750e
5
5
  SHA512:
6
- metadata.gz: 2a0997f4e9dbe5c21eabe6bb8c9e70163721fab8e5b0d4ddce723d4b0bad94dc0ae0ec2b692993de4cdb021337d894fd54740d31ad140024df9ec1e05073201e
7
- data.tar.gz: c775fc0a5e586b611b9a93fe987ef0bdde98da3bf7a0a5c2ec250192ac48f8b27130df445d84f0b432f7f98455485acf79cb35e0f88a11a955de94fd1c9d6856
6
+ metadata.gz: 7e18c6628e4c6fff27133c04a7a466049749a4234b306af238f04966fa26cdc36c009657c4b8dab1b480ed8f451fcf539f460be701cc8b7e3a26c5f336c36bb4
7
+ data.tar.gz: 63f9052458cf37e4ff339ffa78da3dcd719abb0f90732a06b0354d17a337e1419306b8375f2b64378c8020515cc074a98c975560eca98b0d5a0b3d21bb1a31fd
data/README.md CHANGED
@@ -28,6 +28,15 @@ Generate the config file with the generator, pass the resources as an argument.
28
28
  rails g restricted_access:install -r user admin
29
29
  ```
30
30
 
31
+ ```ruby
32
+ # config/initializers/restricted_access.rb
33
+ RestrictedAccess.configure do |conf|
34
+ require 'restricted_access/orm/mongoid'
35
+ # require 'restricted_access/orm/active_record'
36
+ conf.resources = [:user, :admin]
37
+ end
38
+ ```
39
+
31
40
  ## Active Record
32
41
 
33
42
  You have to run a migration to add the `:level` field to your model.
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require "bundler/gem_tasks"
@@ -2,28 +2,33 @@ module RestrictedAccess
2
2
  module Controller
3
3
 
4
4
  RestrictedAccess.resources.each do |resource_name|
5
- klass = resource_name.to_s.classify.constantize
6
- if klass.accesses.present?
7
- klass.accesses.each do |access|
5
+ klass = resource_name.to_s.classify.constantize rescue nil
6
+ if klass
7
+ if klass.accesses.present?
8
+ klass.accesses.each do |access|
8
9
 
9
- define_method "prevent_#{access.level}_#{resource_name}_access" do
10
- current_resource = send("current_#{resource_name}")
11
- if current_resource && current_resource.access <= klass.send(:access, access.level)
12
- if respond_to?("restrict_#{resource_name}_access", true)
13
- send("restrict_#{resource_name}_access")
14
- else
15
- send("restrict_#{current_resource.level}_#{resource_name}_access"
16
- )
10
+ define_method "prevent_#{access.level}_#{resource_name}_access" do
11
+ current_resource = send("current_#{resource_name}")
12
+ if current_resource && current_resource.access <= klass.send(:access, access.level)
13
+ if respond_to?("restrict_#{resource_name}_access", true)
14
+ send("restrict_#{resource_name}_access")
15
+ else
16
+ send("restrict_#{current_resource.level}_#{resource_name}_access"
17
+ )
18
+ end
17
19
  end
18
20
  end
19
- end
20
21
 
21
- define_method "restrict_#{access.level}_#{resource_name}_access" do
22
- redirect_to root_path, notice: 'You do not have access to this page' and return
22
+ define_method "restrict_#{access.level}_#{resource_name}_access" do
23
+ redirect_to root_path, notice: 'You do not have access to this page' and return
24
+ end
23
25
  end
26
+ else
27
+ puts("You defined a resource #{resource_name} in the RestrictedAccess initializer but you didn't define any access in the class #{klass}.")
24
28
  end
29
+ else
30
+ puts("You defined a resource #{resource_name} in the RestrictedAccess initializer but no matching class can be found.")
25
31
  end
26
-
27
32
  end
28
33
 
29
34
  end
@@ -1,3 +1,3 @@
1
1
  module RestrictedAccess
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restricted_access
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - 4nt1