permissable-coughdrop 0.2 → 0.3.4
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 +5 -5
- data/lib/permissable.rb +5 -4
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 43a79613156770bf1baa7268a043f0846870fe9bb588c05a5c664ed1e1b5c7c4
|
4
|
+
data.tar.gz: 186d9b2836e64b73dfc91f4b3364fb9fc3741c1c87f80d34e52a7b6a2c06febe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35f653c7979e43da7fc427c7121fb522aabcf405918ee61461b901e6f337d885342dbb8fab89bd7e1a354fbbdf4cdda9dc15fd113a4b8444ddbc914e23142b97
|
7
|
+
data.tar.gz: ef3d55aa5d0c166ba761305637ceb2e2a44110f67abc6d0eb2ec96cbf6e832ac88d3af49db40121d8170effa16dd545d4a0be57c16dcf1b9fdea3d09a88f13a2
|
data/lib/permissable.rb
CHANGED
@@ -69,8 +69,9 @@ module Permissable
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def allows?(user, action, relevant_scopes=nil)
|
72
|
+
relevant_scopes ||= user.permission_scopes if user && user.respond_to?(:permission_scopes)
|
72
73
|
relevant_scopes ||= self.class.default_permission_scopes
|
73
|
-
relevant_scopes += ['*']
|
74
|
+
relevant_scopes += ['*'] unless relevant_scopes == ['none']
|
74
75
|
if self.class.allow_cached_permissions
|
75
76
|
# check for an existing result keyed off the record's id and updated_at
|
76
77
|
permissions = permissions_for(user, relevant_scopes)
|
@@ -97,9 +98,9 @@ module Permissable
|
|
97
98
|
end
|
98
99
|
|
99
100
|
def permissions_for(user, relevant_scopes=nil)
|
100
|
-
relevant_scopes ||=
|
101
|
+
relevant_scopes ||= user.permission_scopes if user && user.respond_to?(:permission_scopes)
|
101
102
|
relevant_scopes ||= self.class.default_permission_scopes
|
102
|
-
relevant_scopes += ['*']
|
103
|
+
relevant_scopes += ['*'] unless relevant_scopes == ['none']
|
103
104
|
if self.class.allow_cached_permissions
|
104
105
|
cache_key = (user && user.cache_key) || "nobody"
|
105
106
|
cache_key += "/scopes_#{relevant_scopes.join(',')}"
|
@@ -113,7 +114,7 @@ module Permissable
|
|
113
114
|
granted_permissions.with_indifferent_access if granted_permissions.respond_to?(:with_indifferent_access)
|
114
115
|
|
115
116
|
self.class.permissions_lookup.each do |actions, block, allowed_scopes|
|
116
|
-
already_granted = granted_permissions.
|
117
|
+
already_granted = granted_permissions.select{|k, v| v == true }.map(&:first)
|
117
118
|
next if block.arity == 1 && !user
|
118
119
|
next if actions - already_granted == []
|
119
120
|
if instance_exec(user, &block)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: permissable-coughdrop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Whitmer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,7 +66,7 @@ homepage: http://github.com/CoughDrop/permissable
|
|
66
66
|
licenses:
|
67
67
|
- MIT
|
68
68
|
metadata: {}
|
69
|
-
post_install_message:
|
69
|
+
post_install_message:
|
70
70
|
rdoc_options: []
|
71
71
|
require_paths:
|
72
72
|
- lib
|
@@ -81,9 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
|
-
|
85
|
-
|
86
|
-
signing_key:
|
84
|
+
rubygems_version: 3.0.8
|
85
|
+
signing_key:
|
87
86
|
specification_version: 4
|
88
87
|
summary: Permissable
|
89
88
|
test_files: []
|