adeia 0.11.9 → 0.11.10

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/lib/adeia/controller_methods.rb +4 -2
  3. data/lib/adeia/controller_resource.rb +15 -20
  4. data/lib/adeia/version.rb +1 -1
  5. data/spec/test_app/log/test.log +2554 -0
  6. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/-NvowQvW3bR85QUlCTUG_UmHE3_JqFqC2my3-Q4HeeI.cache +0 -0
  7. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/0AjOVY7q1-AkJfopa22u9N8u1lVRK3C7BpLOIS0SihU.cache +1 -0
  8. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/1k4BLgf_fBMpdBlHi6FLy0Km3vCTZ_FOoGvtzMYiNI8.cache +2 -0
  9. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/3JbV7fLxxf9l7BI7XsxRf9Rbj-YGCOAYXLSaaIz53SA.cache +0 -0
  10. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  11. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/66IRxtODpiig2w_5o9DCOALvPn_TkoLbc-bQEI60x28.cache +0 -0
  12. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/6scDXx2DOf7pEqdeltc8bHRW6MtYS4G_KsCniSKXUZs.cache +1 -0
  13. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/7bHy2Bsm-40H6oYT3i_sBSCW8f1_r2oAl-gKaGsC4Ak.cache +1 -0
  14. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/8VsVZl-2Gyi6DcjCyCkss3N7uwVVNMKAht-4qmpv4Zo.cache +0 -0
  15. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/8glLaxv8fuhJUypUZX_O4zzaI-0ZFdzUaA_6k9DS2bU.cache +2 -0
  16. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/9Fw_WnCC15QnXUQZ4eYTYLOBv20at5Z5gL-WJx_QsR4.cache +1 -0
  17. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/BibFqNCOQ1HBAIWGX3qF_CfP6qSXFN--usFxBCINFzY.cache +1 -0
  18. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/BmQLWdNnZcwynTfndBUJCKAqnrYmYqMhJZYoxWPvC3g.cache +1 -0
  19. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/ByMXHEO2gpXd8GmITqf6rta8Frw-UzlZ3NF6MrUXmCg.cache +1 -0
  20. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/CDaLUX6e6eCDch5MHhyK2du3RP-uQa5Dy_e06Um_8qk.cache +1 -0
  21. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/CNgaein83BNJDuvdUmap_WTw_kfWmrZeCTMpjWfoFQo.cache +1 -0
  22. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +3 -0
  23. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/G1CrfDVVT10KbhwWkdOX6jI_4xXoU-HI8Dl8BlGu2uQ.cache +2 -0
  24. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/GWAhAJkC7Z28HWg08q1CxxGXLVMk6b4evFHgZT1TmHg.cache +1 -0
  25. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/HHkGhvlL0SIdKe-3R9x4xN5T0iQrxMcubGgpCox-dxI.cache +1 -0
  26. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/HggfmBmV-rmvrvzJjqvjmDpwB2BTEQvh6krp0CcrI0U.cache +1 -0
  27. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/IDjxbYyETw_0GlP6YK9sHQ0t1DIHtqo0ejAPHsnA3Mc.cache +1 -0
  28. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/LT2EwPU003FSp_rHrDhX06af0wUCbJFRdym1zlnFecA.cache +1 -0
  29. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Mfcpk3CuiB6kgzXtB_sWICBeh46J9YtWUNynpbLQh_s.cache +3 -0
  30. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/MfwKBPgx9IRMhiqnfW08sUEWs_B96MQw3hsixCwNWLE.cache +0 -0
  31. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
  32. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Pa_-qEkJTENter7MsKfNlHQWX0nlUfAB--2hdOtfsnE.cache +1 -0
  33. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/RDHe_BaR6DJ2RyEXCY4S6u_5RJBUgyoLJiLtFuYkqpI.cache +1 -0
  34. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/TgYwqDUjKYMyqLezgFMHSj_kjXfOtzDHf0RtHnzICL4.cache +3 -0
  35. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/U9d-G-KFbMDpYYPyAwwfaczb0cJNsMnUr4uCMj_9SgQ.cache +1 -0
  36. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/VxTnLLdBl3CfdnjwmMh3haHMtrg8hiI5B0NEjPv3PMA.cache +2 -0
  37. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Xc5g_LdBO8zCLshdoLa1ehuGrocfoEAsIyGoGYwXDJ8.cache +0 -0
  38. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/YqILeFgIV0jLwjj7E3ZIPCen1u0igXKy-DYK_r9wHiQ.cache +0 -0
  39. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/b2G7iK_STHAf0UlztJLwu0REjRNYlPaMLc1-S-6ugKE.cache +3 -0
  40. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bIpbLFeghiLIis80v091kkbokkY-2OEjCYFIlmadWL8.cache +2 -0
  41. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bMEECoWWyKknvnUGZxGw2e4fGylGmf3JRnuXA3WQEPE.cache +1 -0
  42. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bdlz-DcjpjXaRc8QEmhSLXzDbN85HSjs7VXL3I_7nbU.cache +3 -0
  43. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dDJO-r8awTmADJ-Ne01_H79_qZ8U0d2Ahj7Bc3FT70c.cache +0 -0
  44. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dNF2ukLKDpO0RmR9-3IT4fnGg9ZF-AOnZfLIrJUYHZs.cache +1 -0
  45. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dS7pMF2ii5ZkDYkhzCxK_C30tFDaRBFfTrC_0hj2xfI.cache +1 -0
  46. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/dlrmLs3TSwudjf5ZZ_DQS17J0PsiNBiTb0IiPPCyb1Q.cache +1 -0
  47. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/eNhevz-kNZVoOnJmiGeHE2KKiOwjb6kNVPyB9Ur3EgA.cache +0 -0
  48. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/eaMCjSQejC69MWYQVPHU3RbGCBaheIzg_WWfVWfhLzI.cache +1 -0
  49. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/egMbH32eTzuX13gLF6RDrG0sV25lmpEVBw_PCH7W3P8.cache +0 -0
  50. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gh4900WYTp3k54oueT9bjoZdXNzwhCbB9lKATVkNNdA.cache +0 -0
  51. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gj7jbeiYIdeoQeoh9p96r2xSlkLhFW4cqQeFKrzZJDc.cache +0 -0
  52. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +2 -0
  53. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/kgMXuDsCZfaxW1Lh-Uu8_1YrXWpos1NBsgvQX8m72Gw.cache +1 -0
  54. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/lNNFtSwspLqiE733Wf3cWM9qo-AeM5uspXGDfh3VXA4.cache +1 -0
  55. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/m36EDdApBppvyoX6m8cNCOm1eyt7pipkfASRya0sKqM.cache +1 -0
  56. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/o_-R9-DIl5YPAMqah1UgwgGdo4Rms5w2rNAai5hl-ok.cache +3 -0
  57. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/oqHS-Ko3TRt95I3q_6uYlMxx-dgFC0W775str0dffWY.cache +1 -0
  58. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/owKtJsVnE7xbHv_PZT3Zzch0O0PdpTCzbBznhcSNqs4.cache +0 -0
  59. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  60. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/pZk6Oy6k3owjI1cNUsbiG6cQ_UylcLZ8RfB7dwDmVjk.cache +1 -0
  61. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/py11CR-KCSKePHzLd3ApUBpFgt_H9HoeuhNUD_yuBkY.cache +1 -0
  62. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qxHWRfgGp7Wxpe09d1fwz5TZZX4B2dxNDfGtbatSSls.cache +1 -0
  63. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/sE0Z9G_praJn_h0tbTi6P1cZLCrnPn-PBNc5dgHPrUI.cache +1 -0
  64. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/tNWvv7PPhTlygBwzSn08kwR5REwfBeIzMXDuM_nBgN4.cache +0 -0
  65. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/vlZiBelcm4r0Jj2rut7lPCjvWBUCV1l05Buuq5SJr1I.cache +0 -0
  66. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/w8wDbJ9a5U-rSRVsy6KWOVuPXk5LnbSkSpP4bMFj1q0.cache +1 -0
  67. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/wDq-qT8KtrwcVevNuUHDGjEnUZt3wtxtIgWXsTTbX8A.cache +1 -0
  68. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/zUhSaiWxmRoV8rVPtzlyI1BhcyFGA6VAcl7dXipqfAs.cache +2 -0
  69. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/zqVybtT2J3IFdm-D3UENlSjwIS1kqUmE9b7r6taGNZI.cache +0 -0
  70. metadata +129 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f2005da7ce2db6dd77b22eabdd6fe3effba9f89
