adeia 0.15.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/config/manifest.js +2 -0
  3. data/app/assets/javascripts/adeia/application.js +1 -1
  4. data/app/assets/javascripts/adeia/flash.js +11 -5
  5. data/app/assets/javascripts/adeia/nested_form.js +27 -23
  6. data/app/assets/stylesheets/adeia/application.css +1 -0
  7. data/app/controllers/adeia/permissions_controller.rb +1 -1
  8. data/app/models/adeia/permission.rb +3 -3
  9. data/app/views/adeia/group_users/_form.html.erb +1 -1
  10. data/app/views/adeia/permissions/_form.html.erb +6 -2
  11. data/app/views/layouts/adeia/_flash.html.erb +14 -6
  12. data/app/views/layouts/adeia/application.html.erb +2 -2
  13. data/config/initializers/assets.rb +2 -0
  14. data/db/migrate/20151003144041_create_adeia_elements.rb +1 -1
  15. data/db/migrate/20151003144208_create_adeia_permissions.rb +1 -1
  16. data/db/migrate/20151003144650_create_adeia_groups.rb +1 -1
  17. data/db/migrate/20151003144706_create_adeia_group_users.rb +1 -1
  18. data/db/migrate/20151003150524_create_adeia_tokens.rb +1 -1
  19. data/db/migrate/20151003150747_create_adeia_actions.rb +1 -1
  20. data/db/migrate/20151003150806_create_adeia_action_permissions.rb +1 -1
  21. data/lib/adeia/authorization.rb +3 -2
  22. data/lib/adeia/database.rb +10 -2
  23. data/lib/adeia/engine.rb +1 -1
  24. data/lib/adeia/version.rb +1 -1
  25. data/spec/README.md +1 -1
  26. data/spec/controllers/articles_controller_spec.rb +4 -4
  27. data/spec/factories.rb +17 -17
  28. data/spec/spec_helper.rb +4 -4
  29. data/spec/test_app/app/assets/config/manifest.js +2 -0
  30. data/spec/test_app/app/views/layouts/application.html.erb +2 -3
  31. data/spec/test_app/db/development.sqlite3 +0 -0
  32. data/spec/test_app/db/schema.rb +9 -15
  33. data/spec/test_app/db/test.sqlite3 +0 -0
  34. data/spec/test_app/log/development.log +276 -113
  35. data/spec/test_app/log/test.log +19423 -12055
  36. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/-j/-jiEgj1PPF5gbWGRpC9tdGLzDuhTXz_L0ZX7kFRpHqQ.cache +1 -0
  37. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{wJ/wJ9n_ktQjYKhtzavz6uuoHaZx0uMKuGlvxUt4Qkh7o8.cache → 1d/1dsLlbjB5CJ_LjchPQ0t6UYPQtDF_GYXY0_6YtQBCRo.cache} +0 -0
  38. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/2_/2_A0MrIPW3lrUjaZNCTLu1Akcwdg3DU2Fd0_jjIGbYE.cache +1 -0
  39. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{MM/MMNRAQLIFJFNsLyI8wbegUgDG8opmD62Coz0BMN4gHE.cache → 2_/2_DZoqQuRc8Hgemwa4Ahd_ho2pjENDlWFO9mQfu-7Pw.cache} +1 -1
  40. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/3Y/3YSjxvWdmWSov1blaf1Lq0IeZD-3IdlgMyRYwEf7ac0.cache +2 -0
  41. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{G2/G2hoGtZORCf1UsP3K7PY63kUX-3z1HhIeyU7gnvh_3k.cache → 3q/3qZtnmpf-lo5QGF0qOg1CM40P-R4lxj0Y66Y8GAC5Ek.cache} +0 -0
  42. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{a_/a_FXTYblXsxMlbQGhKJDEIkd2SmnAz015eh9oHoE50c.cache → 4g/4gN9mtCS6u5uyxqQwD8gxDkemrsi3NOtlBkl6IEDiLI.cache} +0 -0
  43. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/59/59kSBUVt7z6DgFXaZYUmUaF8cUuP5lZBcAoOuKh9DIg.cache +1 -0
  44. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
  45. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{EK/EKZ_CeCeATPRZC9_c9Krttnk0KiAk298lxyZCEKmsU4.cache → 6M/6MEcnHrtKOiBUTGJPvRbQGl3Lq9pN4gd6gsqCKgiOMY.cache} +0 -0
  46. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{Zz/ZzvfT4ca1IERTDoHJpjGaED9EJvxqleMbp7NpQUyGfE.cache → 6Q/6Qd82FgRmJ78Z9-nqlQYlam1JJW5oeO4KLOj7kPvciY.cache} +0 -0
  47. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{DH/DHU1tN0DaGkn4eBNd0WYnI5s-hY4dDUXwjqKoCSETUA.cache → 6Q/6qiSAxZY4f7mjQfzrZhMb4GYXfxfxLdSau-fg0bCmzU.cache} +1 -1
  48. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/6U/6UTZRaXZPo7ZR3AsfJU_KT6kHLC1Wg2075yoFFI46Co.cache +1 -0
  49. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{9c/9cZUdcjwiXAfg7p4X1Xx_-dowP8l0_FCz9MNHJIy5Zs.cache → 6o/6oswcsvROygIERbhyL3HS7EpehocnqTKl_jx9X7MQf0.cache} +0 -0
  50. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{0g/0grPr_ksMtumrrHg4rzttkdhdWRByCZBkg6YX_QzgJ0.cache → Ae/AEmzO43gcQOOGWTEo0S8wzb05M-TtHfHDGTqPsPesrU.cache} +0 -0
  51. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{-x/-xPmOQbJ0NjxOOXEy7YxNrq4YZ2si8Ljqos3kVfwM7U.cache → Ae/AeNjpuYa3zj7jw_N5gkV9Ta16MjQ9ICVZOTzGYrXiJM.cache} +0 -0
  52. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{MP/MPTjZafCPJ0k_vrk7cu_BFLqYNd8H9Gr-9HvcucF8vk.cache → Ce/CeTW2Tz6RgeG2hf7-uErLmxz3EkjsHTdkzXg3Fi1wsU.cache} +0 -0
  53. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{5Q/5Qab4gwNzeVt2luvJB2OS1wbNsJIk591-wx7MDHBVfU.cache → D9/D9jk295WgtI_pkvzdYaa5tQsPhApob8HNiMDU7raOjs.cache} +1 -1
  54. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Dm/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +0 -0
  55. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Ik/IkGcC8fT-7uKeslpXpqPCgLOWwc_tPww2N8ZAdZ50XI.cache +0 -0
  56. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{j-/j-6mLJf1MSWgIySknuPGr1YMr-K6E9SWcZUY6vuba6w.cache → JV/JVKPOUqwQ9tWe3wZjV4EnluyjuedrH3z_UY3bDBBQSo.cache} +0 -0
  57. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Jx/JxXo2tcDFA6K7KBKyAuJOjd1ns70ASGbB5qYjVLoB74.cache +0 -0
  58. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Ku/KuCAV-EBouiYD6PVKX0UYYNIleb-QfMw6IvO2lZg0cw.cache +1 -0
  59. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{sx/sxIjlMfavdbVKEwPRTpwQN1la8x4dFgu7N1FkS1iWzo.cache → L4/L43TzgSSg3pQOxwOobTjMowj7q--ZykjMJfC_C4LBGU.cache} +0 -0
  60. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{5a/5acH7kIXEp2vYYNFGIDTAx-l3Bh7pmXl_8TvLEjjMEs.cache → MF/MFAob4tuSo0uQ_9aQYDzG7GF7JsDr0eOjZwFNtuozC4.cache} +0 -0
  61. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/O4/O4wB-9WJaZ5Rlgfajst9-gTBl3z0usPhAtBxL4Q-SFE.cache +3 -0
  62. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{iC/iC9Miabkq2uOITb0CbjS7dONACohHZC65Xu_7DMOm90.cache → O8/O89HryFkZF1Z2_fme3h6dmHWBnHdLhkQtsW2fVdXR1Q.cache} +0 -0
  63. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
  64. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{_5/_5Pse2GHcEo4kW9yQiDYMq3_v3Pd_Vzmkvn_ygDq_7c.cache → OZ/OZ8MDbqLY4wFF0OlFw6p3W-QQqyaQlC2nk31LwWpHSI.cache} +0 -0
  65. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{8i/8iRvLcN2fFtdwQho27esh7hjf0UUVasSsXk-IjDO-TA.cache → QN/QN-g5bGJb8kh46dZbz37YzOTNZ0H3aMhLyONb0qu7Jg.cache} +0 -0
  66. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/SO/SO4GzoHMqa0kMKE3-1j6SCRsw2q_HfMPQKKfmP4_5c0.cache +1 -0
  67. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/T6/T6tiRoqyIXaZkytUlKzipOctwGUxubogU7DJHvltMHQ.cache +1 -0
  68. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{jO/jOzsPtq7mR0a0FzH3rDA0Fm1JsDvHThqf6jJZh9JMeM.cache → TN/TN5RIxv3eOsUG2BArbTLmk8g63GelzRnKw3F7L3mIkU.cache} +0 -0
  69. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{R4/R4aGRGUeReKtEjbGsprLc1igwOkhiGMQ5WEu_fVtt78.cache → U1/U1JkbW1lehDbKckBsrWnpT_HP9vQYkVtLd-MeISkrz0.cache} +0 -0
  70. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{7M/7M7oOxl-UOKtbI8M7lL6B1jHLwwiVu3R3iXJ2EK-Ywc.cache → UQ/UQIPlzD9E0Ji2FSp39qVQVX5OgEkVPhbkmm168gssXQ.cache} +0 -0
  71. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Wj/WjvqyXVwuGKSXK8PyuL8DD4lP2dRyqa4u_aETcqpAZQ.cache +2 -0
  72. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Xt/Xtuc-XUJQKqOwDcQ-eMU37AiffPJAV1zINc6YWyVtkE.cache +2 -0
  73. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{XE/XEJiHUqaxop42ibrhQZbYiF1h2e0fzz8a45LDxlAeas.cache → Y2/Y2wJoax9YPVNgt2YUK_ere1Gkr15Z0WsisiNwbU6iWQ.cache} +0 -0
  74. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Y3/Y3-yo3ZjzEmtUWyJwzgkuj6yrQwWo_fa6AXiOdyas8o.cache +1 -0
  75. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Zd/Zdk49tPeD1nW7jOfvtEA2L7WSdCLRyh21XReCSo1LfA.cache +2 -0
  76. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{0h/0heK_vgZ3ORhbt2xzCEN-gqKSzt4hgOc0-fYM_jc69c.cache → ac/ac72wzy3oH2SnXEDa3_TOFPp8s2EyzZZjnMoqNgGLMg.cache} +0 -0
  77. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bP/bPzU50v1DfO2a2zm4Rkls5kdnEvLwEnD_J-t7YeP4jk.cache +3 -0
  78. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{4G/4GoGGRTINbVeoYMIP3IJCsxpt96ZrtuGUSHT4yw3Byc.cache → bi/bijrA8D3D5GspLvRbMKDBnaIZhRa-53_D0P6YKtSbI0.cache} +1 -1
  79. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/cd/cd1RZoWrCfxrVEsxUElJbVNt72n-93mP_c0eRbPpoms.cache +1 -0
  80. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{Yf/Yf-0B5QkuZsU011xut1t29opzz_qEa3sicEKhB5hI7c.cache → eA/eAtHO180Q_OwrAOAUfpMAsrPyFF-MOmZe8TexjTDCpE.cache} +0 -0
  81. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/eJ/eJFt2F9aErXkCFP31i6vXYbzHVqujKFc6HatEKCKBEo.cache +1 -0
  82. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{b_/b_5Xj3k3q7wZdRdpEsYuki_IsiOtURXJNSeH9UhJUQQ.cache → ff/ffGW8tN5s89LeTFBoZLiQurKB3xfNtiLvE-NgK1hfow.cache} +0 -0
  83. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{21/213QxnAYvdYgnjwK-RFgfuP0C1ENBjuOisCny3yf3Ds.cache → h2/h2IaPh9y4iCCX-nvC4eI5z30BryCaTDldL9TNL1kj-I.cache} +0 -0
  84. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{1R/1RSXaFNFPXtbxevPLq9rddiHmtWYsQ-9tgpRdEdEWU0.cache → hV/hVzYRX0iEKx2rQXtyO-C6HhyJXptGugrXwUgulQBrZc.cache} +0 -0
  85. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
  86. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{Mc/Mc1pmqMyevjQjrkgzlSgoqItuwBkcAeWMNzgtnQCQTY.cache → ia/iaS83en8zYCUE-FPlQD_9p90f1VRE66RJg-59OXb1d0.cache} +0 -0
  87. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{fV/fVkncxlR4aZQddgpDdLp5vn_DvPevWFzpT1FlvQZlMQ.cache → jP/jP8g5iuQw2y8YnDYUKjcH3DBxTiAUD5GLsZ3Xr29d18.cache} +0 -0
  88. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT1rBlEvYyzmAqkxjPuEwiWR0vpBJ6-ixaI55UVQmsk.cache +1 -0
  89. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{xq/xqrUtZv5wvB5sasKsuR5BFbynK9iumktH0dJcdltBLI.cache → lw/lwSqxvAAj1RTe4QShwyzV9J1sq8wwdG4DAPn4eMzuH8.cache} +0 -0
  90. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{O2/O2oO3l-MQho3PQK7YMTjVoWXcBm7AXwue8wpQkSFkNg.cache → oX/oXu2NCsnCnkCUWAgRUT9UazkLSM5W74m8PGdNvGP310.cache} +0 -0
  91. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/o_/o_TnCsaOF483OcFtryOZBO0n2ICjQdOktIcx5-Hj4pc.cache +1 -0
  92. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
  93. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qT/qTilMwOjc0EzKZ_-UUqEP5wpUeyUlFrwEhA1EJf_uv8.cache +1 -0
  94. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/q_/q_hv-X1P5aS2bjJ3cYmDeIn1asEKomoBN5dXLw_gSy8.cache +1 -0
  95. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/s2/s2jarJbtJahppRADkj_l63fE2Ea82VlR9D3rpn0x8w4.cache +1 -0
  96. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{GL/GLPzGTTLeOymWiykUaZ6NAuFiKQyJAtBmJo47pO5E0A.cache → sc/sc-jHPQEcSE4uzyAGG1Mzdd7FsfPgt58R7uauy_vkyI.cache} +0 -0
  97. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/tH/tHs1QogtODe6AE9Nr1qQ5ANma33zqXX-YWOJNu_NQw0.cache +2 -0
  98. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/yh/yhs1KEHNWlgQAlqOBBQWxAORD0g62BOACSTSLKeC5KE.cache +1 -0
  99. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/{1R/1R6gMmqdnnh8f2vSj0dEUVsX5XHOolHRbiFdAUAo-QA.cache → yy/yyWH-L_zBwXL696k42PC9owMwhUhKnLsbnyRF8zJifo.cache} +0 -0
  100. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/17/17Ji1zysIV0QzenVJg2bTQM3byl-5t58mUNbYZrkhGM.cache +1 -0
  101. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/1H/1HyneLliGLAocm4KVeWzj5tKGWdomYfz7rWloxQlXRc.cache +2 -0
  102. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/3S/3S6PZldZhpcM_6P5jkehVOMAObIqw6X4V96E8TxtXrI.cache +1 -0
  103. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  104. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/8J/8JOedZF9m0P656fHle8DWmmJffxhiciEo-B9Ta6NyG8.cache +2 -0
  105. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/Ce/CeTW2Tz6RgeG2hf7-uErLmxz3EkjsHTdkzXg3Fi1wsU.cache +1 -0
  106. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/DV/DVjeqdOW-W_v2MIcd3abmUAMLCeHYjflCX-MKtsY69Y.cache +0 -0
  107. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/Dm/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +3 -0
  108. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/Ga/GaHD91faGavVSEA-G3DmnhO86dj1qpa4jMaWa5wYuik.cache +1 -0
  109. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/J8/J8sYsNeTeOEtCrjQG6MIkRMhzjK0hCeHqRAcKLMRdA4.cache +1 -0
  110. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/JV/JVKPOUqwQ9tWe3wZjV4EnluyjuedrH3z_UY3bDBBQSo.cache +1 -0
  111. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/L4/L43TzgSSg3pQOxwOobTjMowj7q--ZykjMJfC_C4LBGU.cache +1 -0
  112. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
  113. data/spec/test_app/tmp/cache/assets/sprockets/{v3.0/qW/qW4N5COnEFgj6oatNWCCMuMJysZWGO3l5HXmS7lzsCw.cache → v4.0.0/VH/VHuK24wg04T1MJhF_Q_sbT9h4J9TgV2EwwSKlVX3gAc.cache} +0 -0
  114. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/We/WeHv9UitJfw__MSd_icLUSVbJupRX9bulR_sbJY81vw.cache +0 -0
  115. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/ac/ac72wzy3oH2SnXEDa3_TOFPp8s2EyzZZjnMoqNgGLMg.cache +1 -0
  116. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/fn/fnArLcbUsmH-hs0ivYjpbsWCveny2dWKz98ANZsvklc.cache +0 -0
  117. data/spec/test_app/tmp/cache/assets/sprockets/{v3.0/9g/9gzj9WRt28JeGrak8lYlmcqttKESOZ9pX38x_xNmNYw.cache → v4.0.0/gP/gP6amosF7TvInNt0I9O8LEhVNA2kCQ7kiQO8vk4ppHE.cache} +0 -0
  118. data/spec/test_app/tmp/cache/assets/sprockets/{v3.0/3s/3s2ubOh60EW6GFzHgCNICJbubOXdEc9POlBIImEAgoI.cache → v4.0.0/kF/kFINDgg2Prb3IboJtWY8HcF5gamZVJvtra5H1YvZvBA.cache} +0 -0
  119. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/mm/mmJkOfX8bMOx2AlGcwUB0Df0dHe2TkypLXAlxTAFIGM.cache +1 -0
  120. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/oc/occ60QAfY0sqlYomqa81jJ_HTYPL28bmOGnVF34j_V0.cache +2 -0
  121. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/py/pyGAJrY1mgvF3JKeIGd7oSFKe34ZIyP04fOnInQI9Pc.cache +2 -0
  122. data/spec/test_app/tmp/cache/assets/sprockets/v4.0.0/xE/xE7l4Z-MH0frwjsuXagYzccFMXvxR4c9vq_w4Rr3pjw.cache +1 -0
  123. metadata +276 -297
  124. data/spec/test_app/app/assets/javascripts/application.js +0 -13
  125. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/-P/-PwnoVPgZIfEUzA1i0UhHHlerwAWZArcYP285at5QKY.cache +0 -1
  126. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/0_/0_c4gQ96x4tStr84dC2F8DasMHPFfeXJnAUo2SfSpQs.cache +0 -1
  127. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/0h/0hlsPvcoYLh3gf7747FoDR4AOXz_F-nhekWHQ8ewcVM.cache +0 -0
  128. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/0u/0u8DYiD7GgEDCvWgdgpgIBAkUL2Io3sEPD30xnj6ovc.cache +0 -1
  129. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/1a/1aC3MVIALgao5c8Y5_Sy2AbsP_LiQ6POdX8dILu8rU0.cache +0 -1
  130. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/1o/1oKo6COKwQIMMMZbaMkesf7pFDe3IVzQgfBazv109fs.cache +0 -0
  131. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/2Y/2YZTB-zHPgKDHhZF2XXpiaBEmcg3ASujlcYUxI5mNHA.cache +0 -0
  132. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/3Z/3Zttm5XhCEpoT7wlmTbBDAkMbJ3-IvY1vGmbv1LUaRY.cache +0 -0
  133. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/4P/4PCH25BM1OyR4mbVDQNz6BhEIxpulZF74Yfameurc-g.cache +0 -0
  134. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/5w/5wXxKwflbcoRhaRZ5nCWnpnrl2RbbC4mHcSfClosM6I.cache +0 -1
  135. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/6-/6-cWXVmwn7b8hzfYylp8fZ_vfqd0eGksxZqlKOfp1n0.cache +0 -1
  136. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/7F/7F8UKLbnh4J6h5zPerALERLLiqxubEG6BKD5d0IR7lo.cache +0 -3
  137. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/8a/8aSp2odHFsOC7Xbv0elG458KoKULl2nCvhnIdR4069I.cache +0 -3
  138. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/9s/9s-dum2R86ZzXegxvKnd2rU-rbq9gHm3PmbV_Qqfk8Y.cache +0 -0
  139. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/9x/9x18v9diqtsF862ref4aqytoQB5DV585XTerA1XxWEQ.cache +0 -0
  140. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/BT/BT9aVdS1oIydTFx_reocCmwe-MCvaGmdbGu4DIxyDXk.cache +0 -0
  141. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Ci/CidlTvvi-MPJzGyzWyPzKtyzdImg3YFRT71WTitXpmk.cache +0 -1
  142. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/EK/EKhUHzk4g5TW5yd5BlsoRrl0D9i7yAuA79FKpAV84Mo.cache +0 -0
  143. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/FI/FI9wzbr-m_52_shj8n3renDMwoklBgaSn8fyLa2jZ4w.cache +0 -1
  144. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/HW/HWs4pTTaJdh5tRyjwH-51slX_hV5WXmwR0v0uGLhWms.cache +0 -1
  145. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Hk/HkIa2l415ZwDGD_hwG3HlYAVo7erUmwZfczJtxCr6OQ.cache +0 -0
  146. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Iy/IykX6ucgHtRsb58RKT3cl_B6vAjU8MuI3si_M5kpqBc.cache +0 -0
  147. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/M8/M8PRYc-U37UYazwUyFDSTKHLOabf9NNAmHBUbLk9hkM.cache +0 -1
  148. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/MN/MN7-qQoTra5YA8TQ6eCmj8e2Q5JHskogkCjGl047bK0.cache +0 -2
  149. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/OQ/OQZqZfteDyAJeDxmQkHsxX2X7oSSzGgwUUZrVgXv0ik.cache +0 -0
  150. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/P2/P2IUISqKMUGUYb_iyMz6q0h3kXAwKxlimUpN7eoxOZI.cache +0 -0
  151. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/R5/R5K7ZwuVEpj2Op97NfLRvPoptJklXXgXJITSRvE4uEM.cache +0 -3
  152. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/SS/SS5viL-oUGG_zQiiu7RDzLwK4f083ItBFmkYInh0sMI.cache +0 -1
  153. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/TF/TFDMH5kNNHhhk-tPvg2s9Lzm0HJ-Ci-ClJnh6sML_Ww.cache +0 -1
  154. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/UZ/UZymea-LQVFhgTULttbOmvZbOMpEBzpmDmwM5oUe-JI.cache +0 -1
  155. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/VC/VCXR2Zw7QD60KrkvPgBwgVVjyT-Hp4e8MvuwYroEEJs.cache +0 -1
  156. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/WA/WAuP0Oymn_Znv5ZIMRIjurlIWbzJaEBTaHzgDg-GGnE.cache +0 -0
  157. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/WI/WID3jSshPvMN2zzemnYfE9s2Jrt2f2XRFZSNSX-9k7E.cache +0 -1
  158. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Wr/WrZFzMXf_dj9Z58d4DNL8_1MRK3Hui_fA821vHMG90Q.cache +0 -1
  159. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/Z2/Z24BktP58xkwOEAAoU357X0PZw3xijWHCE-3eQRpan8.cache +0 -1
  160. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/ZE/ZEjXvKodbmrduBbJ64yPMKc9dbDCHIAyYGvmL9EMu-I.cache +0 -1
  161. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/_a/_aeE9UCfhMFMyojfFl0ITfyoHzh2B71G8WIt6eaJCuo.cache +0 -0
  162. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/_e/_epoDOer1mNXwX7NFV3_vyYJpm0Aqyjjm2G7Ozm7mSk.cache +0 -1
  163. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/aN/aNFmd9lVu-wejiqk7lgLVHYD1T44RjPva9NjV8z3mo4.cache +0 -1
  164. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/ad/adYOcoqkRHfVONMmrx1DPjmWqsiiki60KKjQ9a61ttQ.cache +0 -0
  165. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bJ/bJb89h1Q58W756426js9hwhThg6ty2Ms_OyXTQbJwWU.cache +0 -1
  166. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bX/bXjYE3MolA7lTFHHMrcPe7fgYd_PRuJskGDvggX1BNc.cache +0 -1
  167. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/bZ/bZEXa53aaC_q_BJk46l2QmjAZajucGRRi_lOpwIW_sM.cache +0 -1
  168. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/c0/c0a9H4F8n0xKJvJpGhH60cUDGglsNx5MFivWZ_KP8KY.cache +0 -1
  169. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/cg/cgIpRQLnau60cHNlRj0y1vgiRpmI37z9zpb1ooeLRbg.cache +0 -1
  170. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/g9/g96HUY0LJb3_RCGO09tosJRyeyV7ch85sNCOToK-KkY.cache +0 -1
  171. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gT/gT8gAf4etKrlCUcGg1R3zpXtQVd0_4AIZrOXhMa7Ej4.cache +0 -1
  172. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/gc/gcMZQfoFjgm9FCDdcWgJsT-jswwmfKak1TL12k7rFm0.cache +0 -0
  173. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/hg/hgsUUxUMFm0BFvl45gOH1OEZLlgz04ki68iLbpVnRRA.cache +0 -1
  174. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/iP/iPWMmdoB44FbOhqQDiXao-zB1DtJRKE6XAqJ_gltP4E.cache +0 -1
  175. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/l1/l171-bHBNKF4K420g9my0Q6P7MhqLaBfZFLGfsXqF9k.cache +0 -1
  176. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/l8/l8wKhjy01GGc9ZdDRQXn61PTPHcp8jR1VngKXxRAboA.cache +0 -0
  177. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/nN/nNfPsdatQavm_2QEqsL0wEFZfnTaf7Up5p_-HvOvN1I.cache +0 -0
  178. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/oD/oD8TIT96W7pPuhPoMBF70HtLrsNiPYlbqQasPBnjSbs.cache +0 -1
  179. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qJ/qJrMyQzZ7Zqrl2Z7-_kNkMxGvZUaJs-Z2brltHOqp0k.cache +0 -1
  180. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qW/QW1iXYWT2qlhLSbCZkO5gnTZcyqaTOEEFAcyVkf1GLo.cache +0 -1
  181. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/qk/qkoe3UlTyGITOz4mVPDJSI240Dg4EZwwGtvosQ4N7G4.cache +0 -1
  182. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/rX/rXNo2b4U9llnAX9oRSOg_pEbM4wKWYPw2yr8EfvoVOk.cache +0 -1
  183. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/u2/u247Pf6I-tvIlB340ww_Sj4shmsw6asjpAOrkmj2MtE.cache +0 -0
  184. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/u7/u7MRveaOtAWI2uHCVm-BXxOxWN2jBdEBiMwT6IixTt0.cache +0 -1
  185. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/uS/uSyNK-hHhdMpHNLlgoF8mMgmuUcl2kU6Ynjwqbo-IUU.cache +0 -2
  186. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/v0/v0dr0Ls7_icYtL9HXfpah77VL0Ao52i8PytWwjyf21Q.cache +0 -1
  187. data/spec/test_app/tmp/cache/assets/sprockets/v3.0/xh/xhQdBrDmBUB-zMIslwp9qFFRvU4ji76iqfzwdYICCBM.cache +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 605ce68d14c5ef2253c3781728549c7d2a1f3f96
