adeia 0.11.9 → 0.11.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/adeia/controller_methods.rb +4 -2
- data/lib/adeia/controller_resource.rb +15 -20
- data/lib/adeia/version.rb +1 -1
- data/spec/test_app/log/test.log +2554 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/-NvowQvW3bR85QUlCTUG_UmHE3_JqFqC2my3-Q4HeeI.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/0AjOVY7q1-AkJfopa22u9N8u1lVRK3C7BpLOIS0SihU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/1k4BLgf_fBMpdBlHi6FLy0Km3vCTZ_FOoGvtzMYiNI8.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/3JbV7fLxxf9l7BI7XsxRf9Rbj-YGCOAYXLSaaIz53SA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/66IRxtODpiig2w_5o9DCOALvPn_TkoLbc-bQEI60x28.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/6scDXx2DOf7pEqdeltc8bHRW6MtYS4G_KsCniSKXUZs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/7bHy2Bsm-40H6oYT3i_sBSCW8f1_r2oAl-gKaGsC4Ak.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/8VsVZl-2Gyi6DcjCyCkss3N7uwVVNMKAht-4qmpv4Zo.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/8glLaxv8fuhJUypUZX_O4zzaI-0ZFdzUaA_6k9DS2bU.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/9Fw_WnCC15QnXUQZ4eYTYLOBv20at5Z5gL-WJx_QsR4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/BibFqNCOQ1HBAIWGX3qF_CfP6qSXFN--usFxBCINFzY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/BmQLWdNnZcwynTfndBUJCKAqnrYmYqMhJZYoxWPvC3g.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/ByMXHEO2gpXd8GmITqf6rta8Frw-UzlZ3NF6MrUXmCg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/CDaLUX6e6eCDch5MHhyK2du3RP-uQa5Dy_e06Um_8qk.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/CNgaein83BNJDuvdUmap_WTw_kfWmrZeCTMpjWfoFQo.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/G1CrfDVVT10KbhwWkdOX6jI_4xXoU-HI8Dl8BlGu2uQ.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/GWAhAJkC7Z28HWg08q1CxxGXLVMk6b4evFHgZT1TmHg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/HHkGhvlL0SIdKe-3R9x4xN5T0iQrxMcubGgpCox-dxI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/HggfmBmV-rmvrvzJjqvjmDpwB2BTEQvh6krp0CcrI0U.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/IDjxbYyETw_0GlP6YK9sHQ0t1DIHtqo0ejAPHsnA3Mc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/LT2EwPU003FSp_rHrDhX06af0wUCbJFRdym1zlnFecA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Mfcpk3CuiB6kgzXtB_sWICBeh46J9YtWUNynpbLQh_s.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/MfwKBPgx9IRMhiqnfW08sUEWs_B96MQw3hsixCwNWLE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Pa_-qEkJTENter7MsKfNlHQWX0nlUfAB--2hdOtfsnE.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/RDHe_BaR6DJ2RyEXCY4S6u_5RJBUgyoLJiLtFuYkqpI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/TgYwqDUjKYMyqLezgFMHSj_kjXfOtzDHf0RtHnzICL4.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/U9d-G-KFbMDpYYPyAwwfaczb0cJNsMnUr4uCMj_9SgQ.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/VxTnLLdBl3CfdnjwmMh3haHMtrg8hiI5B0NEjPv3PMA.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Xc5g_LdBO8zCLshdoLa1ehuGrocfoEAsIyGoGYwXDJ8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/YqILeFgIV0jLwjj7E3ZIPCen1u0igXKy-DYK_r9wHiQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/b2G7iK_STHAf0UlztJLwu0REjRNYlPaMLc1-S-6ugKE.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bIpbLFeghiLIis80v091kkbokkY-2OEjCYFIlmadWL8.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bMEECoWWyKknvnUGZxGw2e4fGylGmf3JRnuXA3WQEPE.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bdlz-DcjpjXaRc8QEmhSLXzDbN85HSjs7VXL3I_7nbU.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dDJO-r8awTmADJ-Ne01_H79_qZ8U0d2Ahj7Bc3FT70c.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dNF2ukLKDpO0RmR9-3IT4fnGg9ZF-AOnZfLIrJUYHZs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dS7pMF2ii5ZkDYkhzCxK_C30tFDaRBFfTrC_0hj2xfI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dlrmLs3TSwudjf5ZZ_DQS17J0PsiNBiTb0IiPPCyb1Q.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/eNhevz-kNZVoOnJmiGeHE2KKiOwjb6kNVPyB9Ur3EgA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/eaMCjSQejC69MWYQVPHU3RbGCBaheIzg_WWfVWfhLzI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/egMbH32eTzuX13gLF6RDrG0sV25lmpEVBw_PCH7W3P8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gh4900WYTp3k54oueT9bjoZdXNzwhCbB9lKATVkNNdA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gj7jbeiYIdeoQeoh9p96r2xSlkLhFW4cqQeFKrzZJDc.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/kgMXuDsCZfaxW1Lh-Uu8_1YrXWpos1NBsgvQX8m72Gw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/lNNFtSwspLqiE733Wf3cWM9qo-AeM5uspXGDfh3VXA4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/m36EDdApBppvyoX6m8cNCOm1eyt7pipkfASRya0sKqM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/o_-R9-DIl5YPAMqah1UgwgGdo4Rms5w2rNAai5hl-ok.cache +3 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/oqHS-Ko3TRt95I3q_6uYlMxx-dgFC0W775str0dffWY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/owKtJsVnE7xbHv_PZT3Zzch0O0PdpTCzbBznhcSNqs4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/pZk6Oy6k3owjI1cNUsbiG6cQ_UylcLZ8RfB7dwDmVjk.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/py11CR-KCSKePHzLd3ApUBpFgt_H9HoeuhNUD_yuBkY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qxHWRfgGp7Wxpe09d1fwz5TZZX4B2dxNDfGtbatSSls.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/sE0Z9G_praJn_h0tbTi6P1cZLCrnPn-PBNc5dgHPrUI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/tNWvv7PPhTlygBwzSn08kwR5REwfBeIzMXDuM_nBgN4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/vlZiBelcm4r0Jj2rut7lPCjvWBUCV1l05Buuq5SJr1I.cache +0 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/w8wDbJ9a5U-rSRVsy6KWOVuPXk5LnbSkSpP4bMFj1q0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/wDq-qT8KtrwcVevNuUHDGjEnUZt3wtxtIgWXsTTbX8A.cache +1 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/zUhSaiWxmRoV8rVPtzlyI1BhcyFGA6VAcl7dXipqfAs.cache +2 -0
- data/spec/test_app/tmp/cache/assets/sprockets/v3.0/zqVybtT2J3IFdm-D3UENlSjwIS1kqUmE9b7r6taGNZI.cache +0 -0
- metadata +129 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9d6c07a2891abd5fe509cbb2ab094e427f3d2f4
|
4
|
+
data.tar.gz: 39a5ad4657f7ed1a05f1861a024c5ea390d21564
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56b7857cc2e5e1e0f7ec8fe5a9d061af122b8f1c035ec19ad71b6d3351c50bfeeaf85c05ea9e1b64c53e90c55ebc300ca0c7a06019dea8a12a4991c40db3ce23
|
7
|
+
data.tar.gz: 5deb50e8d94e2489a0fa81e1117fd4d216fb551f32dd3cd75710864388fb4b01be81199f0097c0bcbafedfe225b7242d2d4287787c92ae790a8b80008b771ac8
|
@@ -52,11 +52,13 @@ module Adeia
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def can?(action, element, resource=nil)
|
55
|
-
|
55
|
+
controller, resource = ControllerResource.get_controller_and_resource(element, resource)
|
56
|
+
ControllerResource.new(self, action: action, controller: controller, resource: resource).authorized?(:can?)
|
56
57
|
end
|
57
58
|
|
58
59
|
def rights?(action, element, resource=nil)
|
59
|
-
|
60
|
+
controller, resource = ControllerResource.get_controller_and_resource(element, resource)
|
61
|
+
ControllerResource.new(self, action: action, controller: controller, resource: resource).authorized?(:rights?)
|
60
62
|
end
|
61
63
|
|
62
64
|
# Redirect the user to the stored url or the default one provided
|
@@ -26,6 +26,17 @@ module Adeia
|
|
26
26
|
controller.require_login!
|
27
27
|
end
|
28
28
|
|
29
|
+
def self.get_controller_and_resource(element, resource)
|
30
|
+
if element.is_a? String
|
31
|
+
return element, resource
|
32
|
+
elsif element.is_a? ActiveRecord::Base
|
33
|
+
return controller_name(element), element
|
34
|
+
elsif element.is_a? Array
|
35
|
+
resource = element.second
|
36
|
+
return "#{element.first}/#{controller_name(resource)}", resource
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
29
40
|
def initialize(controller, **args)
|
30
41
|
@controller = controller
|
31
42
|
@action_name = args.fetch(:action, @controller.action_name)
|
@@ -74,9 +85,8 @@ module Adeia
|
|
74
85
|
authorization.check_permissions!
|
75
86
|
end
|
76
87
|
|
77
|
-
def authorized?(method
|
78
|
-
@
|
79
|
-
instance_variable_get_or_set(method)
|
88
|
+
def authorized?(method)
|
89
|
+
@controller.instance_variable_get(var_name(method)) || @controller.instance_variable_set(var_name(method), authorization.send(method))
|
80
90
|
end
|
81
91
|
|
82
92
|
private
|
@@ -97,29 +107,14 @@ module Adeia
|
|
97
107
|
@model.model_name.element
|
98
108
|
end
|
99
109
|
|
100
|
-
def controller_name(resource)
|
101
|
-
resource.model_name.collection
|
102
|
-
end
|
103
|
-
|
104
110
|
def var_name(method)
|
105
111
|
[method, @controller_name, @action_name, @resource.try(:model_name).try(:human), @resource.try(:id)].compact.map do |s|
|
106
112
|
s.to_s.gsub("/", "_").delete("?")
|
107
113
|
end.join("_").prepend("@")
|
108
114
|
end
|
109
115
|
|
110
|
-
def
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
|
-
def get_controller_and_resource(element, resource)
|
115
|
-
if element.is_a? String
|
116
|
-
return element, resource
|
117
|
-
elsif element.is_a? ActiveRecord::Base
|
118
|
-
return controller_name(element), element
|
119
|
-
elsif element.is_a? Array
|
120
|
-
resource = element.second
|
121
|
-
return "#{element.first}/#{controller_name(resource)}", resource
|
122
|
-
end
|
116
|
+
def self.controller_name(resource)
|
117
|
+
resource.model_name.collection
|
123
118
|
end
|
124
119
|
|
125
120
|
end
|
data/lib/adeia/version.rb
CHANGED