4
- data.tar.gz: f1965eb93af81bb87ad476cb69ac3bc1d1ff5615
3
+ metadata.gz: b9d6c07a2891abd5fe509cbb2ab094e427f3d2f4
4
+ data.tar.gz: 39a5ad4657f7ed1a05f1861a024c5ea390d21564
5
5
  SHA512:
6
- metadata.gz: b8b8e8434c798764bab4ce34c54bf4c706c4b4fcdcf01bd62869b5d2ecb504accb9da804c52c244209a14d1ce42c4fb06b8b5c5c53637abc5e9a2aafb3de0cd4
7
- data.tar.gz: 0a736d2021a5fd294a9c2fde0be5e4e9f6957489317f9fd6c06946ded8d4d0ac175d6853416e886b89e348dc719540be3d3619f7ba1873055ceabf9c9126f7d3
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
- ControllerResource.new(self, action: action).authorized?(:can?, element, resource)
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
- ControllerResource.new(self, action: action).authorized?(:rights?, element, resource)
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, element, resource)
78
- @controller_name, @resource = get_controller_and_resource(element, resource)
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 instance_variable_get_or_set(method)
111
- @controller.instance_variable_get(var_name(method)) || @controller.instance_variable_set(var_name(method), authorization.send(method))
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
@@ -1,3 +1,3 @@
1
1
  module Adeia
2
- VERSION = "0.11.9"
2
+ VERSION = "0.11.10"
3
3
  end