4
- data.tar.gz: 5676dd30928133149c7065863b8efde3d74670de
2
+ SHA256:
3
+ metadata.gz: fc3818ab4c31e2b816d9e922c0b4c31790052c4afbe853164e4cefafed00421b
4
+ data.tar.gz: 17aa1f60f15b7712591da8c01fe6a57b4a0967c5483cdae86aad10d621f92886
5
5
  SHA512:
6
- metadata.gz: e71c77a3fa2bf4451eb47cccc57dba45b76e3d980b8f5e40d353439c8679c468148508cc18777b26ee85677393e96d3e0d67b6f32e571982b060b4a6a7d6ee9d
7
- data.tar.gz: 46155469ad139615faac10e783d627e14166989d709e8dfda97b3184469a838a69fce00c65cad3028cc754eb4efab4f16214a84beca3b681e76925b771a7b0d3
6
+ metadata.gz: a6980f26f072c7925947c45c1c0aed945a344a2c198a0682f5c6d442299f6e6fc8cbf3fc28d4341a82b53a79e64f61d35443d775eed1e9750d25cf4d2d1ec199
7
+ data.tar.gz: 134eb7cd2ad22cec00948a11b3995d599b2736f77bd841624a803c4814015b9038aaa8abb3b28bbb6b2341b8d9877e2017373dbded30d5e7cfdab4f2ed907168
@@ -0,0 +1,2 @@
1
+ //= link_directory ../stylesheets/adeia .css
2
+ //= linl_directory ../javascripts/adeia .js
@@ -10,5 +10,5 @@
10
10
  // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
