maestrano-rails 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +86 -64
- data/app/controllers/maestrano/rails/saml_base_controller.rb +0 -2
- data/lib/generators/active_record/maestrano_group_generator.rb +1 -0
- data/lib/generators/active_record/maestrano_user_generator.rb +1 -0
- data/lib/generators/maestrano/initializer_generator.rb +12 -0
- data/lib/generators/maestrano/install_generator.rb +8 -6
- data/lib/generators/maestrano/orm_helpers.rb +2 -2
- data/lib/generators/maestrano/templates/group_users_controller.rb +4 -3
- data/lib/generators/maestrano/templates/groups_controller.rb +3 -2
- data/lib/generators/maestrano/templates/maestrano.rb +9 -4
- data/lib/generators/maestrano/templates/saml_controller.rb +6 -1
- data/lib/generators/mongoid/maestrano_group_generator.rb +1 -0
- data/lib/generators/mongoid/maestrano_user_generator.rb +1 -0
- data/lib/maestrano/rails/models/maestrano_auth_resource.rb +13 -10
- data/lib/maestrano/rails/routing/routes.rb +27 -8
- data/maestrano-rails.gemspec +9 -8
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy_activerecord/app/models/mno_crew.rb +1 -1
- data/test/dummy_activerecord/app/models/mno_monster.rb +1 -1
- data/test/dummy_activerecord/db/migrate/20140526144828_create_mno_monsters.rb +1 -0
- data/test/dummy_activerecord/db/migrate/20140526151139_create_mno_crews.rb +1 -0
- data/test/dummy_activerecord/db/schema.rb +16 -14
- data/test/dummy_activerecord/db/test.sqlite3 +0 -0
- data/test/dummy_activerecord/log/test.log +12406 -1412
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/{b0eaab2bc50e2e3547e318f8b43a941e → 070df203a09a9d4a368db8396165a105} +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/{776374354bf36d24e442115e63b9a735 → 2a43a943daba23e5e37e8edf97cb0bdb} +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/{cc70cce011a969eca12cb127583c2cd6 → 4d062bee73f43586c17d29a175f6243e} +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/58e369b37e5157ea746a485eea17e9f7 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/7ae10239eda2588a95fdcc7d871bef52 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/8d5d60255600aa010a32e1d1a9bc6db6 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/b3d9b0e88cdded276ebdce333e338a85 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/{9620fb848d554874d4f20b7f0d60f35d → e6e7b55d41c79514c44c3c8a45c17c60} +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/7Epn_PknptysV9qbt8psqZYuMkJ3cRQvbM5MRGmIoiM.cache → sprockets/v3.0/0sUVkLi2-TZrZ_FT_mDeGoWMwGpS48yEfEYxihy5nmI.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/s79F8WSoX84q4jW1ddfSi4dIy-lhWcJDPWw4asKPmMs.cache → sprockets/v3.0/2-0w2lrUYGJTWSS8ctq_qa38uSr88P2L-iV2bXyyGuA.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/DCFIDkbToSiICA4sBCKWvjY-H4gEV-F6c_uICFSEpyE.cache → sprockets/v3.0/38HqlC3fOtaqYgpSbnmBJox6dlNY7sjNBTzMNCFx4Mc.cache} +1 -1
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/43SLVxa0HLJIPQPZDlXpd9_dnIUqeCXVwOA2A9V0Vsc.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/XGC8yjqErVk2OqXhCQ6xaSttX62JVKhceqwp6GNA57I.cache → sprockets/v3.0/7dUbHTwNQg5wkMpfSRWE_RDbzc7O3Kwh7s07ubAzXxY.cache} +1 -1
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/9j4Cn3Bg7rj2--N8lWHQ-aSIKt0CZxl7GNjlSaHb7L0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/B5aB2pc11WJxcU-HyLFLnLC96fMFlug6Amz8hS7jDj0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/BQtyJR3ccqed7_s43p3BPj3IL18LWu1Fo1ZnzWC3qcc.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/CLp73dIq-CQDXyYTsWbjSxI4NqvVR1Uci51S3Rt83yc.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/mOquqR85EYU-k_BoZjuqfR9xrhR4yQUUWCi_3Y3f_u4.cache → sprockets/v3.0/F7q3Bp8Hvzh5mn9AJr9g9uo5GfbZkigepPO5ZXkTzGY.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/GBhwl-B9glhyk8ElvTWqe6I65UKde5wR9fVxPwwJ2Hg.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/GDQMRgyhp21p2xg_ITm3PdEDJXU-mgllQ2Mij3aSig4.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/Scwp43xGik78ndWSr7A_SyvfrES8ecFKFav7VJe3HFw.cache → sprockets/v3.0/HmDZuiDF0OtgSoq7e2rtPrN16sGrNzJO1GrvmJBFqYs.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/IXVtyHRBEhzVHqrNmcus7pvHXuNfpReCzYzxhB7bBPA.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/IgIskv_-aTzPU_wM_Xr1bhk_nLAf8zYrjJonfNtAv6E.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/SYzPyxJETf8U18Qget3u80KmztRl2iih2m4te76sQxs.cache → sprockets/v3.0/IrC3CI4UK9epEnLL0YUsgNBcThnYcTbaNjMC5uPv1Uo.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/K_kmfMGNdm_wfvEnsfYglN-C8fj94rbCQJSnAI03mNU.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/UDEx_cN4FPO4_mm7ccGeHKEBLb_Mh1EwZpX4n8A-N6w.cache → sprockets/v3.0/KzZa0OWunZJvtU11r_4UKZgCItVQkohjptcFbJ570cU.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/LN4-PLL3b8DkfopaNEJ8U-nu9FuSHjEL4nELYoYCub8.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/LniLozFK0AHveFRcKmFzbr_tFBteoecaWgVBQbJwaL0.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/M0WOwkZpyk3ShmXHNFhdl4BgfEyvgZuzn40Fww00RYM.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/W1I750hXtFauIXfdF_h8f0H6Eh9fPjn1nb3WDnJGJ_0.cache → sprockets/v3.0/M6sHCm5v32qRTBidHBsrTORDxaA9SCVgH3jnRn8iNLk.cache} +1 -1
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/N6i2RwsdhSsA60KxpXlF7RYb3gLVu2mOQlWzPTMcNw4.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/POVOiJI4HFOnKUqmwmHBWI-64koorns1IzsUwQdJwL0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/xNScSuE8jYRa2F41anynskx2xa5avSWkYLFAH2l95Ic.cache → sprockets/v3.0/TM6G95HBN6Kv_sF1SaADJyoSpQQSLmMnUXVn2f1jlnY.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/TsyULHo-Ep-IDDhu6nN9frFLJNe7hg_op-o6g3Ycp48.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/W1I750hXtFauIXfdF_h8f0H6Eh9fPjn1nb3WDnJGJ_0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/WHb_lDwqFJu6BaJF8_AHwWMmgY9AIS0RUjJZATvHGy8.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/SBwQFRWeGZwRAHnGVCZGOamm432tMyKa18m-p6TWU6Q.cache → sprockets/v3.0/WkKqqsOutgzMPu_Ym1AolTwC2_fRzqxbvRFpO9Lgh5s.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/Wo3dLIbJvLLO5QrL7Lxqf8CcxQPjTVgZjmAHci0eYlg.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/aAuuIrhNOw2g3r2XWyh_9bURa6E2xn_5BCVi43ab-Ps.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/aFlSrtCQNya8JILRa5652nUEY0ACPTd_pGU3yXuOx9o.cache +2 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/c5Auc2IFYhhN0woGElqbdz3HoROtMJX4TmUNekopcik.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/degszJUXEQsWvjrjcbxJNLqH6tFybiuIClFdPT8qgyE.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/sn7tMYj6vUxaFXG7SQe4O79d5oMoqJydwx33q9-308E.cache → sprockets/v3.0/elwOvgAJ85O6bhimWI8AJJbAOJO-_oUSslLhr9GEfFc.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/7rKh4lG5ceEUlcKp6PKkbPdRZ-l2F_u-ZeykbRhaK2I.cache → sprockets/v3.0/f8WWrWAptfo1qSmHsTYrCJzb_vYG0wpQ9xvPvb0F6yI.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/hcPk5eM7VJPi2ZM7DxeJRgnl-LSUUd_GrYrFi2mj0Yc.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/kw00uOxe2W3DagBUVa0aLGOXTAH8i5-PNNpxyDJXkR0.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/neudolVI7_nIBYKcEI1npz278d2-LSi4Y8fK5Z2ctTY.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/EEUTqiyEo6nmDZZeHMwO1r9cKT3LhciUYFSoHU0iGcE.cache → sprockets/v3.0/qY82QbvY3JrynAsb6pAVt8teuBrKIkOQ4Yw25pqPvE0.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/qg_wftmO7jS_a89vOJgaK0THZaNR8KUscoQjo9oWPVU.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/{assets/test/sprockets/v3.0/6aJwp38vBSXdtink_SgOtnqUqp8Z8okHEs08vGkZ0ec.cache → sprockets/v3.0/rjZFcBcZBcZzhVbfMwVzSmiPIhOG3lI-TPXRAVtpN6I.cache} +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/smkGipMoyg_yBW7rvwuP9Ci_fdWK1w68wbhDgjEjHcw.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/smpyMrlMLm6NqLzR4-8kAty0B7CHGePCuc4KKNIU43Y.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/spcLVj7sWjAbzSoM2eka7e_jHpvNnVKRzuuDwd0m-pQ.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/uESU-1lgcxaDZ5lrTLLAlg8GUd-Igwr2gRavnaveWXU.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/y66z-kCCKl0cyGdSI_hQzkRNjxRApQedRgJVTu3BuRo.cache +2 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/yJMqE54-t1my_dumhIg6mamMyRx0qADs7nY7cks0l-Q.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/ypxuZOcRS1MWu4o3mfAWRIDDdEl4uWHuDdXkvQoohc4.cache +1 -0
- data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/zcBfaDXG5wGN1mPgJL8V1Y7f3VJ7zCZzS4q4zY6CkEM.cache +1 -0
- data/test/models/maestrano_group_via_test.rb +2 -2
- data/test/models/maestrano_user_via_test.rb +2 -2
- data/test/tmp/app/controllers/maestrano/account/group_users_controller.rb +27 -0
- data/test/tmp/app/controllers/maestrano/account/groups_controller.rb +37 -0
- data/test/tmp/app/controllers/maestrano/auth/saml_controller.rb +57 -0
- data/test/tmp/config/routes.rb +60 -0
- metadata +130 -86
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy_activerecord/db/development.sqlite3 +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/-uA6cy-2nKd6XkeWcJhr8X3v3yZ5oViPiHRlvne99W0.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/04Ki0BXgfOJJaUw5um_GT67jyhfSeC5XuP72cI6NoDY.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/1ld51qTCgZXC9suf2t2hWCTtpjSIsBirvsb90m9ie-8.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/6RdLjaglysmf-CPvVKaloO_-5q9ADlCh9heL_jAQz-8.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/9TpslyozRKK68-sW9jLt13QIu1XWy-q-CzKU1EAb7RA.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/BQtyJR3ccqed7_s43p3BPj3IL18LWu1Fo1ZnzWC3qcc.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/KprhKxGjJIBw-qHcuN-fbQgVttWYDjUyQCKFvLUpSeQ.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/Mbf0YromzGbDh3Q33bjwLGOTV9oj3u4de0ocFPBeXCY.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/WivRTRHrfoezUj_7OaU50eG012NUWibGEeJYA4g59mY.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/eYr8LE29pvbLeoiuX1INZlTcPYWjQ7ThMYuRIvPPlCg.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/gy9RGhwK8c2SEljBLCz_qiWrBoP_Cl5IgvCjJuxw148.cache +0 -0
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +0 -2
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/mhIfYcBPFAF-_yuaqLVntwdB3zZcDDOc5femwATDC8Q.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/rXBgGAYahPKy55mgXjkz5OcFFiiGfvCLoOsbkMQGNDs.cache +0 -1
- data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/v3.0/uRsN6Sa_S5hSLGCCuuLNBXfhwvck-N7Sr2XbVq8waFY.cache +0 -1
- data/test/tmp/app/models/monster.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38f6e4c01058ea2bc5b48ffe2b2bd4be30e7163f
|
4
|
+
data.tar.gz: e3cb08aedcfc7691c4ec6aac849842924406ddfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7b5df754ad9e5bc9ad8e2f092691cab8924003ae3349b1bdb54e7562caf130e7740570d98b42eb33bd193e1bf79a56136909e9bfb6f473c437def5a3926ee4f
|
7
|
+
data.tar.gz: c69ced5c12f9d2913792787413a62b14cd2ed62f519a99282c01e93894be4ea9f8ee3c92a10a88bf25b4dfe142cac738d374d35f9603e6456c7749cfabb01b6b
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,42 +1,54 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionmailer (4.
|
5
|
-
actionpack (= 4.
|
6
|
-
actionview (= 4.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
actionmailer (4.2.5)
|
5
|
+
actionpack (= 4.2.5)
|
6
|
+
actionview (= 4.2.5)
|
7
|
+
activejob (= 4.2.5)
|
8
|
+
mail (~> 2.5, >= 2.5.4)
|
9
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
10
|
+
actionpack (4.2.5)
|
11
|
+
actionview (= 4.2.5)
|
12
|
+
activesupport (= 4.2.5)
|
13
|
+
rack (~> 1.6)
|
12
14
|
rack-test (~> 0.6.2)
|
13
|
-
|
14
|
-
|
15
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
16
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
17
|
+
actionview (4.2.5)
|
18
|
+
activesupport (= 4.2.5)
|
15
19
|
builder (~> 3.1)
|
16
20
|
erubis (~> 2.7.0)
|
17
|
-
|
18
|
-
|
21
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
22
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
23
|
+
activejob (4.2.5)
|
24
|
+
activesupport (= 4.2.5)
|
25
|
+
globalid (>= 0.3.0)
|
26
|
+
activemodel (4.2.5)
|
27
|
+
activesupport (= 4.2.5)
|
19
28
|
builder (~> 3.1)
|
20
|
-
activerecord (4.
|
21
|
-
activemodel (= 4.
|
22
|
-
activesupport (= 4.
|
23
|
-
arel (~>
|
24
|
-
activesupport (4.
|
25
|
-
i18n (~> 0.
|
29
|
+
activerecord (4.2.5)
|
30
|
+
activemodel (= 4.2.5)
|
31
|
+
activesupport (= 4.2.5)
|
32
|
+
arel (~> 6.0)
|
33
|
+
activesupport (4.2.5)
|
34
|
+
i18n (~> 0.7)
|
26
35
|
json (~> 1.7, >= 1.7.7)
|
27
36
|
minitest (~> 5.1)
|
28
|
-
thread_safe (~> 0.
|
37
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
29
38
|
tzinfo (~> 1.1)
|
30
39
|
addressable (2.3.6)
|
31
|
-
arel (
|
40
|
+
arel (6.0.3)
|
32
41
|
bson (1.10.2)
|
42
|
+
bson (1.10.2-java)
|
33
43
|
bson_ext (1.10.2)
|
34
44
|
bson (~> 1.10.2)
|
35
45
|
builder (3.2.2)
|
46
|
+
concurrent-ruby (1.0.0)
|
47
|
+
concurrent-ruby (1.0.0-java)
|
36
48
|
database_cleaner (1.3.0)
|
37
49
|
descendants_tracker (0.0.4)
|
38
50
|
thread_safe (~> 0.3, >= 0.3.1)
|
39
|
-
domain_name (0.5.
|
51
|
+
domain_name (0.5.25)
|
40
52
|
unf (>= 0.0.5, < 1.0.0)
|
41
53
|
durran-validatable (2.0.1)
|
42
54
|
erubis (2.7.0)
|
@@ -51,15 +63,16 @@ GEM
|
|
51
63
|
multi_json (>= 1.7.5, < 2.0)
|
52
64
|
nokogiri (~> 1.6.3)
|
53
65
|
oauth2
|
66
|
+
globalid (0.3.6)
|
67
|
+
activesupport (>= 4.1.0)
|
54
68
|
hashie (3.2.0)
|
55
69
|
highline (1.6.21)
|
56
|
-
hike (1.2.3)
|
57
70
|
http-cookie (1.0.2)
|
58
71
|
domain_name (~> 0.5)
|
59
72
|
httparty (0.13.7)
|
60
73
|
json (~> 1.8)
|
61
74
|
multi_xml (>= 0.5.2)
|
62
|
-
i18n (0.
|
75
|
+
i18n (0.7.0)
|
63
76
|
jeweler (2.0.1)
|
64
77
|
builder
|
65
78
|
bundler (>= 1.0)
|
@@ -72,39 +85,42 @@ GEM
|
|
72
85
|
jquery-rails (3.1.1)
|
73
86
|
railties (>= 3.0, < 5.0)
|
74
87
|
thor (>= 0.14, < 2.0)
|
75
|
-
json (1.8.
|
76
|
-
json (1.8.
|
88
|
+
json (1.8.3)
|
89
|
+
json (1.8.3-java)
|
77
90
|
jwt (1.0.0)
|
78
91
|
leshill-will_paginate (2.3.11)
|
92
|
+
loofah (2.0.3)
|
93
|
+
nokogiri (>= 1.5.9)
|
79
94
|
macaddr (1.7.1)
|
80
95
|
systemu (~> 2.6.2)
|
81
|
-
maestrano (0.12.
|
96
|
+
maestrano (0.12.1)
|
82
97
|
httparty (~> 0.13)
|
83
98
|
json (~> 1.8)
|
84
99
|
mime-types (~> 1.25)
|
85
100
|
nokogiri (>= 1.5.0)
|
86
101
|
rest-client (~> 1.4)
|
87
102
|
uuid (~> 2.3)
|
88
|
-
mail (2.
|
89
|
-
mime-types (
|
90
|
-
treetop (~> 1.4.8)
|
103
|
+
mail (2.6.3)
|
104
|
+
mime-types (>= 1.16, < 3)
|
91
105
|
metaclass (0.0.4)
|
92
106
|
mime-types (1.25.1)
|
93
107
|
mini_portile (0.6.0)
|
94
|
-
minitest (5.
|
108
|
+
minitest (5.8.3)
|
95
109
|
mocha (1.1.0)
|
96
110
|
metaclass (~> 0.0.1)
|
97
111
|
mongo (1.10.2)
|
98
112
|
bson (= 1.10.2)
|
113
|
+
mongo (1.10.2-java)
|
114
|
+
bson (= 1.10.2)
|
99
115
|
mongoid (1.0.6)
|
100
116
|
activesupport (>= 2.2.2)
|
101
117
|
durran-validatable (>= 2.0.1)
|
102
118
|
leshill-will_paginate (>= 2.3.11)
|
103
119
|
mongo (>= 0.18.2)
|
104
|
-
multi_json (1.
|
120
|
+
multi_json (1.11.2)
|
105
121
|
multi_xml (0.5.5)
|
106
122
|
multipart-post (2.0.0)
|
107
|
-
netrc (0.
|
123
|
+
netrc (0.11.0)
|
108
124
|
nokogiri (1.6.3.1)
|
109
125
|
mini_portile (= 0.6.0)
|
110
126
|
nokogiri (1.6.3.1-java)
|
@@ -114,26 +130,34 @@ GEM
|
|
114
130
|
multi_json (~> 1.3)
|
115
131
|
multi_xml (~> 0.5)
|
116
132
|
rack (~> 1.2)
|
117
|
-
|
118
|
-
rack (
|
119
|
-
rack-test (0.6.2)
|
133
|
+
rack (1.6.4)
|
134
|
+
rack-test (0.6.3)
|
120
135
|
rack (>= 1.0)
|
121
|
-
rails (4.
|
122
|
-
actionmailer (= 4.
|
123
|
-
actionpack (= 4.
|
124
|
-
actionview (= 4.
|
125
|
-
|
126
|
-
|
127
|
-
|
136
|
+
rails (4.2.5)
|
137
|
+
actionmailer (= 4.2.5)
|
138
|
+
actionpack (= 4.2.5)
|
139
|
+
actionview (= 4.2.5)
|
140
|
+
activejob (= 4.2.5)
|
141
|
+
activemodel (= 4.2.5)
|
142
|
+
activerecord (= 4.2.5)
|
143
|
+
activesupport (= 4.2.5)
|
128
144
|
bundler (>= 1.3.0, < 2.0)
|
129
|
-
railties (= 4.
|
130
|
-
sprockets-rails
|
131
|
-
|
132
|
-
|
133
|
-
|
145
|
+
railties (= 4.2.5)
|
146
|
+
sprockets-rails
|
147
|
+
rails-deprecated_sanitizer (1.0.3)
|
148
|
+
activesupport (>= 4.2.0.alpha)
|
149
|
+
rails-dom-testing (1.0.7)
|
150
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
151
|
+
nokogiri (~> 1.6.0)
|
152
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
153
|
+
rails-html-sanitizer (1.0.2)
|
154
|
+
loofah (~> 2.0)
|
155
|
+
railties (4.2.5)
|
156
|
+
actionpack (= 4.2.5)
|
157
|
+
activesupport (= 4.2.5)
|
134
158
|
rake (>= 0.8.7)
|
135
159
|
thor (>= 0.18.1, < 2.0)
|
136
|
-
rake (10.
|
160
|
+
rake (10.5.0)
|
137
161
|
rdoc (4.1.1)
|
138
162
|
json (~> 1.4)
|
139
163
|
rest-client (1.8.0)
|
@@ -146,25 +170,20 @@ GEM
|
|
146
170
|
shoulda-context (1.2.1)
|
147
171
|
shoulda-matchers (2.6.2)
|
148
172
|
activesupport (>= 3.0.0)
|
149
|
-
sprockets (
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
activesupport (>= 3.0)
|
157
|
-
sprockets (~> 2.8)
|
173
|
+
sprockets (3.5.2)
|
174
|
+
concurrent-ruby (~> 1.0)
|
175
|
+
rack (> 1, < 3)
|
176
|
+
sprockets-rails (3.0.0)
|
177
|
+
actionpack (>= 4.0)
|
178
|
+
activesupport (>= 4.0)
|
179
|
+
sprockets (>= 3.0.0)
|
158
180
|
sqlite3 (1.3.9)
|
159
181
|
systemu (2.6.5)
|
160
182
|
test-unit (2.5.5)
|
161
183
|
thor (0.19.1)
|
162
|
-
thread_safe (0.3.
|
163
|
-
|
164
|
-
|
165
|
-
polyglot
|
166
|
-
polyglot (>= 0.3.1)
|
167
|
-
tzinfo (1.2.1)
|
184
|
+
thread_safe (0.3.5)
|
185
|
+
thread_safe (0.3.5-java)
|
186
|
+
tzinfo (1.2.2)
|
168
187
|
thread_safe (~> 0.1)
|
169
188
|
unf (0.1.4)
|
170
189
|
unf_ext
|
@@ -182,10 +201,13 @@ DEPENDENCIES
|
|
182
201
|
database_cleaner
|
183
202
|
jeweler
|
184
203
|
jquery-rails
|
185
|
-
maestrano (~> 0.12.
|
204
|
+
maestrano (~> 0.12.1)
|
186
205
|
mocha
|
187
206
|
mongoid
|
188
207
|
rails
|
189
208
|
shoulda
|
190
209
|
sqlite3
|
191
210
|
test-unit
|
211
|
+
|
212
|
+
BUNDLED WITH
|
213
|
+
1.10.6
|
@@ -3,12 +3,10 @@ class Maestrano::Rails::SamlBaseController < ApplicationController
|
|
3
3
|
protect_from_forgery :except => [:consume]
|
4
4
|
around_filter :saml_response_transaction, only: [:consume]
|
5
5
|
|
6
|
-
# GET /maestrano/auth/saml/init
|
7
6
|
# GET /maestrano/auth/saml/init/:tenant
|
8
7
|
#
|
9
8
|
# Initialize the SAML request and redirects the user to Maestrano
|
10
9
|
def init
|
11
|
-
session[:tenant] = params[:tenant]
|
12
10
|
redirect_to Maestrano::Saml::Request[params[:tenant]].new(params, session).redirect_url
|
13
11
|
end
|
14
12
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Maestrano
|
2
|
+
module Generators
|
3
|
+
class InitializerGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../templates", __FILE__)
|
5
|
+
desc "Creates a Maestrano initializer and a customizable controller for SAML Single Sign-On"
|
6
|
+
|
7
|
+
def copy_initializer
|
8
|
+
template "maestrano.rb", "config/initializers/maestrano.rb"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,25 +1,27 @@
|
|
1
|
+
require_relative 'initializer_generator'
|
2
|
+
|
1
3
|
module Maestrano
|
2
4
|
module Generators
|
3
5
|
class InstallGenerator < ::Rails::Generators::Base
|
4
6
|
source_root File.expand_path("../templates", __FILE__)
|
5
7
|
desc "Creates a Maestrano initializer and a customizable controller for SAML Single Sign-On"
|
6
|
-
|
8
|
+
|
7
9
|
def copy_initializer
|
8
|
-
|
10
|
+
Maestrano::Generators::InitializerGenerator.new('maestrano:initializer').invoke_all
|
9
11
|
end
|
10
|
-
|
12
|
+
|
11
13
|
def copy_saml_controller
|
12
14
|
template "saml_controller.rb", "app/controllers/maestrano/auth/saml_controller.rb"
|
13
15
|
end
|
14
|
-
|
16
|
+
|
15
17
|
def copy_account_groups_controller
|
16
18
|
template "groups_controller.rb", "app/controllers/maestrano/account/groups_controller.rb"
|
17
19
|
end
|
18
|
-
|
20
|
+
|
19
21
|
def copy_account_group_users_controller
|
20
22
|
template "group_users_controller.rb", "app/controllers/maestrano/account/group_users_controller.rb"
|
21
23
|
end
|
22
|
-
|
24
|
+
|
23
25
|
def add_maestrano_routes
|
24
26
|
maestrano_routes = <<-CONTENT
|
25
27
|
maestrano_routes
|
@@ -7,7 +7,7 @@ module Maestrano
|
|
7
7
|
if model_type == 'user'
|
8
8
|
buffer = <<-CONTENT
|
9
9
|
# Enable Maestrano for this user
|
10
|
-
maestrano_user_via :provider, :uid do |user,maestrano|
|
10
|
+
maestrano_user_via :provider, :uid, :tenant do |user,maestrano|
|
11
11
|
user.name = maestrano.first_name
|
12
12
|
user.surname = maestrano.last_name
|
13
13
|
user.email = maestrano.email
|
@@ -20,7 +20,7 @@ CONTENT
|
|
20
20
|
else
|
21
21
|
buffer = <<-CONTENT
|
22
22
|
# Enable Maestrano for this group
|
23
|
-
maestrano_group_via :provider, :uid do |group, maestrano|
|
23
|
+
maestrano_group_via :provider, :uid, :tenant do |group, maestrano|
|
24
24
|
group.name = (maestrano.company_name || "Default Group name")
|
25
25
|
# group.principal_email = maestrano.email
|
26
26
|
# group.city = maestrano.city
|
@@ -1,11 +1,12 @@
|
|
1
1
|
class Maestrano::Account::GroupUsersController < Maestrano::Rails::WebHookController
|
2
2
|
|
3
|
-
# DELETE /maestrano/account/groups/cld-1/users/usr-1
|
3
|
+
# DELETE /maestrano/account/groups/cld-1/users/usr-1/:tenant
|
4
4
|
# Remove a user from a group
|
5
5
|
def destroy
|
6
6
|
# Set the right uid based on Maestrano.param('sso.creation_mode')
|
7
7
|
user_uid = Maestrano.mask_user(params[:id],params[:group_id])
|
8
8
|
group_uid = params[:group_id]
|
9
|
+
tenant = params[:tenant]
|
9
10
|
|
10
11
|
# Perform association deletion steps here
|
11
12
|
# --
|
@@ -13,8 +14,8 @@ class Maestrano::Account::GroupUsersController < Maestrano::Rails::WebHookContro
|
|
13
14
|
# then you might want to just delete/cancel/block the user
|
14
15
|
#
|
15
16
|
# E.g
|
16
|
-
# user = User.
|
17
|
-
# organization = Organization.
|
17
|
+
# user = User.find_by_tenant_and_uid(tenant, user_uid)
|
18
|
+
# organization = Organization.find_by_tenant_and_uid(tenant ,group_uid)
|
18
19
|
#
|
19
20
|
# if Maestrano.param('sso.creation_mode') == 'virtual'
|
20
21
|
# user.destroy
|
@@ -1,9 +1,10 @@
|
|
1
1
|
class Maestrano::Account::GroupsController < Maestrano::Rails::WebHookController
|
2
2
|
|
3
|
-
# DELETE /maestrano/account/groups/cld-1
|
3
|
+
# DELETE /maestrano/account/groups/cld-1/:tenant
|
4
4
|
# Delete an entire group
|
5
5
|
def destroy
|
6
6
|
group_uid = params[:id]
|
7
|
+
tenant = params[:tenant]
|
7
8
|
|
8
9
|
# Perform deletion steps here
|
9
10
|
# --
|
@@ -15,7 +16,7 @@ class Maestrano::Account::GroupsController < Maestrano::Rails::WebHookController
|
|
15
16
|
# that group
|
16
17
|
# --
|
17
18
|
# E.g:
|
18
|
-
# organization = Organization.
|
19
|
+
# organization = Organization.find_by_tenant_and_uid(tenant, group_uid)
|
19
20
|
#
|
20
21
|
# amount_cents = organization.calculate_total_due_remaining
|
21
22
|
# Maestrano::Account::Bill.create({
|
@@ -52,7 +52,7 @@ Maestrano.configure do |config|
|
|
52
52
|
# generated when you run 'rake maestrano:install' and is available at
|
53
53
|
# <rails_root>/app/controllers/maestrano/auth/saml.rb
|
54
54
|
#
|
55
|
-
|
55
|
+
config.sso.init_path = '/maestrano/auth/saml/init/default'
|
56
56
|
|
57
57
|
# ==> SSO Consumer endpoint
|
58
58
|
# This is your application path to the SAML endpoint that allows users to
|
@@ -63,7 +63,7 @@ Maestrano.configure do |config|
|
|
63
63
|
# generated when you run 'rake maestrano:install' and is available at
|
64
64
|
# <rails_root>/app/controllers/maestrano/auth/saml.rb
|
65
65
|
#
|
66
|
-
|
66
|
+
config.sso.consume_path = '/maestrano/auth/saml/consume/default'
|
67
67
|
|
68
68
|
# ==> Single Logout activation
|
69
69
|
# Enable/Disable single logout. When troubleshooting authentication issues
|
@@ -121,8 +121,8 @@ Maestrano.configure do |config|
|
|
121
121
|
# you run 'rake maestrano:install' and is available under
|
122
122
|
# <rails_root>/app/controllers/maestrano/account/
|
123
123
|
#
|
124
|
-
|
125
|
-
|
124
|
+
config.webhook.account.groups_path = '/maestrano/account/groups/:id/default'
|
125
|
+
config.webhook.account.group_users_path = '/maestrano/account/groups/:group_id/users/:id/default'
|
126
126
|
end
|
127
127
|
|
128
128
|
# Example of multi-tenant configuration
|
@@ -132,4 +132,9 @@ Maestrano['other-tenant'].configure do |config|
|
|
132
132
|
|
133
133
|
config.api.id = (config.environment == 'production' ? 'prod_app_id' : 'sandbox_app_id')
|
134
134
|
config.api.key = (config.environment == 'production' ? 'prod_api_key' : 'sandbox_api_key')
|
135
|
+
|
136
|
+
config.sso.init_path = '/maestrano/auth/saml/init/other-tenant'
|
137
|
+
config.sso.consume_path = '/maestrano/auth/saml/consume/other-tenant'
|
138
|
+
config.webhook.account.groups_path = '/maestrano/account/groups/:id/other-tenant'
|
139
|
+
config.webhook.account.group_users_path = '/maestrano/account/groups/:group_id/users/:id/other-tenant'
|
135
140
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Maestrano::Auth::SamlController < Maestrano::Rails::SamlBaseController
|
2
2
|
|
3
|
-
#== POST '/maestrano/auth/saml/consume'
|
3
|
+
#== POST '/maestrano/auth/saml/consume/:tenant'
|
4
4
|
# Final phase of the Single Sign-On handshake. Find or create
|
5
5
|
# the required resources (user and group) and sign the user
|
6
6
|
# in
|
@@ -25,6 +25,11 @@ class Maestrano::Auth::SamlController < Maestrano::Rails::SamlBaseController
|
|
25
25
|
# user = User.find_or_create_for_maestrano(user_auth_hash)
|
26
26
|
# organization = Organization.find_or_create_for_maestrano(group_auth_hash)
|
27
27
|
#
|
28
|
+
# user.tenant = params[:tenant]
|
29
|
+
# user.save
|
30
|
+
# organization.tenant = params[:tenant]
|
31
|
+
# organization.save
|
32
|
+
#
|
28
33
|
#
|
29
34
|
### 2) Add the user to the group if not already a member
|
30
35
|
### --
|
@@ -13,9 +13,9 @@ module Maestrano
|
|
13
13
|
module ClassMethods
|
14
14
|
# Configure a user model with mapping to SSO fields
|
15
15
|
# and add user behaviour
|
16
|
-
def maestrano_user_via(provider_field,uid_field, &block)
|
16
|
+
def maestrano_user_via(provider_field, uid_field, tenant_field, &block)
|
17
17
|
extend Maestrano::Rails::MaestranoAuthResource::LocalClassGenericMethods
|
18
|
-
self.maestrano_generic_configurator(provider_field,uid_field, &block)
|
18
|
+
self.maestrano_generic_configurator(provider_field, uid_field, tenant_field, &block)
|
19
19
|
|
20
20
|
include Maestrano::Rails::MaestranoAuthResource::LocalInstanceUserMethods
|
21
21
|
|
@@ -27,9 +27,9 @@ module Maestrano
|
|
27
27
|
|
28
28
|
# Configure a group model with mapping to SSO fields
|
29
29
|
# and add group behaviour
|
30
|
-
def maestrano_group_via(provider_field,uid_field, &block)
|
30
|
+
def maestrano_group_via(provider_field, uid_field, tenant_field, &block)
|
31
31
|
extend Maestrano::Rails::MaestranoAuthResource::LocalClassGenericMethods
|
32
|
-
self.maestrano_generic_configurator(provider_field,uid_field, &block)
|
32
|
+
self.maestrano_generic_configurator(provider_field, uid_field, tenant_field, &block)
|
33
33
|
|
34
34
|
include Maestrano::Rails::MaestranoAuthResource::LocalInstanceGroupMethods
|
35
35
|
end
|
@@ -38,11 +38,12 @@ module Maestrano
|
|
38
38
|
# Actual class methods - injected after behaviour
|
39
39
|
# has been added (don't polute the model scope)
|
40
40
|
module LocalClassGenericMethods
|
41
|
-
def maestrano_generic_configurator(provider_field,uid_field, &block)
|
41
|
+
def maestrano_generic_configurator(provider_field, uid_field, tenant_field, &block)
|
42
42
|
cattr_accessor :maestrano_options
|
43
43
|
self.maestrano_options = {
|
44
44
|
provider: provider_field.to_s,
|
45
45
|
uid: uid_field.to_s,
|
46
|
+
tenant: tenant_field.to_s,
|
46
47
|
mapping: block
|
47
48
|
}
|
48
49
|
|
@@ -51,11 +52,12 @@ module Maestrano
|
|
51
52
|
|
52
53
|
# Find the resource based on provider and uid fields or create
|
53
54
|
# it using the mapping block defined at the model level
|
54
|
-
def find_or_create_for_maestrano(auth_hash)
|
55
|
+
def find_or_create_for_maestrano(auth_hash, tenant='default')
|
55
56
|
# Look for the entity first
|
56
57
|
entity = self.where(
|
57
58
|
self.maestrano_options[:provider].to_sym => auth_hash[:provider],
|
58
59
|
self.maestrano_options[:uid].to_sym => auth_hash[:uid],
|
60
|
+
self.maestrano_options[:tenant].to_sym => tenant
|
59
61
|
).first
|
60
62
|
|
61
63
|
# Create it otherwise
|
@@ -78,11 +80,12 @@ module Maestrano
|
|
78
80
|
end
|
79
81
|
|
80
82
|
# Call mapping block
|
81
|
-
self.maestrano_options[:mapping].call(entity,info,extra)
|
83
|
+
self.maestrano_options[:mapping].call(entity, info, extra)
|
82
84
|
|
83
|
-
# Finally set provider and
|
84
|
-
entity.send("#{self.maestrano_options[:provider]}=",auth_hash[:provider])
|
85
|
-
entity.send("#{self.maestrano_options[:uid]}=",auth_hash[:uid])
|
85
|
+
# Finally set provider, uid and tenant then save
|
86
|
+
entity.send("#{self.maestrano_options[:provider]}=", auth_hash[:provider])
|
87
|
+
entity.send("#{self.maestrano_options[:uid]}=", auth_hash[:uid])
|
88
|
+
entity.send("#{self.maestrano_options[:tenant]}=", tenant)
|
86
89
|
entity.save!
|
87
90
|
end
|
88
91
|
|
@@ -3,22 +3,41 @@ module ActionDispatch::Routing
|
|
3
3
|
def maestrano_routes
|
4
4
|
namespace :maestrano do
|
5
5
|
scope module: :rails do
|
6
|
+
# GET /maestrano/metadata
|
6
7
|
get '/metadata', to: 'metadata#index'
|
7
|
-
|
8
|
+
|
9
|
+
# GET /maestrano/metadata/mytenant
|
10
|
+
get '/metadata/:tenant', to: 'metadata#index'
|
8
11
|
end
|
9
12
|
|
10
13
|
namespace :auth do
|
11
14
|
resources :saml, only:[] do
|
12
|
-
|
13
|
-
get 'init
|
14
|
-
|
15
|
+
# GET /maestrano/auth/saml/init
|
16
|
+
get 'init', on: :collection, to: 'saml#init', as: :default
|
17
|
+
|
18
|
+
# GET /maestrano/auth/saml/init/mytenant
|
19
|
+
get 'init/:tenant', on: :collection, to: 'saml#init', as: :tenant
|
20
|
+
|
21
|
+
# POST /maestrano/auth/saml/consume
|
22
|
+
post 'consume', on: :collection, to: 'saml#consume'
|
23
|
+
|
24
|
+
# POST /maestrano/auth/saml/consume/mytenant
|
25
|
+
post 'consume/:tenant', on: :collection, to: 'saml#consume'
|
15
26
|
end
|
16
27
|
end
|
17
|
-
|
28
|
+
|
18
29
|
namespace :account do
|
19
|
-
|
20
|
-
|
21
|
-
|
30
|
+
# DELETE /maestrano/account/groups/cld-1234
|
31
|
+
delete 'groups/:id', to: 'groups#destroy'
|
32
|
+
|
33
|
+
# DELETE /maestrano/account/groups/cld-1234/mytenant
|
34
|
+
delete 'groups/:id/:tenant', to: 'groups#destroy'
|
35
|
+
|
36
|
+
# DELETE /maestrano/account/groups/cld-1234/users/usr-1234
|
37
|
+
delete 'groups/:group_id/users/:id', to: 'group_users#destroy'
|
38
|
+
|
39
|
+
# DELETE /maestrano/account/groups/cld-1234/users/usr-1234/mytenant
|
40
|
+
delete 'groups/:group_id/users/:id/:tenant', to: 'group_users#destroy'
|
22
41
|
end
|
23
42
|
end
|
24
43
|
end
|