bullet_train-roles 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22f9bcc3e444766f5813562e0506db8f9b921f141ce2ce77eb3d30156418c80f
4
- data.tar.gz: 7db6d4154b2bd4e58e7d35455635b55b84f6e66424e1f4e9b26a82e908865dbb
3
+ metadata.gz: e682f8f5469478a7c827332cb3c922a3c7657ef48e2e53d15abaf98b4ea8e7ac
4
+ data.tar.gz: 15ca75ffc2ebacabebc3632ecc18ce5f20348ad434df094de2ee14eaa05c031e
5
5
  SHA512:
6
- metadata.gz: 6ece8c36a0ae647489604813e15646ec1096d62f3980d032892ceefd21b8bf7a5f82430ad6a58219edf287994ee0019a7dc00dbe2939782ac7e24b1ff0b77188
7
- data.tar.gz: 0a386a84154f7d192019ab68d5be0094b3fcd6827dd53f29bf629fa0ed15a8ff8546bbd2fb382b9a4e3b30e13d922de0b7e2d819c08c03fb4662516f193df0af
6
+ metadata.gz: 4a525dc712139149ea12932af58932a3a8ec11ab582c6a5924b88035ea0c67563fb5ea9958cb9dc581b2045b46ff7add98a164383034ae6e3cb03a50f089076f
7
+ data.tar.gz: 544e1c9ddbde15bd1945529af7d0ae136ff22fc8c2d12a0d8b91c148a61a2bbfa2f4296890ec0e235d1353bbff0394f811e588675e42c56e3b254c4ec6d7abcb
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- bullet_train-roles (0.1.9)
12
+ bullet_train-roles (0.1.10)
13
13
  active_hash
14
14
  activesupport
15
15
  cancancan
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Roles
4
- VERSION = "0.1.9"
4
+ VERSION = "0.1.10"
5
5
  end
data/lib/roles/permit.rb CHANGED
@@ -13,8 +13,18 @@ module Roles
13
13
  build_permissions(user, through, parent, intermediary)
14
14
  end
15
15
 
16
- permissions.each do |permission|
17
- can(permission.actions, permission.model.constantize, permission.condition) unless permission.is_debug
16
+ begin
17
+ assign_permissions(permissions)
18
+ rescue NameError => e
19
+ if cache_key
20
+ # Cache has become stale with model classes that no longer exist
21
+ Rails.logger.info "Found missing models in cache - #{e.message.squish} - building fresh permissions"
22
+ Rails.cache.delete(cache_key)
23
+ permissions = build_permissions(user, through, parent, intermediary)
24
+ assign_permissions(permissions)
25
+ else
26
+ raise e
27
+ end
18
28
  end
19
29
 
20
30
  if debug
@@ -31,6 +41,12 @@ module Roles
31
41
  end
32
42
  end
33
43
 
44
+ def assign_permissions(permissions)
45
+ permissions.each do |permission|
46
+ can(permission.actions, permission.model.constantize, permission.condition) unless permission.is_debug
47
+ end
48
+ end
49
+
34
50
  def build_permissions(user, through, parent, intermediary)
35
51
  added_roles = Set.new
36
52
  permissions = []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-roles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Prabin Poudel