11
  // about supported directives.
12
12
  //
13
+ //= require ./flash.js
13
14
  //= require snaptable
14
- //= require_tree .
@@ -1,5 +1,11 @@
1
- $(document).on("ready page:load", function() {
2
- $('body').on("click", "#flash .close", function() {
3
- $('#flash').hide();
4
- });
5
- });
1
+ document.addEventListener("DOMContentLoaded", (e) => {
2
+
3
+ const flash = document.querySelector("#flash")
4
+
5
+ if (flash != null) {
6
+ document.querySelector("#flash .close").addEventListener("click", () => {
7
+ flash.remove()
8
+ });
9
+ }
10
+
11
+ });
@@ -1,26 +1,30 @@
1
- $(document).on("ready page:load", function() {
2
-
3
- $(".add-fields").click(function(e) {
4
- e.preventDefault();
5
- var count = $(this).attr("data-count"), type = $(this).data("type"),
6
- lastFields = $("." + type + "-fields:last"), newFields = lastFields.clone();
7
- count++;
8
- newFields.find("input, select")
9
- .attr("name", function( i, val ) { if(val) { return val.replace(/\d/, count) } })
10
- .attr("id", function( i, val ) { if(val) { return val.replace(/\d/, count) } })
11
- .val([]);
12
- newFields.find("label").attr("for", function( i, val ) { return val.replace(/\d/, count) });
13
- newFields.insertAfter(lastFields);
14
- $(this).attr("data-count", count);
15
- newFields.show();
1
+ const addButton = document.querySelector(".add-fields")
2
+ addButton.addEventListener("click", (e) => {
3
+ e.preventDefault();
4
+ let count = Number(e.target.dataset.count) + 1;
5
+ const type = e.target.dataset.type;
6
+ const lastFields = document.querySelectorAll("." + type + "-fields");
7
+ const lastField = lastFields[lastFields.length - 1]
8
+ const newFields = lastField.cloneNode(true);
9
+ const label = newFields.querySelector("label");
10
+ label.setAttribute("for", label.getAttribute("for").replace(/\d/, count));
11
+ newFields.querySelectorAll("input, select").forEach(element => {
12
+ element.setAttribute("name", element.getAttribute("name").replace(/\d/, count));
13
+ element.setAttribute("id", element.getAttribute("id").replace(/\d/, count));
14
+ element.value = ""
16
15
  });
16
+ lastField.after(newFields);
17
+ newFields.style.display = "block";
18
+ e.target.dataset.count = Number(count) + 1;
19
+ })
17
20
 
18
- $(".fields-for").on("click", ".remove-fields", function(e) {
21
+ const fieldsFor = document.querySelector(".fields-for");
22
+ fieldsFor.addEventListener("click", (e) => {
23
+ if (e.target.classList.contains("remove-fields")) {
19
24
  e.preventDefault();
20
- var type = $(this).attr("data-type"),
21
- fields = $(this).parents("." + type + "-fields");
22
- fields.find("input[identifier=destroy]").val("1");
23
- fields.hide();
24
- });
25
-
26
- });
25
+ const type = e.target.dataset.type;
26
+ const fields = e.target.closest("." + type + "-fields");
27
+ fields.querySelector("input[identifier=destroy]").value = 1
28
+ fields.style.display = "none";
29
+ }
30
+ })
@@ -12,4 +12,5 @@
12
12
  *
13
13
  *= require_tree .
14
14
  *= require_self
15
+ *= require snaptable
15
16
  */
@@ -41,7 +41,7 @@ module Adeia
41
41
  private
42
42
 
43
43
  def permission_params
44
- params.require(:permission).permit(:permission_type, :adeia_element_id, :global_owner, :read_right, :create_right, :update_right, :destroy_right, :resource_id, actions_attributes: [:name])
44
+ params.require(:permission).permit(:permission_type, :adeia_element_id, :global_owner, :read_right, :create_right, :update_right, :destroy_right, :resource_id, actions_attributes: [:id, :name, :_destroy])
45
45
  end
46
46
 
47
47
  end
@@ -24,7 +24,7 @@ class Adeia::Permission < ActiveRecord::Base
24
24
  end
25
25
 
26
26
  def autosave_associated_records_for_actions
27
- self.actions = actions.reject{ |a| a._destroy == true }.map do |action|
27
+ self.actions = actions.reject{ |a| a.marked_for_destruction? }.map do |action|
28
28
  Adeia::Action.find_or_create_by(name: action.name)
29
29
  end
30
30
  end
@@ -77,8 +77,8 @@ class Adeia::Permission < ActiveRecord::Base
77
77
  end
78
78
 
79
79
  def presence_of_a_right
80
- unless read_right || update_right || destroy_right || actions.any?
81
- errors[:base] << I18n.t("errors.messages.right_required")
80
+ unless read_right || create_right || update_right || destroy_right || actions.any?
81
+ errors.add(:base, I18n.t("errors.messages.right_required"))
82
82
  end
83
83
  end
84
84
 
@@ -3,7 +3,7 @@
3
3
  <%= render 'error_messages', object: f.object %>
4
4
 
5
5
  <%= f.label :user_id %>
6
- <%= f.collection_select :user_id, User.all, :id, :name %>
6
+ <%= f.collection_select :user_id, User.all, :id, :email %>
7
7
 
8
8
  <%= f.label :adeia_group_id %>
9
9
  <%= f.collection_select :adeia_group_id, Adeia::Group.all, :id, :name %>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <%= f.label :permission_type %>
6
6
  <%= f.select :permission_type, options_for_enum(@permission, :permission_type) %>
7
-
7
+
8
8
  <%= f.label :adeia_element_id %>
9
9
  <%= f.collection_select :adeia_element_id, Adeia::Element.all, :id, :name %>
10
10
 
@@ -32,6 +32,8 @@
32
32
  <%= action_f.label :name %>
33
33
  <%= action_f.text_field :name %>
34
34
 
35
+ <%= action_f.hidden_field :_destroy, identifier: "destroy" %>
36
+
35
37
  <button class="remove-fields" data-type="actions"><%= t "adeia.permissions.form.actions.destroy" %></button>
36
38
  </div>
37
39
 
@@ -44,4 +46,6 @@
44
46
 
45
47
  <%= f.submit %>
46
48
 
47
- <% end %>
49
+ <% end %>
50
+
51
+ <%= javascript_include_tag "adeia/nested_form.js" %>
@@ -1,8 +1,16 @@
1
1
  <% if flash.any? %>
2
- <% flash.each do |key, value| %>
3
- <%= content_tag(:div, id: "flash", class: "flash-#{key}") do %>
4
- <%= value %>
5
- <span class="close"><%= t "application.close" %></span>
2
+ <div id="flash">
3
+ <% flash.each do |key, value| %>
4
+ <div class="flash-<%= key %>">
5
+ <div class="wrapper">
6
+ <span class="flash-content"><%= value.html_safe %></span>
7
+
8
+ <svg classs="close" width="100%" height="100%" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.5;">
9
+ <path d="M0,100L100,0"/>
10
+ <path d="M0,0L100,100"/>
11
+ </svg>
12
+ </div>
13
+ </div>
6
14
  <% end %>
7
- <% end %>
8
- <% end %>
15
+ </div>
16
+ <% end %>
@@ -2,8 +2,8 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>Adeia</title>
5
- <%= stylesheet_link_tag 'adeia/application', media: 'all', 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'adeia/application', 'data-turbolinks-track' => true %>
5
+ <%= stylesheet_link_tag 'adeia/application', media: 'all' %>
6
+ <%= javascript_include_tag 'adeia/application' %>
7
7
  <%= csrf_meta_tags %>
8
8
  </head>
9
9
  <body>
@@ -0,0 +1,2 @@
1
+ # add the application file to the pipeline
2
+ Rails.application.config.assets.precompile += %w( adeia/application.css adeia/application.js adeia/nested_form.js)
@@ -1,4 +1,4 @@
1
- class CreateAdeiaElements < ActiveRecord::Migration
1
+ class CreateAdeiaElements < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_elements do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateAdeiaPermissions < ActiveRecord::Migration
1
+ class CreateAdeiaPermissions < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_permissions do |t|
4
4
  t.references :owner, polymorphic: true, index: true
@@ -1,4 +1,4 @@
1
- class CreateAdeiaGroups < ActiveRecord::Migration
1
+ class CreateAdeiaGroups < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_groups do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateAdeiaGroupUsers < ActiveRecord::Migration
1
+ class CreateAdeiaGroupUsers < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_group_users do |t|
4
4
  t.references :adeia_group, index: true, foreign_key: true
@@ -1,4 +1,4 @@
1
- class CreateAdeiaTokens < ActiveRecord::Migration
1
+ class CreateAdeiaTokens < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_tokens do |t|
4
4
  t.string :token
@@ -1,4 +1,4 @@
1
- class CreateAdeiaActions < ActiveRecord::Migration
1
+ class CreateAdeiaActions < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_actions do |t|
4
4
  t.string :name
@@ -1,4 +1,4 @@
1
- class CreateAdeiaActionPermissions < ActiveRecord::Migration
1
+ class CreateAdeiaActionPermissions < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :adeia_action_permissions do |t|
4
4
  t.references :adeia_action, index: true, foreign_key: true
@@ -14,9 +14,10 @@ module Adeia
14
14
  end
15
15
 
16
16
  def check_permissions!
17
- if !@user
17
+ load_permissions
18
+ if !@user && @rights.empty?
18
19
  raise LoginRequired
19
- elsif load_permissions && @rights.empty?
20
+ elsif @rights.empty?
20
21
  raise AccessDenied
21
22
  end
22
23
  end
@@ -51,11 +51,19 @@ module Adeia
51
51
  end
52
52
 
53
53
  def user_groups
54
- @user_groups ||= Adeia::Group.joins(:group_users).where(adeia_group_users: { user_id: @user.id }).to_a
54
+ if @user_groups.nil?
55
+ @user_groups = []
56
+ @user_groups = Adeia::Group.joins(:group_users).where(adeia_group_users: { user_id: @user.id }).to_a if @user
57
+ end
58
+ return @user_groups
55
59
  end
56
60
 
57
61
  def owners
58
- @owners ||= user_groups.push @user
62
+ if @owners.nil?
63
+ @owners = user_groups
64
+ @owners = user_groups.push @user if @user
65
+ end
66
+ return @owners
59
67
  end
60
68
 
61
69
  end
data/lib/adeia/engine.rb CHANGED
@@ -13,7 +13,7 @@ module Adeia
13
13
  g.test_framework :rspec
14
14
  g.assets false
15
15
  g.helper false
16
- g.factory_girl false
16
+ g.factory_bot false
17
17
  end
18
18
 
19
19
  initializer 'Adeia.requirements' do |app|
data/lib/adeia/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Adeia
2
- VERSION = "0.15.1"
2
+ VERSION = "1.0.0"
3
3
  end
data/spec/README.md CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  If you need to run the migrations
4
4
 
5
- `bundle exec rake app:db:migrate`
5
+ `bundle exec rake app:db:migrate RAILS_ENV=test`
@@ -14,7 +14,7 @@ describe ArticlesController, :type => :controller do
14
14
 
15
15
  it "responds successfully" do
16
16
  get :index
17
- expect(response).to be_success
17
+ expect(response).to have_http_status(:success)
18
18
  end
19
19
 
20
20
  it "loads the records" do
@@ -82,7 +82,7 @@ describe ArticlesController, :type => :controller do
82
82
 
83
83
  it "responds successfully" do
84
84
  get :show, params: { id: @article.id }
85
- expect(response).to be_success
85
+ expect(response).to have_http_status(:success)
86
86
  end
87
87
 
88
88
  it "loads the record" do
@@ -97,7 +97,7 @@ describe ArticlesController, :type => :controller do
97
97
 
98
98
  it "responds successfully" do
99
99
  get :new
100
- expect(response).to be_success
100
+ expect(response).to have_http_status(:success)
101
101
  end
102
102
 
103
103
  end
@@ -110,7 +110,7 @@ describe ArticlesController, :type => :controller do
110
110
 
111
111
  it "responds successfully" do
112
112
  get :edit, params: { id: @article.id }
113
- expect(response).to be_success
113
+ expect(response).to have_http_status(:success)
114
114
  end
115
115
 
116
116
  it "loads the record" do
data/spec/factories.rb CHANGED
@@ -1,33 +1,33 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
 
3
3
  factory :token, class: "Adeia::Token" do
4
4
  token { SecureRandom.urlsafe_base64 }
5
- is_valid true
5
+ is_valid { true }
6
6
  exp_at { 1.month.from_now }
7
7
  end
8
8
 
9
9
  factory :permission, class: "Adeia::Permission" do
10
10
  transient do
11
- element_name 'admin/articles'
12
- group_name "admin"
13
- type_name 'all_entries'
14
- action 'share'
11
+ element_name { 'admin/articles' }
12
+ group_name { 'admin' }
13
+ type_name { 'all_entries' }
14
+ action { 'share' }
15
15
  end
16
16
  element { Adeia::Element.find_or_create_by(name: element_name) }
17
17
  owner { Adeia::Group.find_by_name(group_name) || create(:group, name: group_name) }
18
18
 
19
19
  permission_type { Adeia::Permission.permission_types[type_name] }
20
20
 
21
- resource_id nil
22
- read_right false
23
- create_right false
24
- update_right false
25
- destroy_right false
21
+ resource_id { nil }
22
+ read_right { false }
23
+ create_right { false }
24
+ update_right { false }
25
+ destroy_right { false }
26
26
  actions {[ Adeia::Action.find_or_create_by(name: action) ]}
27
27
  end
28
28
 
29
29
  factory :group, class: "Adeia::Group" do
30
- name "admin"
30
+ name { "admin" }
31
31
  end
32
32
 
33
33
  factory :user_group, class: "Adeia::GroupUser" do
@@ -38,14 +38,14 @@ FactoryGirl.define do
38
38
  ### Test App factories
39
39
 
40
40
  factory :user do
41
- name "admin"
42
- password "12341"
43
- password_confirmation "12341"
41
+ name { "admin" }
42
+ password { "12341" }
43
+ password_confirmation { "12341" }
44
44
  end
45
45
 
46
46
  factory :article do
47
- title "Des ours meurt chaque année"
48
- content "Chaque année, plus de 1000 ourse blancs meurt"
47
+ title { "Des ours meurt chaque année" }
48
+ content { "Chaque année, plus de 1000 ourse blancs meurt" }
49
49
  user { User.find_by_name("editor") || create(:user, name: "editor") }
50
50
  end
51
51
 
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,10 @@
1
- require 'factory_girl_rails'
1
+ require 'factory_bot_rails'
2
2
  require 'capybara/rspec'
3
3
  require 'rspec/active_model/mocks'
4
4
  require 'rails-controller-testing'
5
5
 
6
- FactoryGirl.definition_file_paths = [ File.join(File.dirname(__FILE__), '../spec/factories') ]
7
- FactoryGirl.find_definitions
6
+ FactoryBot.definition_file_paths = [ File.join(File.dirname(__FILE__), '../spec/factories') ]
7
+ FactoryBot.find_definitions
8
8
 
9
9
  RSpec.configure do |config|
10
10
 
@@ -16,6 +16,6 @@ RSpec.configure do |config|
16
16
  mocks.verify_partial_doubles = true
17
17
  end
18
18
 
19
- config.include FactoryGirl::Syntax::Methods
19
+ config.include FactoryBot::Syntax::Methods
20
20
 
21
21
  end
@@ -0,0 +1,2 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../stylesheets .css
@@ -1,9 +1,8 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title>Dummy</title>
5
- <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
4
+ <title>Test App</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all' %>
7
6
  <%= csrf_meta_tags %>
8
7
  </head>
9
8
  <body>
Binary file
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -18,11 +17,10 @@ ActiveRecord::Schema.define(version: 20151012185726) do
18
17
  t.integer "adeia_permission_id"
19
18
  t.datetime "created_at", null: false
20
19
  t.datetime "updated_at", null: false
20
+ t.index ["adeia_action_id"], name: "index_adeia_action_permissions_on_adeia_action_id"
21
+ t.index ["adeia_permission_id"], name: "index_adeia_action_permissions_on_adeia_permission_id"
21
22
  end
22
23
 
23
- add_index "adeia_action_permissions", ["adeia_action_id"], name: "index_adeia_action_permissions_on_adeia_action_id"
24
- add_index "adeia_action_permissions", ["adeia_permission_id"], name: "index_adeia_action_permissions_on_adeia_permission_id"
25
-
26
24
  create_table "adeia_actions", force: :cascade do |t|
27
25
  t.string "name"
28
26
  t.datetime "created_at", null: false
@@ -40,11 +38,10 @@ ActiveRecord::Schema.define(version: 20151012185726) do
40
38
  t.integer "user_id"
41
39
  t.datetime "created_at", null: false
42
40
  t.datetime "updated_at", null: false
41
+ t.index ["adeia_group_id"], name: "index_adeia_group_users_on_adeia_group_id"
42
+ t.index ["user_id"], name: "index_adeia_group_users_on_user_id"
43
43
  end
44
44
 
45
- add_index "adeia_group_users", ["adeia_group_id"], name: "index_adeia_group_users_on_adeia_group_id"
46
- add_index "adeia_group_users", ["user_id"], name: "index_adeia_group_users_on_user_id"
47
-
48
45
  create_table "adeia_groups", force: :cascade do |t|
49
46
  t.string "name"
50
47
  t.datetime "created_at", null: false
@@ -52,8 +49,8 @@ ActiveRecord::Schema.define(version: 20151012185726) do
52
49
  end
53
50
 
54
51
  create_table "adeia_permissions", force: :cascade do |t|
55
- t.integer "owner_id"
56
52
  t.string "owner_type"
53
+ t.integer "owner_id"
57
54
  t.integer "adeia_element_id"
58
55
  t.integer "permission_type"
59
56
  t.boolean "read_right", default: false
@@ -63,11 +60,10 @@ ActiveRecord::Schema.define(version: 20151012185726) do
63
60
  t.integer "resource_id"
64
61
  t.datetime "created_at", null: false
65
62
  t.datetime "updated_at", null: false
63
+ t.index ["adeia_element_id"], name: "index_adeia_permissions_on_adeia_element_id"
64
+ t.index ["owner_type", "owner_id"], name: "index_adeia_permissions_on_owner_type_and_owner_id"
66
65
  end
67
66
 
68
- add_index "adeia_permissions", ["adeia_element_id"], name: "index_adeia_permissions_on_adeia_element_id"
69
- add_index "adeia_permissions", ["owner_type", "owner_id"], name: "index_adeia_permissions_on_owner_type_and_owner_id"
70
-
71
67
  create_table "adeia_tokens", force: :cascade do |t|
72
68
  t.string "token"
73
69
  t.boolean "is_valid"
@@ -75,20 +71,18 @@ ActiveRecord::Schema.define(version: 20151012185726) do
75
71
  t.date "exp_at"
76
72
  t.datetime "created_at", null: false
77
73
  t.datetime "updated_at", null: false
74
+ t.index ["adeia_permission_id"], name: "index_adeia_tokens_on_adeia_permission_id"
78
75
  end
79
76
 
80
- add_index "adeia_tokens", ["adeia_permission_id"], name: "index_adeia_tokens_on_adeia_permission_id"
81
-
82
77
  create_table "articles", force: :cascade do |t|
83
78
  t.string "title"
84
79
  t.text "content"
85
80
  t.integer "user_id"
86
81
  t.datetime "created_at", null: false
87
82
  t.datetime "updated_at", null: false
83
+ t.index ["user_id"], name: "index_articles_on_user_id"
88
84
  end
89
85
 
90
- add_index "articles", ["user_id"], name: "index_articles_on_user_id"
91
-
92
86
  create_table "users", force: :cascade do |t|
93
87
  t.string "name"
94
88
  t.string "password_digest"
Binary file