miau 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
  SHA256:
3
- metadata.gz: 97e8b7992b2c47204be21883fa917a37c2c9dab5b3b3de6e1328ee808a28b684
4
- data.tar.gz: 813d423368b17ad729f32b340b531ced8c78b0e5eb98d67e4a9331793c6cb8c7
3
+ metadata.gz: 11d358ab5fa86e9112dec38bcd2a30cf8f2001b35982eb9f68c4e354cbbedd17
4
+ data.tar.gz: 4380f2fe177ef71910d1456f357793b2822ca5a1d3a31cdd00ab76b57b1a25fa
5
5
  SHA512:
6
- metadata.gz: a9c3e3ea444005d80d7a656e3e2d19b39ab75122329cfd60d5f4806c6ff63eadc511db145e21dded908b217ba0fa2b9e4a0e01fe9132497f3faa69dbafcdfbf3
7
- data.tar.gz: 95b37899e805dbc3af4a9f036a947745c3063cf4be7e98af955351b14deba0e54f9793970cb98e5096f7bc798b93d5e578e82ca1e0ad6e4c21837c3b953cb26d
6
+ metadata.gz: 560524d2fb53017cd0d5070d101ff29fc80ba573f4ef8c83df925c6a67355973887882ce7ad75f2936807580dcec666ac7fc1bb7ce1dbe13ab37566064c78ba5
7
+ data.tar.gz: 29e32b602528826c9a53ae14b7b8a9cf93bb77949775bea00d862dfbd6a60039140d7f15adb8728013eb733782e7870f9e726a2c8490ca82fe6d47e8c2fde1f5
data/Gemfile.lock CHANGED
@@ -37,7 +37,7 @@ GEM
37
37
  erubi (1.10.0)
38
38
  i18n (1.8.11)
39
39
  concurrent-ruby (~> 1.0)
40
- loofah (2.12.0)
40
+ loofah (2.13.0)
41
41
  crass (~> 1.0.2)
42
42
  nokogiri (>= 1.5.9)
43
43
  minitest (5.14.4)
@@ -45,7 +45,7 @@ GEM
45
45
  racc (~> 1.4)
46
46
  observr (1.0.5)
47
47
  parallel (1.21.0)
48
- parser (3.0.2.0)
48
+ parser (3.0.3.2)
49
49
  ast (~> 2.4.1)
50
50
  racc (1.6.0)
51
51
  rack (2.2.3)
@@ -58,10 +58,10 @@ GEM
58
58
  loofah (~> 2.3)
59
59
  rainbow (3.0.0)
60
60
  rake (13.0.6)
61
- regexp_parser (2.1.1)
61
+ regexp_parser (2.2.0)
62
62
  rexml (3.2.5)
63
63
  ricecream (0.2.0)
64
- rubocop (1.22.3)
64
+ rubocop (1.23.0)
65
65
  parallel (~> 1.10)
66
66
  parser (>= 3.0.0.0)
67
67
  rainbow (>= 2.2.2, < 4.0)
@@ -70,9 +70,9 @@ GEM
70
70
  rubocop-ast (>= 1.12.0, < 2.0)
71
71
  ruby-progressbar (~> 1.7)
72
72
  unicode-display_width (>= 1.4.0, < 3.0)
73
- rubocop-ast (1.12.0)
73
+ rubocop-ast (1.14.0)
74
74
  parser (>= 3.0.1.1)
75
- rubocop-performance (1.11.5)
75
+ rubocop-performance (1.12.0)
76
76
  rubocop (>= 1.7.0, < 2.0)
77
77
  rubocop-ast (>= 0.4.0)
78
78
  ruby-progressbar (1.11.0)
@@ -82,9 +82,9 @@ GEM
82
82
  simplecov_json_formatter (~> 0.1)
83
83
  simplecov-html (0.12.3)
84
84
  simplecov_json_formatter (0.1.3)
85
- standard (1.4.0)
86
- rubocop (= 1.22.3)
87
- rubocop-performance (= 1.11.5)
85
+ standard (1.5.0)
86
+ rubocop (= 1.23.0)
87
+ rubocop-performance (= 1.12.0)
88
88
  tzinfo (2.0.4)
89
89
  concurrent-ruby (~> 1.0)
90
90
  unicode-display_width (2.1.0)
data/lib/miau/error.rb CHANGED
@@ -4,21 +4,6 @@ module Miau
4
4
  class Error < StandardError; end
5
5
 
6
6
  class NotAuthorizedError < Error
7
- attr_reader :controller, :query, :policy
8
-
9
- def initialize(options = {})
10
- if options.is_a? String
11
- message = options
12
- else
13
- @controller = options[:controller]
14
- @query = options[:query]
15
- @policy = options[:policy]
16
-
17
- message = options.fetch(:message) { "not allowed to #{query} of #{controller} by #{policy.inspect}" }
18
- end
19
-
20
- super(message)
21
- end
22
7
  end
23
8
 
24
9
  class NotDefinedError < Error
data/lib/miau/storage.rb CHANGED
@@ -14,8 +14,10 @@ module Miau
14
14
 
15
15
  def run(klass, action, user, resource)
16
16
  policy = policy(klass, user, resource)
17
- raise Miau::NotDefinedError unless policy.respond_to?(action)
18
- policy.send(action)
17
+ return policy.send(action) if policy.respond_to?(action)
18
+
19
+ msg = "class <#{klass} action <#{action}>"
20
+ raise Miau::NotDefinedError, msg
19
21
  end
20
22
 
21
23
  private
data/lib/miau/version.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Miau
4
- VERSION = "0.1.1" # 2021-11-06
4
+ VERSION = "0.1.2" # 2021-12-10
5
+ # VERSION = "0.1.1" # 2021-11-06
5
6
  # VERSION = "0.1.0" # 2021-09-13
6
7
  # VERSION = "0.0.2" # 2021-09-11
7
8
  # VERSION = "0.0.1"
data/lib/miau.rb CHANGED
@@ -17,15 +17,15 @@ module Miau
17
17
 
18
18
  def authorize!(resource = nil, hsh = {})
19
19
  @_miau_authorization_performed = true
20
- result = authorized?(resource, hsh)
21
- raise Miau::NotAuthorizedError unless result == true
20
+ return true if authorized?(resource, hsh)
21
+
22
+ klass, action = klass_action(hsh)
23
+ msg = "class <#{klass} action <#{action}>"
24
+ raise Miau::NotAuthorizedError, msg
22
25
  end
23
26
 
24
27
  def authorized?(resource = nil, hsh = {})
25
- klass = hsh[:class]
26
- klass ||= params[:controller].camelize
27
- action = hsh[:action]
28
- action ||= params[:action]
28
+ klass, action = klass_action(hsh)
29
29
  Miau::PolicyStorage.instance.run(klass, action, miau_user, resource)
30
30
  end
31
31
 
@@ -44,4 +44,15 @@ module Miau
44
44
  def miau_authorization_performed?
45
45
  !!@_miau_authorization_performed
46
46
  end
47
+
48
+ private
49
+
50
+ def klass_action(hsh)
51
+ klass = hsh[:class]
52
+ klass ||= params[:controller].camelize
53
+ action = hsh[:action]
54
+ action ||= params[:action]
55
+
56
+ [klass, action]
57
+ end
47
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miau
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
  - Dittmar Krall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-06 00:00:00.000000000 Z
11
+ date: 2021-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport