adeia 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -1
- data/app/assets/javascripts/adeia/application.js +1 -0
- data/app/assets/javascripts/adeia/flash.js +5 -0
- data/app/assets/javascripts/adeia/nested_form.js +26 -0
- data/app/controllers/adeia/application_controller.rb +3 -0
- data/app/controllers/adeia/groups_controller.rb +47 -0
- data/app/controllers/adeia/permissions_controller.rb +48 -0
- data/app/controllers/adeia/tokens_controller.rb +47 -0
- data/app/helpers/adeia/application_helper.rb +6 -1
- data/app/models/adeia/group.rb +4 -0
- data/app/models/adeia/permission.rb +20 -0
- data/app/models/adeia/token.rb +4 -0
- data/app/tables/permission_table.rb +22 -0
- data/app/tables/token_table.rb +11 -0
- data/app/views/adeia/application/_back_button.html.erb +3 -0
- data/app/views/adeia/application/_error_messages.html.erb +12 -0
- data/app/views/adeia/groups/_form.html.erb +10 -0
- data/app/views/adeia/groups/edit.html.erb +5 -0
- data/app/views/adeia/groups/index.html.erb +3 -0
- data/app/views/adeia/groups/new.html.erb +5 -0
- data/app/views/adeia/permissions/_form.html.erb +47 -0
- data/app/views/adeia/permissions/edit.html.erb +5 -0
- data/app/views/adeia/permissions/index.html.erb +3 -0
- data/app/views/adeia/permissions/new.html.erb +5 -0
- data/app/views/adeia/tokens/_form.html.erb +14 -0
- data/app/views/adeia/tokens/edit.html.erb +5 -0
- data/app/views/adeia/tokens/index.html.erb +3 -0
- data/app/views/adeia/tokens/new.html.erb +5 -0
- data/app/views/layouts/_flash.html.erb +8 -0
- data/app/views/layouts/_sidebar.html.erb +3 -0
- data/app/views/layouts/adeia.html.erb +18 -0
- data/config/locales/en.yml +74 -1
- data/config/routes.rb +7 -0
- data/lib/adeia/authorization.rb +11 -4
- data/lib/adeia/controller_methods.rb +12 -0
- data/lib/adeia/controller_resource.rb +18 -3
- data/lib/adeia/database.rb +2 -2
- data/lib/adeia/engine.rb +8 -1
- data/lib/adeia/helpers/sessions_helper.rb +50 -0
- data/lib/adeia/version.rb +1 -1
- data/lib/tasks/init.rake +12 -0
- data/spec/controllers/adeia/groups_controller_spec.rb +7 -0
- data/spec/controllers/adeia/permissions_controller_spec.rb +7 -0
- data/spec/controllers/adeia/tokens_controller_spec.rb +7 -0
- data/spec/test_app/app/controllers/application_controller.rb +0 -2
- data/spec/test_app/app/models/user.rb +4 -0
- data/spec/test_app/db/development.sqlite3 +0 -0
- data/spec/test_app/log/development.log +45095 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/--B6-5bdz4-Y3jyKYlo0a0Fzm0w6qUA5Cpdrrmq_BlU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/-X399T3kWWrLnkLIarEKKBY25MvQCyOT3y6npldZDlE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/-lqk2yziFv6J6cSlVMJkoSQtfrm979RDouWfxDGb1zw.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/-n7w4p6bKNuhXwilgDSRx6hSu1Agzds3hnrDhWIAU88.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/-nzR-ptrSS2LUPycIDo_qV7Mhd9R1rEJhtpav9PLBio.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/-srqhTcYQOQs1akeXVG1ctT9e2aGnEB6E81DUSdwjVs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/01gY2q0AYoHmbrISOpt3VLiQwtpTyfw4UEX4xugNthU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/0Rn3x3fYKg77v2tRgkdQxUcU6E6FWySv4SX0p-m7RKA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/0SKWoEjKVemNHoZWUabzOG1GHwIy5e0lfVNuR7IEJ6Y.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/14NKEgp5aIjJge2_ScuCMjl_6UzDb10mzq1f_DagZ_Y.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/1WgQUc3PMxkAh-MhfZRuVbxSP4BIw0FG6sq0tpfLHcs.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/1k4BLgf_fBMpdBlHi6FLy0Km3vCTZ_FOoGvtzMYiNI8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/1x1UJNJewky2o9YqTR43LXWqjsuohW_uZYPEzj_uauM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/2X6_oz1CnaMt7dVxntH_Jv3r4agO6gjTs8bvVEivntY.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/2Xli6JHUepUBFv-pkn70G0x7di0vlSCHOqkx82Cc-7k.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/3-va_If4Qj2LnRttZ7R3GuSbUNyopZV0ZXKR-tPbl7A.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/37lBImB-GUo1DQwlP_2HL6VoUhdB9XROcb1VD0dq70k.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/3FeF4IcWdBpU99CGiVIQXQtep3TYUMPhSBt1VYQSFCA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/3thR5X9ziCzCt9FSFeUOICSNU1hzZm6CsAp-pQa_8XU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/4DavC0siGBLJdDmH8p31fF-QVZfHaSsz0LEq6emVf2s.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/4OO1rWgXxTzlFu_3d150ZJRvCbVCWUyJ-WE2kDX8fus.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/53rfwekHJY530TR9tfKR9e2SflpVpk2nyVmkhku2eW4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/58RHPEOwA9Wl-6FyXzOuW8S18BC8QJyfigOS0RS3k_k.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/5EByCn2PG0-47fB5M1mtHF7oTTiV9kZ_A78yCzjo094.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/5XMnLbrdTh2VBU3TchfFGKrFSoRaF9ueFJHsE3G3RK0.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/5bYrGih2l1mHhKIliWW2HhQRGnvzxGTsmVDs4OUKaK0.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/5pgYp72KpfAb54tZfPllAl1xe61WyigdTzFAqhVZHus.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/6Di3eCWQUIm4dsrOBI40wtTQti-qrdIyw9AUnSJ-yrg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/6Xb-wQvhS9ka5wla034K7tf8sEHEf6GiKHtGL1U0txc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/7FwydhUKra0b_NfYjnFdUYYx7SBjWzZW1AfCB6IScEs.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/8BtdrgfTXFTGnVu6grYqVJc_JFX65P_aVthm350kdnw.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/8UeDV3dcIqXuD8rfPBnr7NTzd5tD5uXjMlceCmfkunA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/8glLaxv8fuhJUypUZX_O4zzaI-0ZFdzUaA_6k9DS2bU.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/8n_3RcT6_L1IJfJFb-0VhRTJOHmggcR7_BRKcfe4P9w.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/9-4KqK7qVgqcidwvVaNBuBVor_jZjEO-1yT3YxKeecU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/9hQn3TX8ovyrAHWZyQzGve69ppzqoDx68pp-kM3Gwyw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/9tXvf9jxMIxKffxLe5rayQ48McF2ih8GyRGImDaeNdI.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/9wtGTtzN25frUEvZIpPkgYxzVkpKewkNsKo5d8N2M34.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/A4K6POiXJxPaoSCZXQeeilbYBOCC70IDIo7VO5ONfsQ.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/AFd9Xo8cqGFgjwotTkjUJqFq5ZT83IQ1jM_GLeKwJ6I.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/AMR9JLlFuxRopIDV8AjypvdWfYPe4ZIGiqhgRStS6Js.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/AQC_baps7aYPD7pbs9HRIJZZjRn-KNfgxThoqw49Gos.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/AdrOVYr3BJcIe4wXxJcisfmmcz6YXcGhEux5MIHC794.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/BUFA9JeyNidznK2oPcvzXRr4AMn3ALpoVMOwDCIk8fg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/BVMKDWsqVGDAww9-MOvfT6CaCQSaLhQP7yPPzXs9BWI.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/BuRCVZnlJYpEBtEwHlhMnp2vc3LLos2T703LiSMzvzk.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/BzmD08cQIAd2XEhk2bgQTgXS2Nt3PZ-PCr2sVVMAVI0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/C5cBSJ2iIhQZKLYiTNs-OyUQa8cdirNWpfUg0pBtkoM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/C9_C7pnaFsaumJdffb5oF_NdxQcOQ9UNWxTQsAK11xM.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/CV6tgeA9oeZF3gKvGJCMw_VGW0xXXmUTsinP0nP9Wpg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Ci4ZzYHU5DBcIapHPlGaZZuRwv-ujJWy3HK_FRJlkEo.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/D095fvwYfYov4p1Lg09sx9tXWXx_tMRhlsi_vX3K1cQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/D4VyPOMG_wXgPRZtj-mbRdONJXbdgOZKcuwSm-lNNIA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DCBEUmKuXCOa1R_zCBeW9qW4_jsQKgdwoTZNmOwKbxM.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DO6xwpLP8974PoOjuEWThBhrghbt8UUKYUFsrIT0NeE.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DVIQW_Q_Tj3pWT2P5ZbG_teowwh5IXABb6lKOVm1fE0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DmrfRmCnoP9LIs5V2JnOGmITLmp0n2v1C61Vqr5qivM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/DrYrZjishI0hDCZOJRKPpCcJazdxc3BWVXe23rBPPi0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Dzkex4edRo5GSwe4GMGacht3AblDkU-jOPLbpNeYmso.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/EGaTAU4jUPD-YwyCJX0VpL_1iOKqSCD6j80Ic142vIg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/EHeGuf2kJ0S2nrf1zdSL7l3KYdtMrZ1PLGDg2meRf0U.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Est_8JEYKopY4vEYL9WhlEcH4WgEgrE55xzq0YRNdJE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/F6FcStqYrwdmJ6uBv-uqdybnKUn4nmDnZqzH86WK6xc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/FDNyP09s-xNMkD-pflJeRj9DXhdpcivQTBmWxrb9Gyg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Fn1BD2grSehAYmvlFzcGTyDyMdyeoPMjutuBaof-tBA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/GM94csO0RCsfXoAY5OyYeSAKPPYZvCWkp4-6r44fGgk.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/GWAhAJkC7Z28HWg08q1CxxGXLVMk6b4evFHgZT1TmHg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/HFTCgN8_2P8nrmQLFw6XB8IEkSiGBP39zC-38IfL8c8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/HTJxICMdyiergYk1S0uDBdRIL2MqVBsUuL3LUli2OGA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/HZqviA8DlanTXFBdHFZVNGaxiLgsUZQf9N8rbqJG70c.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Ha0WtwjoJ1FkW7J8wqGWGrTbRhDA8s1mgso8k2rC85g.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/HszVVzl_3teJZG4NQ83sp_mmnRM_Q8fnJvHwSWldZfo.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/I700JJfDDxzI3hDZv-SmN9cZH4auLheSBbD4ShMIBEU.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/IdyOJUtcY8EGHa47tJ-oYECces76XyyuupzbeRvfKWQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/J9nn8mVUUrg8b8q4SoFwlGB11RSvxyliN9_AZ_9xYv0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/JJYyZAbo6mGvwwyBnf_7lOOKQfGg94pyK9T26CwwLM8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/JOLhwLriZl5y6wH20bC42erVLoY0eYBl6OfyYFE8joA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/JgOdgAuFLXUvdC4hJLxDYn7gQKYZc0o6cmnSKn_oLXU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Jq-mhdojMq1WOqRn6VTdZrYcFFO9W88GGYnNBOCQ5fs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Kbn5MqwPrK25xH0yI61JH8OX8OxVwzW6pVIw65n5aog.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/LR9JGQSnkVBq1DOA5-_V10TWbmxiK5a4p-w2UAhLH5I.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/LwG5MSNMTqX6Bj_sbxKxzTraELDCXFQUzV8pPoyIFZs.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Ly2cPIvzxUHZvoULxm751OGCPaXfLwDG7dds4dhU-P4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/LyyQcZThuaazeiXbwL33yCrwOjXYcMsuk0ga8wi9SW0.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/MNf87PylGkLYDHKyZivCSRdzBdLOaXXoHJR5K5HfcEU.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/M_KUTj7by27gLcyqVc2Uz9gtnUzDPo-cc9fw5-cB79M.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Mk2Dbca2Fmw8mk8Tf_OnLIx-D-k3TyDQvERibY5ftyc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/NBktg8R_o1IzcRG06-gOq9yb1hlWgcnFOGCs_ZPy5GU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/NZC1brQjek8oUbzl0nUZm-VUCtVuRYJ10xmJm_jc-4A.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Nw_E9wVH6uXXL2Yg17XobgQBPfACCPgERs29_iu2Yq4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/O6FuDZHoVauG-mNT_zEblvfB99VBZJ46sU9xgytrVFA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/OJM4KPBFqN-R5b3IubqAEjD_Mpg7diwxccbjbawWruo.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/OPwwISQeVGly0ZyAnB1uMqYSn1_ytVjru1SyW0Tb1lo.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ObHv2sYsHu2CQEcpJmS3aNUpDaGABIslAEcy8dGVekQ.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/OzwRchv30RuK1RECaihp7MfdVf4jsUCBcfm_s2uCaBs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Pa_-qEkJTENter7MsKfNlHQWX0nlUfAB--2hdOtfsnE.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Q1ldGCfo4mzWS7W_Mendyw6378IyfE32nmRaPZItjwc.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Q2AEPR_LUMgrbDZL3WUQo1L252r0dWV4GoOmHvqCdaM.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Q38UNjlJ-EG2ZJ0WYyeaKDT8XpUkp-kiEjUatM8rIVg.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Q3H8OUxqgzlp1sSQrPxV7mPgPg_CIRIo6cIMfuVYUI8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/QjnW6APFMTHFNu2f7NPW7xpu6STGmt8Ic7RP6Y9iUpg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Qt2eeWiUKxcVZvSTpl20jkRWLLHNH9Ap4LCF8PuVjQE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/RSFcHIY0F5zdwoaQY3y3ga3oJU-F0kQaB4nVG3Ut46E.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Rn4VleRr3GFW4gH_xSbQr7XUBpRdaULwHRMs_SWX320.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/RufGCfT6eewOOFzOsdfLnfrQTwgLHX2VIoWd6z3PxG8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Rvwjua7qhrLw1Zogluh2pYuZyoPN6VTSsD1RQwYwTaw.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/S4dXPkh6wlupsMUb-GvZ2Q5PwAZmplTCkViWCnVWWw0.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/SFdRP9BqQ_nuTl2OJptVrpLHXKFWNRIX7fsY271RvrU.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/SStQOAnDUZIJ2oyO08r7eZB7spg43G1Km6w3g6I7unk.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Ss-tNTZEW4Cchbzxw7g4nsvHtbqA5swba4ZXqhZ4Nqk.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/SyMDLgn8JQVd63g3CayEOIg0jYmDBx4Z1eMCEpFr5S0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/T-XFIfqo5_C7va4V6sNXs9NPw6-cBwgNFZpB7EFh6vU.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/T4i7RMkTuCVthUxysmoW6gHqGrNrCxQDbcc9CbVA8as.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/TGOCu7-2N3zM1QD9R5B_nV07xa04lqAQVVkxQLMrKOc.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/TMPgp-bgImpjlEPNYkKeR6tkLHhcVgQCr05hLpKfACM.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/TgYwqDUjKYMyqLezgFMHSj_kjXfOtzDHf0RtHnzICL4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ULTQOfr3kGQdNAW5EOlilaacba3KKBxXP0k8AAgBGE4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ULfeBuYmmAaMlU-yfEvhzvvLeq7ZbnVSZqOU9HoYB7c.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/UMeY6H-JqqHG9_L4jF7L5FTtLVIaSGukuufj536hvCY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/UeViMYB1C3FlRCB9Xipn3D0PyGd_SnuEVX6nDzaG0Gs.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/UizHD3vcOPN0PNbx1AjkZy86E9UeGK2H5YTveMnjZ4o.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Ukegou5LXx09ATaRHTKfi74X7jV7wEJjFmxNmL-g-i8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/UtgEg7ptITK098D4IzCTm_emwOl7KZ-SBDXgg61SVQI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/UvRiBlb9P6JhAGqrqiC2zVekwvGe2e8AD0KoKBnJjfg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/V9fe0xfL4Rr6WRojNrF6OIjKK6AXacdGYQc-DvM1o2Y.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ViZvfs9YQmDN9ZdWKnsVEWgjW4NNAMEnstypL0KCiQU.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/VxTnLLdBl3CfdnjwmMh3haHMtrg8hiI5B0NEjPv3PMA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/W30ib3mwkVtSxmDmGCmMWOl_-bcxS10UU0913rK0GMw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/W8FnZ_nNxKV5GGMxuIFP7nCwHKhijGEz9v9BDh_AKL4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/W8hGRn4EX_gzLyktjETsgYqDU8Fvghgkw-Uuki2DSbA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/WdXY2HQmlFHGblvVkPOS7HHHo7ZGJd-K0CFac-WIhs8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/X-wjHgAZ0InqX0BThWV-R1r8NumidX2SoW0ItqIBb2Q.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XINL5F3aFEF1bWzq18C9yG2CcvYzeWPdUc4dcria_hA.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XSmZQ_nIp5lNh03mniPmgkdepmAkvW1ErDW4KTJgaLA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XT7rZz6CeBAOicjnZJYKcj19PXqd-yihjUCx4cPih8c.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XXgzSDv6fwhmrw1Ys3TDNIDfew6KVmHXF4imA2iWXvo.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XkZZ5Gtss54SYbRekh7sTVLqb4imVKlKUDV5O1A_5Qc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Xu6m6wa7zu7dCHL8QPdXJfzlArbPYS3KMWS3HdjPofI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/XwoBY7vWyI_sqmWo_SNZ5pJavCzODfFP-AvdBDSSFWU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/YJM9OC_ubtipkhlqpQ2mZn752cb1zj1KVx7mFCL9b9o.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/YTZMXrhp1feSToGHNdOtvgwvY6bcJ-cEP-zOgk0yv3o.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/YqQowkHvGhm9wLIHrUoiSHLZv_DqHnQx172qtzW3DWA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/YtJCYXgE-aMbZ80Uk53l-Pw2X6pzn8o7wEUkri1elP0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/Yxc5od38t_U5lXpExdLyhiT7r0HrqaqO3-QbzF0tt3I.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ZADq45BspSEzwtCckPA9vEP5u0eZVqpjUB3Y2j6qPJw.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ZGC-9ToVqQ2jKTZamcf_pHUQ-F8hsU2Bcq4sRdbm6q8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ZVfH6U-tlYcqHspQcoJhqPo3cLJQgT9o8gwLInSBFRI.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ZmzWckpwiTXGs82UmJGgCv0tf0EsAVbVpYDJwfuOTcw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/_TOMtL3mbeLDe_hgQldU5b3wo7EmQCY7G9dlK34B5dw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/aP1H4h875gTuq5bm2B8kc1GgbI416cSCaxZR3GZ3E9I.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/arAA7SuzsgmqYJC03ESHMRZZiOIW4157tWr4MmBtc8M.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/asvzt3QwJWKR76J5Ba2fFvymdvwzmPyFyioIDIcdu7o.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/b2G7iK_STHAf0UlztJLwu0REjRNYlPaMLc1-S-6ugKE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/bIpbLFeghiLIis80v091kkbokkY-2OEjCYFIlmadWL8.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/bNHgGhDaiyu2mtW3kM7iIFDjzEEiLIuqcvWEjqQuEGU.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/byqPcJ8VeYljdpMEwFESO3V9jw-Rnqnnx6jrapcJKZ4.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/d8yHTXdkdnyddntI-UeZffVYlp7pxHYwXYFJjHgI64c.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/dNF2ukLKDpO0RmR9-3IT4fnGg9ZF-AOnZfLIrJUYHZs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/dafuNpZR_7s9LMtlfzRqprhv3SwhMZtGVaj71wflDKI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/dhwaQVFfN8mU6LY3eNiTFMzErGlRq-4DZxr9_lIx3Mw.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/e0s4O4iGPzTgToA6BOSgyOTNJEUC-P9AP927GhyuvBM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/e9kKmfNKSJ0_xJOfSxc2WVs9_IkpNdOJBlNHlSa_q04.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/eR2IkK-ygVkjIwaGJ_WHnl-wFJRtHZOdaBFlIBkcnVc.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/eaMCjSQejC69MWYQVPHU3RbGCBaheIzg_WWfVWfhLzI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/fBrwyzHMRJhc8d0M1Jg2Ukd73gwcKttxNDqEGZNovvk.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/gTnsqR1rayKQo7m3DZI3Ry1jNZ4poFhLoKdudWcSEao.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/gvsPu0LeaLj1D1sBPcVrE0mkhUyoL7ZPQ1rMXS8reLg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/hXBbVMsltNxtZPOU_ivZoAHBmE60t_BCrbmeH1La730.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/hi8vxyyq4Dj0hjargNlw2l2_JM7i_-qQm07TD4y8FOc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/hpd3A92nnfTqjqi9KMXIR7fRymIM03Sn2Z9XWW1cCgk.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/hxZmz3Hy6gvcfoYaXG4fwcBRrpJmvcAuDWf-FIlFLcQ.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/i-xKrAdbxcswwa4Xh719_FunhQWsftrkaBmQZ5KqkG0.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/i0WDzSc3QRzRO8V2DOX2DRG8N18gHIADyml4qmWucfM.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/i3K_EsRPpiuNqxN0bx5-22LpzWWl1T0tNKW3mLcOcOQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ivfl2Qg9xTPynEl7no9q4FBtg6PRuyhQte_QmBPlWmg.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/j1W6B55bk1WVyoJ35JYjojBnjSoAmhufj0hXOLUdbBU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/jwRvMx5cTQxt-3wHQkbm3pRCValMlPAmZ3bBrYCS_pQ.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/lIh4GXzA517PB0r1-9wdhYH1drV7hsJbw4wTJ0kF-aY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/lMwvg9yThE0RtGbtbNzD9dGN6s3mw0tBkqY1fDlmtNY.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/m9t0bbFXggJ19GwiXOFlnVFQ55HbfyfNadMDoGeGSfU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/mSdRZLIPGWWAlNJB1cX8KlWD4mT83IR_mvNs44xil8w.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/mWtSpq53jc1bP0dKeiMtYbMRISHrmmimslwmx7NQ2nA.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/mlPoIXxNgNw-mWiIyYmHHbR9GiHX12lBx0fJs9qgv-Y.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/n7Jigqq8Kk6EGqLXxUQGybDUGdoPIVySaQqGp_f9CDU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ndF0CVMr3JFu9djOogOfj3iG3TC_ZG3d-pwXf60yles.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/nwYoa4EdnE3NJPMeQlAhukpcNASLkKefTEY1eCIyfjs.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/o8Ou8HSUhKZdd5jfOZlbcjJCDyODhiiUCciMs_heqQ8.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/oqHS-Ko3TRt95I3q_6uYlMxx-dgFC0W775str0dffWY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/otoUB1FzYFMbtvfYzf47sXw4B1q0G2Q9Y7G4Yrr1F4E.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/pBL8ccMTlzPvdC6rPGQiCp8zGzt-A2lQWjbxRuJn6cE.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/pC6mHyFlPSIZvg00WyLuyqfNO3D9N6RVH1k6REHwRN8.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/q0M7DzaWu5g_npDLPgKfkgJps94VOGzHcyJEjdI6DeA.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/qQzQwmf6AzxwWrRW_-UBlNnU48l0eYnlVlpG8LGHqqI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/qmdMf1wCyJO9ww82WURpU_dihUPPcEq0R4Yi2b8NSA0.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/qugqw6b0IuRvnuKi311HU0m2xyW9rpI5jhuGuMXU-mM.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/qxHWRfgGp7Wxpe09d1fwz5TZZX4B2dxNDfGtbatSSls.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/rkbuhOLeB83BZ95kHE_kFl8_fOo6aQDnbOH0BrZ2byI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/sE0Z9G_praJn_h0tbTi6P1cZLCrnPn-PBNc5dgHPrUI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/t7zrR-p4JkgGCgWeOqY02e6DfG5O_k-FwT5O5zpQgEc.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/tN5SrUveck3_ywC1DeyHVqE0WB07cr75bWb7AsuLPBM.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/tkwoIcaFmRm-fcsRPPAMYBNke0dUHn8dpd0uj0gdG4U.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/tl2XDZJ5EyBJlMgj8bgX4uUnG6wVOwxLh6OZKmr_PFs.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/u9Hh5tVq_Of5_cjY-RN838BewE4Q1eFEIYa17n7WuUU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/uMb1oMMNJUtXDMVA-mrw7iD8I5DGq_cQySs_O1_Eb8w.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/uZV9oT4CEx38r1Xd8KQl8nHBwhCvzu4t0bhThgzieMQ.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/uaJQ6-OqEnyMoRGtsthEeHityOQI3yCzhEgkZ9vIi5o.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ucwSCv3jWIgpdShy0pIYRUe83wVZ98W6_FAG9PS-vGU.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/v34MdMDRglzTSweqdTM3N3mQHa5yEL-goyDl5hUpxuo.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/vYr_wxpq-VmGmfekAkB9sMfaqerHr53ERAm7JT6VSxE.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/vegpWnn5yXieEAAVhO_fyv8BsKa6lazRdfxOHRg-Ioo.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/w-kBThvvoMOI8zBUq0H5I_mHBi1ACQYNH8lwkDlccJk.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/wXo-j5uscLT3Q67Rwo0FWWJOyo--mf2MT56TT2QUnho.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/wf9IA4uvb7EMF7xBsm6atyIJEdvbtfQTgddGWti398w.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/x6CrKaCNAjoHCtfcVddtH54Ob0FMelmVsf-LIBVDtD0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/y7B6MFLcWnZ1E-W924cdqJciEdFyBCUwAeEQPinMOM4.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/yDyd7XhNlTMkQdo33F6na6FDkbCIG4YPN1fRbB4XqsI.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/yOnsPUEjYJeFXLg8oSMnxlHEn_-YKQMLx3eBove3D0M.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/yeLhEylcZXgaa3wSLWnreVCcBooiPlXngj8neVUTjDI.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/ypU890V2Ef35szQ5OQ-r02xvGhSJCr16V8FbCYJmeQY.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/z1gpD-LdEU8n4Sz2ehL-JBXmojvb7i1UA9GBxB8ZpH0.cache +1 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/zcyD-V47b_trIpkAjr7WtbWP8s8OXJ8PJf4wYAgu3Uw.cache +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/zhva7YheNRRcXE2lbFu_AxBGPFepRkVpivTXwOrnYaI.cache +2 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/v3.0/zp2A-AOphpw-oj1D-oi3FvvslsJHNvCVuY6cP2kYuK8.cache +1 -0
- metadata +490 -10
- data/spec/test_app/app/assets/javascripts/sessions.js +0 -2
- data/spec/test_app/app/assets/stylesheets/sessions.css +0 -4
- data/spec/test_app/app/helpers/sessions_helper.rb +0 -32
- data/spec/test_app/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0419fc40b12ed0da23c6322b02e7e6b3ca1af8f
|
4
|
+
data.tar.gz: 81a522424d82347528a795d17b2f9a44ea4a3bd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2b395f4e81c103303d87938578b9134749ed1f8c5df8036287db952d73174f577a22c7bdc72c5d3f9e0efa5566c1d84d1c4709fc2c0c77980fdbb94f1512a66
|
7
|
+
data.tar.gz: 708c5a676bead09d982d28800430ee67585a45781eb4c855c0e9b89a826d3cff4d2ff1a8a011151d40c35f856dd743f0b058657f97459be1ef33c3849546b4f4
|
data/README.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
1
|
# Adeia
|
2
2
|
|
3
|
-
An authorization gem for Rails that allows you to have the complete control of your app.
|
3
|
+
An authorization gem for Rails that allows you to have the complete control of your app.
|
4
|
+
|
5
|
+
## Requirement
|
6
|
+
|
7
|
+
Require a User model with:
|
8
|
+
|
9
|
+
* An method `name`, returning the name of the user.
|
10
|
+
* A column `remember_token`, containing a generated token. It is used for the authentification.
|
11
|
+
* An admin user, with the name "admin"
|
@@ -0,0 +1,26 @@
|
|
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();
|
16
|
+
});
|
17
|
+
|
18
|
+
$(".fields-for").on("click", ".remove-fields", function(e) {
|
19
|
+
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
|
+
});
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_dependency "adeia/application_controller"
|
2
|
+
|
3
|
+
module Adeia
|
4
|
+
class GroupsController < ApplicationController
|
5
|
+
load_and_authorize
|
6
|
+
|
7
|
+
def index
|
8
|
+
@table = Table.new(self, Adeia::Group, @groups)
|
9
|
+
@table.respond
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@group = Group.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@group = Group.new(group_params)
|
18
|
+
if @group.save
|
19
|
+
redirect_to groups_path, success: t("adeia.groups.create.success")
|
20
|
+
else
|
21
|
+
render 'new'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @group.update_attributes(group_params)
|
30
|
+
redirect_to groups_path, success: t("adeia.groups.update.success")
|
31
|
+
else
|
32
|
+
render 'edit'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@group.destroy
|
38
|
+
redirect_to groups_path, success: t("adeia.groups.destroy.success")
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def group_params
|
44
|
+
params.require(:group).permit(:name)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require_dependency "adeia/application_controller"
|
2
|
+
|
3
|
+
module Adeia
|
4
|
+
class PermissionsController < ApplicationController
|
5
|
+
load_and_authorize
|
6
|
+
|
7
|
+
def index
|
8
|
+
@table = PermissionTable.new(self, @permissions, search: true)
|
9
|
+
@table.respond
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@permission = Permission.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@permission = Permission.new(permission_params)
|
18
|
+
if @permission.save
|
19
|
+
redirect_to permissions_path, success: t("adeia.permissions.create.success")
|
20
|
+
else
|
21
|
+
render 'new'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @permission.update_attributes(permission_params)
|
30
|
+
redirect_to permissions_path, success: t("adeia.permissions.update.success")
|
31
|
+
else
|
32
|
+
render 'edit'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@permission.destroy
|
38
|
+
redirect_to permissions_path, success: t("adeia.permissions.destroy.success")
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def permission_params
|
44
|
+
params.require(:permission).permit(:permission_type, :element_id, :global_owner, :read_right, :create_right, :update_right, :destroy_right, :resource_id, actions_attributes: [:name])
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_dependency "adeia/application_controller"
|
2
|
+
|
3
|
+
module Adeia
|
4
|
+
class TokensController < ApplicationController
|
5
|
+
load_and_authorize
|
6
|
+
|
7
|
+
def index
|
8
|
+
@table = TokenTable.new(self, @tokens)
|
9
|
+
@table.respond
|
10
|
+
end
|
11
|
+
|
12
|
+
def new
|
13
|
+
@token = Token.new(is_valid: true)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@token = Token.new(token_params)
|
18
|
+
if @token.save
|
19
|
+
redirect_to tokens_path, success: t('adeia.tokens.create.success')
|
20
|
+
else
|
21
|
+
render 'new'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @token.update_attributes(token_params)
|
30
|
+
redirect_to tokens_path, success: t("adeia.tokens.update.success")
|
31
|
+
else
|
32
|
+
render 'edit'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@token.destroy
|
38
|
+
redirect_to tokens_path, success: t('adeia.tokens.destroy.success')
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def token_params
|
44
|
+
params.require(:token).permit(:permission_id, :exp_at, :is_valid)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,4 +1,9 @@
|
|
1
1
|
module Adeia
|
2
2
|
module ApplicationHelper
|
3
|
+
def options_for_enum(record, enum)
|
4
|
+
model = record.class
|
5
|
+
pluralized_enum = enum.to_s.pluralize
|
6
|
+
options_for_select(model.send(pluralized_enum).map {|k, v| [ t("#{model.model_name.i18n_key}.#{pluralized_enum}.#{k}"), k ]}, record.send(enum))
|
7
|
+
end
|
3
8
|
end
|
4
|
-
end
|
9
|
+
end
|
data/app/models/adeia/group.rb
CHANGED
@@ -7,12 +7,32 @@ class Adeia::Permission < ActiveRecord::Base
|
|
7
7
|
|
8
8
|
enum permission_type: [:all_entries, :on_ownerships, :on_entry]
|
9
9
|
|
10
|
+
accepts_nested_attributes_for :actions, :allow_destroy => true, reject_if: proc { |a| a[:name].blank? }
|
11
|
+
|
10
12
|
validates :owner, presence: true
|
11
13
|
validates :element, presence: true
|
12
14
|
validates :permission_type, presence: true
|
13
15
|
validate :presence_of_resource_id
|
14
16
|
validate :presence_of_a_right
|
15
17
|
|
18
|
+
def global_owner
|
19
|
+
self.owner.to_global_id if self.owner.present?
|
20
|
+
end
|
21
|
+
|
22
|
+
def global_owner=(owner)
|
23
|
+
self.owner = GlobalID::Locator.locate owner
|
24
|
+
end
|
25
|
+
|
26
|
+
def autosave_associated_records_for_actions
|
27
|
+
self.actions = actions.reject{ |a| a._destroy == true }.map do |action|
|
28
|
+
Adeia::Action.find_or_create_by(name: action.name)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def full_name
|
33
|
+
"#{id} - #{element.name} - R:#{read_right} - C:#{create_right}- U:#{update_right} - D:#{destroy_right} - #{resource_id} - #{actions.to_a}"
|
34
|
+
end
|
35
|
+
|
16
36
|
private
|
17
37
|
|
18
38
|
def presence_of_resource_id
|
data/app/models/adeia/token.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
class PermissionTable < BaseTable
|
2
|
+
|
3
|
+
def model
|
4
|
+
Adeia::Permission
|
5
|
+
end
|
6
|
+
|
7
|
+
def attributes
|
8
|
+
[:id, :permission_type, { element: :name }, { owner: :name }, :read_right, :create_right, :update_right, :destroy_right, :resource_id, :actions, :created_at, :updated_at]
|
9
|
+
end
|
10
|
+
|
11
|
+
module Search
|
12
|
+
|
13
|
+
def self.associations
|
14
|
+
[:element]
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.fields
|
18
|
+
{ adeia_elements: [:name] }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% if object.errors.any? %>
|
2
|
+
<div id="errors">
|
3
|
+
<p class="title">
|
4
|
+
<%= t "application.errors", count: object.errors.count %>
|
5
|
+
</p>
|
6
|
+
<ul>
|
7
|
+
<% object.errors.full_messages.each do |msg| %>
|
8
|
+
<li><%= msg %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<%= form_for @permission do |f| %>
|
2
|
+
|
3
|
+
<%= render 'error_messages', object: f.object %>
|
4
|
+
|
5
|
+
<%= f.label :permission_type %>
|
6
|
+
<%= f.select :permission_type, options_for_enum(@permission, :permission_type) %>
|
7
|
+
|
8
|
+
<%= f.label :element_id %>
|
9
|
+
<%= f.collection_select :element_id, Adeia::Element.all, :id, :name %>
|
10
|
+
|
11
|
+
<%= f.label :global_owner %>
|
12
|
+
<%= f.grouped_collection_select :global_owner, [ User, Adeia::Group ], :all, :human_name, :to_global_id, :name %>
|
13
|
+
|
14
|
+
<%= f.label :read_right %>
|
15
|
+
<%= f.check_box :read_right %>
|
16
|
+
|
17
|
+
<%= f.label :create_right %>
|
18
|
+
<%= f.check_box :create_right %>
|
19
|
+
|
20
|
+
<%= f.label :update_right %>
|
21
|
+
<%= f.check_box :update_right %>
|
22
|
+
|
23
|
+
<%= f.label :destroy_right %>
|
24
|
+
<%= f.check_box :destroy_right %>
|
25
|
+
|
26
|
+
<%= f.label :resource_id %>
|
27
|
+
<%= f.number_field :resource_id %>
|
28
|
+
|
29
|
+
<%= f.fields_for :actions, (@permission.actions.build unless @permission.actions.any?) do |action_f| %>
|
30
|
+
<div class="fields-for">
|
31
|
+
<div class="actions-fields">
|
32
|
+
<%= action_f.label :name %>
|
33
|
+
<%= action_f.text_field :name %>
|
34
|
+
|
35
|
+
<button class="remove-fields" data-type="actions"><%= t "adeia.permissions.form.actions.destroy" %></button>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<button class="add-fields" data-type="actions" data-count="<%= @permission.actions.count %>">
|
39
|
+
<%= t "adeia.permissions.form.actions.add" %>
|
40
|
+
</button>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<% end %>
|
44
|
+
|
45
|
+
<%= f.submit %>
|
46
|
+
|
47
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= form_for @token do |f| %>
|
2
|
+
|
3
|
+
<%= f.label :permission_id %>
|
4
|
+
<%= f.collection_select :permission_id, Adeia::Permission.all, :id, :full_name %>
|
5
|
+
|
6
|
+
<%= f.label :exp_at %>
|
7
|
+
<%= f.date_select :exp_at %>
|
8
|
+
|
9
|
+
<%= f.label :is_valid %>
|
10
|
+
<%= f.check_box :is_valid %>
|
11
|
+
|
12
|
+
<%= f.submit %>
|
13
|
+
|
14
|
+
<% end %>
|