maestrano-rails 0.15.4 → 1.0.0.pre.RC1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +19 -9
  3. data/Gemfile.lock +92 -69
  4. data/Rakefile +2 -3
  5. data/lib/generators/maestrano/install_generator.rb +2 -4
  6. data/lib/maestrano/rails/controllers/maestrano_security.rb +3 -3
  7. data/maestrano-rails.gemspec +21 -10
  8. data/test/controllers/generic_controller_test.rb +8 -9
  9. data/test/controllers/group_users_controller_test.rb +4 -4
  10. data/test/controllers/groups_controller_test.rb +4 -5
  11. data/test/controllers/metadata_controller_test.rb +4 -5
  12. data/test/controllers/saml_controller_test.rb +18 -19
  13. data/test/dummy_activerecord/config/environments/test.rb +0 -1
  14. data/test/dummy_activerecord/db/schema.rb +4 -5
  15. data/test/dummy_activerecord/db/test.sqlite3 +0 -0
  16. data/test/dummy_activerecord/log/test.log +35295 -0
  17. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/-C/-CUaFte-At_ZVb8D71c_AiMzrOPTXw-BMGqTojtmy3Y.cache +0 -0
  18. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/-_/-_MabpLUhXiPkxXGOiOrgjXkpEv73ICqppxBTxZvccw.cache +1 -0
  19. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/01/01GEO_ZVbuwvmST4e85z6nkHLX1bc3e_ywpiUzFPnSo.cache +1 -0
  20. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/2-/2-0w2lrUYGJTWSS8ctq_qa38uSr88P2L-iV2bXyyGuA.cache +2 -0
  21. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/2-0w2lrUYGJTWSS8ctq_qa38uSr88P2L-iV2bXyyGuA.cache +2 -0
  22. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/2K/2K-jK2KOfbYsAG5az024Vrk_WQn6Dm09R2dlscmZDs4.cache +0 -0
  23. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/5P/5PzaTKdv0KAps-RvN527yFgLosXBCc5UUImL9ZsEutI.cache +0 -0
  24. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/5g/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +0 -0
  25. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +2 -0
  26. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/5t/5tSJkXP0EAhAS8ZziWUc_XxADJ9TudnU4KyNUnyqVLA.cache +1 -0
  27. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/69/691Ojglb0GeVkTxD5eKWXmRXNoeME4UAnH5X1n0GoaQ.cache +1 -0
  28. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/7e/7ewNUUbYWPSho4J7FsnBSX8DqsEbHot9_-drxqle7-E.cache +0 -0
  29. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/8b/8b3VRw_Sg7AHBoUEtl-pD8Kl0JCDUwVO_UDXnEWTFC8.cache +0 -0
  30. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/9j4Cn3Bg7rj2--N8lWHQ-aSIKt0CZxl7GNjlSaHb7L0.cache +0 -0
  31. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/9t/9tskPO8cPRwEU4WKSW401X6HTXgIZWq3f_oRK3doRmc.cache +1 -0
  32. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/A1/A1SEgJJSv7Jags4WoF0W2RYL295mnVszcr_ylelr8Qs.cache +1 -0
  33. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/BQ/BQtyJR3ccqed7_s43p3BPj3IL18LWu1Fo1ZnzWC3qcc.cache +0 -0
  34. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/BQtyJR3ccqed7_s43p3BPj3IL18LWu1Fo1ZnzWC3qcc.cache +2 -0
  35. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Bx/Bx-UB5UMXrZgolnJ2S-_Dqmz2x3B-pOUioyvhiLk85U.cache +0 -0
  36. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/CG/CG8g94hLztQB9P9eQcLq4g397J6t5yY2fBM6781UzIU.cache +1 -0
  37. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Cy/CyMO22fWi_h02uV841PlMAXrMeZHgNBiR7r4QsDasFU.cache +0 -0
  38. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/DC/DCjrERNLpUn0h_39QgyKP2SEj_ztEITtIf_Yt6l4Ons.cache +0 -0
  39. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/DE/DEINW1gPZfN8jHQiaEUXkAci3xV6Aq1XhHIfUDlFuZI.cache +0 -0
  40. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/EM/EMLT9zZMN-sck7pu8sMhRXp7ScTRWRb1t8UyEGuW6sY.cache +1 -0
  41. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/F6/F6rU8vGhp73xXYTB4oocVkDxyTjuw4IIAAU3F_tkxVg.cache +0 -0
  42. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/GDQMRgyhp21p2xg_ITm3PdEDJXU-mgllQ2Mij3aSig4.cache +1 -0
  43. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Gk/GkzGL45U4eDCASTP-jH69Bqqn1QuLI83Hl7uH9br7NM.cache +1 -0
  44. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/HmDZuiDF0OtgSoq7e2rtPrN16sGrNzJO1GrvmJBFqYs.cache +0 -0
  45. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/IgIskv_-aTzPU_wM_Xr1bhk_nLAf8zYrjJonfNtAv6E.cache +1 -0
  46. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Ir/IrC3CI4UK9epEnLL0YUsgNBcThnYcTbaNjMC5uPv1Uo.cache +1 -0
  47. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/IrC3CI4UK9epEnLL0YUsgNBcThnYcTbaNjMC5uPv1Uo.cache +1 -0
  48. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/K_kmfMGNdm_wfvEnsfYglN-C8fj94rbCQJSnAI03mNU.cache +1 -0
  49. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/LN4-PLL3b8DkfopaNEJ8U-nu9FuSHjEL4nELYoYCub8.cache +0 -0
  50. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/LniLozFK0AHveFRcKmFzbr_tFBteoecaWgVBQbJwaL0.cache +1 -0
  51. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/M6sHCm5v32qRTBidHBsrTORDxaA9SCVgH3jnRn8iNLk.cache +2 -0
  52. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/MN/MN1e_LrVyR3aNfPSaw2wFbdnjecirT0mldx-SjT_oj4.cache +1 -0
  53. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Mk/MkmQjG68clE_f7Mq_FHyfHwMSm9rwtkec26otxHVXIE.cache +1 -0
  54. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Mw/MwYWZsJm1ste7zBLFfcVSVUsroBgKDJGIbOUXJAs2Ck.cache +0 -0
  55. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/N6i2RwsdhSsA60KxpXlF7RYb3gLVu2mOQlWzPTMcNw4.cache +1 -0
  56. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/O7/O76sfqU0WEpkBo_1l-r1Cudc5HCo965eLIsEIL3aTkE.cache +0 -0
  57. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/OH/OH5sGA6GHD4qAgHK48pd9JOpj87ia6OgH20xrqBZ4uQ.cache +1 -0
  58. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Ol/OlImw7UgWtLs2DLafYZTcgku0dz__K03i797LWEpq_I.cache +1 -0
  59. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/POVOiJI4HFOnKUqmwmHBWI-64koorns1IzsUwQdJwL0.cache +0 -0
  60. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/QB/QBK6F9LPdIBQ4zZx6EoclnW8dhHBFXHw5HEvvkwW5BM.cache +0 -0
  61. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Qk/Qk70I8BICRve2U-far2u5YFGnw_iUCF8PHp0BUTosXc.cache +1 -0
  62. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Rg/Rg0g0M_4DLsDPnXdymA6-XwEmUKAUosbktqFseoGBPA.cache +0 -0
  63. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/TM6G95HBN6Kv_sF1SaADJyoSpQQSLmMnUXVn2f1jlnY.cache +1 -0
  64. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/U6/U6DY0EQX7ivVHlU-Mckxvy1F8CLv81PGVie7lGAR5IM.cache +0 -0
  65. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/UA/UAYWm416Cm5D21fLcF-6Z5laZqeztvd9HINx5NhXQ2M.cache +0 -0
  66. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/UG/UGvEaN6gnQMmC4dIqHsCaqNXpkBYrSq6LJTAj4yOu0o.cache +1 -0
  67. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Uu/UuOV1aKeAjpnuZekKjchUCIeZ2t61ZP4bx_N097pmXo.cache +0 -0
  68. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/VC/VCKtidQxue9KbDXM-_MSEOX-AwJEw3JfqjZTlhORFsc.cache +1 -0
  69. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/VN/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +0 -0
  70. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +2 -0
  71. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/W1/W1I750hXtFauIXfdF_h8f0H6Eh9fPjn1nb3WDnJGJ_0.cache +0 -0
  72. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/W1I750hXtFauIXfdF_h8f0H6Eh9fPjn1nb3WDnJGJ_0.cache +2 -0
  73. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/W7/W7d2rPy6yLypXS-89gBe3ECwqcl-qyP0kY8fZUYn3cA.cache +1 -0
  74. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/WHb_lDwqFJu6BaJF8_AHwWMmgY9AIS0RUjJZATvHGy8.cache +0 -0
  75. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/WkKqqsOutgzMPu_Ym1AolTwC2_fRzqxbvRFpO9Lgh5s.cache +0 -0
  76. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Wo3dLIbJvLLO5QrL7Lxqf8CcxQPjTVgZjmAHci0eYlg.cache +1 -0
  77. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Wy/WysFSaiqCYDbaF-mGd5PfM4efJrLBs26kTHbQnU5Ly4.cache +0 -0
  78. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/X8/X8hH9P7zXF3_qaGOqjdJu-Q0DDh0CLtF6J4Rl_iipTc.cache +1 -0
  79. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Y4/Y4YIxBzlr-voaaEbWbyhQAJ3Us31tSGEZW1eGouOvI0.cache +1 -0
  80. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/YS/YSxkDLtbGGCU6Vpj9rLG6JFuS6nS8okz8xti5FamUXU.cache +1 -0
  81. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Yz/YzAR55QBcbsqyp16R0iYCThLfwEMn78wC8S6iVZ8uRY.cache +1 -0
  82. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/Yz/Yza7CX8B027EL_R0EHrj4lKZHsJAYero5W8ClbMzkSc.cache +0 -0
  83. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/_0/_0e7qyz2hlaVUnFKkdSQ0FgTeYWclku4mrKGDA79Pi0.cache +0 -0
  84. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/aAuuIrhNOw2g3r2XWyh_9bURa6E2xn_5BCVi43ab-Ps.cache +0 -0
  85. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/aQ/aQ4tjj4pb240O8fpsoxJkiwnGPIzMCqlnIOixgsTvng.cache +1 -0
  86. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/a_/a_rB_oXwjeDj_Ed9z78I_2XMuYttxCUTpq7p-SdyRKA.cache +1 -0
  87. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/b7/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +0 -0
  88. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +2 -0
  89. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/bE/bE_yCKU0tNqBpbEeDVUDiUV4gvVvnGUjzkFYtfPfpkc.cache +1 -0
  90. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/c9/c9zI3eluj1D9PPXiXebe-t9dJT4Ig0Sb-IbApxvnBBk.cache +0 -0
  91. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/cO/cOnGXbZBuECgR-W3wVHU8YytNMV49F-3ycqatcz0jaE.cache +0 -0
  92. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/el/elwOvgAJ85O6bhimWI8AJJbAOJO-_oUSslLhr9GEfFc.cache +1 -0
  93. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/elwOvgAJ85O6bhimWI8AJJbAOJO-_oUSslLhr9GEfFc.cache +1 -0
  94. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/f2/f24X6kv-eKoaf2WflS1e0_bGgTmQyZ2-sAiNvxSkYKo.cache +1 -0
  95. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/f8/f8WWrWAptfo1qSmHsTYrCJzb_vYG0wpQ9xvPvb0F6yI.cache +2 -0
  96. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/f8WWrWAptfo1qSmHsTYrCJzb_vYG0wpQ9xvPvb0F6yI.cache +2 -0
  97. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/gz/gzCGY5IhGYaNB8gu2UxMSi2hql0AOr1zSuu-asymhbY.cache +3 -0
  98. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/h3/h3-zQAH3XpWfKP0e8v2Jpj4uIegZcxDNdBXm71Rmq9g.cache +0 -0
  99. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/hcPk5eM7VJPi2ZM7DxeJRgnl-LSUUd_GrYrFi2mj0Yc.cache +1 -0
  100. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/if/ifn-Hyn3GANzQ-CLgwbON3wMTpC4K9OyPRSIRjldZ1A.cache +1 -0
  101. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/jM/jMfkNCJOENGI6boAyB_dmfF0GCAk4Jg1Njb0iJwVNkg.cache +0 -0
  102. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/jV/jVYDoH740FovMrSLk0lco9WCkrzffwRpddwN2ZBMsGQ.cache +1 -0
  103. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/lA/lAcnrF9oDGhlBUt2ovpl3xN6csxijQ9X5DNyvDCjNLk.cache +0 -0
  104. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/lB/lB-6XZIj11C1x8ixdiolbBYjzVf6baxZlalC-qg5UHk.cache +1 -0
  105. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/l_/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +0 -0
  106. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +2 -0
  107. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/mz/mza7QOu1wEmWaNoL3wpiHCroiylMRlg9bxjJtbEqZr0.cache +1 -0
  108. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/qY/qY82QbvY3JrynAsb6pAVt8teuBrKIkOQ4Yw25pqPvE0.cache +1 -0
  109. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/qY82QbvY3JrynAsb6pAVt8teuBrKIkOQ4Yw25pqPvE0.cache +1 -0
  110. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/qk/qkS311TykdauETodnLlHfo1qZIq9PPP_Pe6yJjnnMoY.cache +1 -0
  111. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/qm/qmXZpMdbZGPbadZJnUaTPei8HWkc6KipILWYqnKvAAA.cache +1 -0
  112. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/r4/r4bTG_zVpDgcHOhLZ3BAqCjLU0TFzUiEXjRPE36P-A8.cache +0 -0
  113. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/rZ/rZh-weycsGh97B_CY_OGtw7vb9T4w_dUaSDierI0z8E.cache +3 -0
  114. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/rj/rjZFcBcZBcZzhVbfMwVzSmiPIhOG3lI-TPXRAVtpN6I.cache +1 -0
  115. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/rjZFcBcZBcZzhVbfMwVzSmiPIhOG3lI-TPXRAVtpN6I.cache +1 -0
  116. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/sI/sI6ei0tAH9tdIE546hDUx79V9LxZykfRWqMcKzDkYTg.cache +0 -0
  117. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/spcLVj7sWjAbzSoM2eka7e_jHpvNnVKRzuuDwd0m-pQ.cache +1 -0
  118. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/uESU-1lgcxaDZ5lrTLLAlg8GUd-Igwr2gRavnaveWXU.cache +0 -0
  119. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/wc/wcoBXcTCK49dLJ87Fs1xN8uVqscZ76vCcYZ8Apba-dg.cache +0 -0
  120. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/xq/xql4V_K2Vr9TG-0PyQcazMrTMJOkQNWAmld-iJBpdEQ.cache +0 -0
  121. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/y66z-kCCKl0cyGdSI_hQzkRNjxRApQedRgJVTu3BuRo.cache +2 -0
  122. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/yJMqE54-t1my_dumhIg6mamMyRx0qADs7nY7cks0l-Q.cache +1 -0
  123. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/yl/yljvhTTX_qThC71Fdi_dvosdGbuSyMY_gfnZ-2NzTO0.cache +1 -0
  124. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/zcBfaDXG5wGN1mPgJL8V1Y7f3VJ7zCZzS4q4zY6CkEM.cache +1 -0
  125. data/test/dummy_activerecord/tmp/cache/assets/sprockets/v3.0/zg/zgNNVNtQdWjhAQpnmcSnMrE6iSX9TTjzIEefhvjdVxw.cache +1 -0
  126. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/070df203a09a9d4a368db8396165a105 +0 -0
  127. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  128. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/2a43a943daba23e5e37e8edf97cb0bdb +0 -0
  129. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  130. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  131. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/4d062bee73f43586c17d29a175f6243e +0 -0
  132. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/58e369b37e5157ea746a485eea17e9f7 +0 -0
  133. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/7ae10239eda2588a95fdcc7d871bef52 +0 -0
  134. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/8d5d60255600aa010a32e1d1a9bc6db6 +0 -0
  135. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/b3d9b0e88cdded276ebdce333e338a85 +0 -0
  136. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  137. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  138. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/e6e7b55d41c79514c44c3c8a45c17c60 +0 -0
  139. data/test/dummy_activerecord/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  140. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/0sUVkLi2-TZrZ_FT_mDeGoWMwGpS48yEfEYxihy5nmI.cache +0 -0
  141. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/2-0w2lrUYGJTWSS8ctq_qa38uSr88P2L-iV2bXyyGuA.cache +2 -0
  142. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/38HqlC3fOtaqYgpSbnmBJox6dlNY7sjNBTzMNCFx4Mc.cache +2 -0
  143. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/43SLVxa0HLJIPQPZDlXpd9_dnIUqeCXVwOA2A9V0Vsc.cache +0 -0
  144. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +0 -0
  145. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/7dUbHTwNQg5wkMpfSRWE_RDbzc7O3Kwh7s07ubAzXxY.cache +2 -0
  146. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/9j4Cn3Bg7rj2--N8lWHQ-aSIKt0CZxl7GNjlSaHb7L0.cache +0 -0
  147. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/B5aB2pc11WJxcU-HyLFLnLC96fMFlug6Amz8hS7jDj0.cache +0 -0
  148. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/BQtyJR3ccqed7_s43p3BPj3IL18LWu1Fo1ZnzWC3qcc.cache +0 -0
  149. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/CLp73dIq-CQDXyYTsWbjSxI4NqvVR1Uci51S3Rt83yc.cache +1 -0
  150. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/F7q3Bp8Hvzh5mn9AJr9g9uo5GfbZkigepPO5ZXkTzGY.cache +0 -0
  151. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/GBhwl-B9glhyk8ElvTWqe6I65UKde5wR9fVxPwwJ2Hg.cache +1 -0
  152. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/GDQMRgyhp21p2xg_ITm3PdEDJXU-mgllQ2Mij3aSig4.cache +1 -0
  153. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/HmDZuiDF0OtgSoq7e2rtPrN16sGrNzJO1GrvmJBFqYs.cache +0 -0
  154. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/IXVtyHRBEhzVHqrNmcus7pvHXuNfpReCzYzxhB7bBPA.cache +0 -0
  155. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/IgIskv_-aTzPU_wM_Xr1bhk_nLAf8zYrjJonfNtAv6E.cache +1 -0
  156. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/IrC3CI4UK9epEnLL0YUsgNBcThnYcTbaNjMC5uPv1Uo.cache +1 -0
  157. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/K_kmfMGNdm_wfvEnsfYglN-C8fj94rbCQJSnAI03mNU.cache +1 -0
  158. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/KzZa0OWunZJvtU11r_4UKZgCItVQkohjptcFbJ570cU.cache +0 -0
  159. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/LN4-PLL3b8DkfopaNEJ8U-nu9FuSHjEL4nELYoYCub8.cache +0 -0
  160. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/LniLozFK0AHveFRcKmFzbr_tFBteoecaWgVBQbJwaL0.cache +1 -0
  161. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/M0WOwkZpyk3ShmXHNFhdl4BgfEyvgZuzn40Fww00RYM.cache +1 -0
  162. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/M6sHCm5v32qRTBidHBsrTORDxaA9SCVgH3jnRn8iNLk.cache +2 -0
  163. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/N6i2RwsdhSsA60KxpXlF7RYb3gLVu2mOQlWzPTMcNw4.cache +1 -0
  164. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/POVOiJI4HFOnKUqmwmHBWI-64koorns1IzsUwQdJwL0.cache +0 -0
  165. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/TM6G95HBN6Kv_sF1SaADJyoSpQQSLmMnUXVn2f1jlnY.cache +1 -0
  166. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/TsyULHo-Ep-IDDhu6nN9frFLJNe7hg_op-o6g3Ycp48.cache +0 -0
  167. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +0 -0
  168. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/W1I750hXtFauIXfdF_h8f0H6Eh9fPjn1nb3WDnJGJ_0.cache +0 -0
  169. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/WHb_lDwqFJu6BaJF8_AHwWMmgY9AIS0RUjJZATvHGy8.cache +0 -0
  170. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/WkKqqsOutgzMPu_Ym1AolTwC2_fRzqxbvRFpO9Lgh5s.cache +0 -0
  171. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/Wo3dLIbJvLLO5QrL7Lxqf8CcxQPjTVgZjmAHci0eYlg.cache +1 -0
  172. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/aAuuIrhNOw2g3r2XWyh_9bURa6E2xn_5BCVi43ab-Ps.cache +0 -0
  173. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/aFlSrtCQNya8JILRa5652nUEY0ACPTd_pGU3yXuOx9o.cache +2 -0
  174. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +0 -0
  175. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/c5Auc2IFYhhN0woGElqbdz3HoROtMJX4TmUNekopcik.cache +1 -0
  176. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/degszJUXEQsWvjrjcbxJNLqH6tFybiuIClFdPT8qgyE.cache +0 -0
  177. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/elwOvgAJ85O6bhimWI8AJJbAOJO-_oUSslLhr9GEfFc.cache +1 -0
  178. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/f8WWrWAptfo1qSmHsTYrCJzb_vYG0wpQ9xvPvb0F6yI.cache +2 -0
  179. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/hcPk5eM7VJPi2ZM7DxeJRgnl-LSUUd_GrYrFi2mj0Yc.cache +1 -0
  180. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/kw00uOxe2W3DagBUVa0aLGOXTAH8i5-PNNpxyDJXkR0.cache +1 -0
  181. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +0 -0
  182. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/neudolVI7_nIBYKcEI1npz278d2-LSi4Y8fK5Z2ctTY.cache +1 -0
  183. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/qY82QbvY3JrynAsb6pAVt8teuBrKIkOQ4Yw25pqPvE0.cache +1 -0
  184. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/qg_wftmO7jS_a89vOJgaK0THZaNR8KUscoQjo9oWPVU.cache +1 -0
  185. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/rjZFcBcZBcZzhVbfMwVzSmiPIhOG3lI-TPXRAVtpN6I.cache +1 -0
  186. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/smkGipMoyg_yBW7rvwuP9Ci_fdWK1w68wbhDgjEjHcw.cache +0 -0
  187. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/smpyMrlMLm6NqLzR4-8kAty0B7CHGePCuc4KKNIU43Y.cache +1 -0
  188. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/spcLVj7sWjAbzSoM2eka7e_jHpvNnVKRzuuDwd0m-pQ.cache +1 -0
  189. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/uESU-1lgcxaDZ5lrTLLAlg8GUd-Igwr2gRavnaveWXU.cache +0 -0
  190. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/y66z-kCCKl0cyGdSI_hQzkRNjxRApQedRgJVTu3BuRo.cache +2 -0
  191. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/yJMqE54-t1my_dumhIg6mamMyRx0qADs7nY7cks0l-Q.cache +1 -0
  192. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/ypxuZOcRS1MWu4o3mfAWRIDDdEl4uWHuDdXkvQoohc4.cache +1 -0
  193. data/test/dummy_activerecord/tmp/cache/sprockets/v3.0/zcBfaDXG5wGN1mPgJL8V1Y7f3VJ7zCZzS4q4zY6CkEM.cache +1 -0
  194. data/test/generators/install_generator_test.rb +8 -8
  195. data/test/test_helper.rb +2 -2
  196. data/test/tmp/app/controllers/maestrano/account/group_users_controller.rb +27 -0
  197. data/test/tmp/app/controllers/maestrano/account/groups_controller.rb +37 -0
  198. data/test/tmp/app/controllers/maestrano/auth/saml_controller.rb +57 -0
  199. data/test/tmp/config/initializers/maestrano.rb +140 -0
  200. data/test/tmp/config/routes.rb +60 -0
  201. metadata +430 -7
  202. data/lib/generators/maestrano/initializer_generator.rb +0 -12
@@ -0,0 +1 @@
1
+ "%h�,"x!�ň�yf_C� _��V-� G�:P�
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/pages.js?type=application/javascript&pipeline=self&id=8684badc0ff49e8476a25918bfe682f6664b4f656eeb4c497b923cc0604e457a:ET
@@ -0,0 +1 @@
1
+ "%���h��;����*���b(��n��Gn��L
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"sfile-digest:///home/bruno/.rvm/gems/ruby-2.2.1/gems/jquery-rails-4.1.0/vendor/assets/javascripts/jquery_ujs.js;TT
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/pages.css?type=text/css&pipeline=self&id=1f4c61808774a4edfb5283514dae20e34c959807edb6b8819ddd38f402562a51:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/pages.css?type=text/css&pipeline=self&id=29fba2d97ea0da9cf8efb3a1519b753c361b591290b9ed973e84b8b2cb498a6b:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=8f7206dbdc8a321d9b64c58507304a071e0ae944b05674ddac4f1e3fd9fc331b:ET
@@ -3,38 +3,38 @@ require 'test_helper'
3
3
  class InstallGeneratorTest < Rails::Generators::TestCase
4
4
  tests Maestrano::Generators::InstallGenerator
5
5
  destination File.expand_path("../../tmp", __FILE__)
6
-
6
+
7
7
  setup do
8
8
  prepare_destination
9
9
  copy_routes
10
10
  end
11
-
11
+
12
12
  should "create the maestrano initializer" do
13
13
  run_generator
14
14
  assert_file "config/initializers/maestrano.rb"
15
15
  end
16
-
16
+
17
17
  should "create the maestrano/auth/saml_controller" do
18
18
  run_generator
19
19
  assert_file "app/controllers/maestrano/auth/saml_controller.rb"
20
20
  end
21
-
21
+
22
22
  should "create the maestrano/account/groups_controller" do
23
23
  run_generator
24
24
  assert_file "app/controllers/maestrano/account/groups_controller.rb"
25
25
  end
26
-
26
+
27
27
  should "create the maestrano/account/group_users_controller" do
28
28
  run_generator
29
29
  assert_file "app/controllers/maestrano/account/group_users_controller.rb"
30
30
  end
31
-
31
+
32
32
  should "create the maestrano routes" do
33
33
  run_generator
34
34
  match = /maestrano_routes/
35
35
  assert_file "config/routes.rb", match
36
36
  end
37
-
37
+
38
38
  def copy_routes
39
39
  routes = File.expand_path("../../test_files/config/routes.rb", __FILE__)
40
40
  destination = File.join(destination_root, "config")
@@ -42,4 +42,4 @@ class InstallGeneratorTest < Rails::Generators::TestCase
42
42
  FileUtils.mkdir_p(destination)
43
43
  FileUtils.cp routes, destination
44
44
  end
45
- end
45
+ end
data/test/test_helper.rb CHANGED
@@ -30,7 +30,7 @@ class ActiveSupport::TestCase
30
30
  if TEST_ORM == :active_record
31
31
  self.use_transactional_fixtures = false
32
32
  end
33
-
33
+
34
34
  setup { DatabaseCleaner.start }
35
35
  teardown { DatabaseCleaner.clean }
36
36
  end
@@ -39,4 +39,4 @@ end
39
39
  require "rails/generators/test_case"
40
40
  require "generators/maestrano/install_generator"
41
41
  require "generators/maestrano/user_generator"
42
- require "generators/maestrano/group_generator"
42
+ require "generators/maestrano/group_generator"
@@ -0,0 +1,27 @@
1
+ class Maestrano::Account::GroupUsersController < Maestrano::Rails::WebHookController
2
+
3
+ # DELETE /maestrano/account/groups/cld-1/users/usr-1/:tenant
4
+ # Remove a user from a group
5
+ def destroy
6
+ # Set the right uid based on Maestrano.param('sso.creation_mode')
7
+ user_uid = Maestrano.mask_user(params[:id],params[:group_id])
8
+ group_uid = params[:group_id]
9
+ tenant = params[:tenant]
10
+
11
+ # Perform association deletion steps here
12
+ # --
13
+ # If Maestrano.param('sso.creation_mode') is set to virtual
14
+ # then you might want to just delete/cancel/block the user
15
+ #
16
+ # E.g
17
+ # user = User.find_by_tenant_and_uid(tenant, user_uid)
18
+ # organization = Organization.find_by_tenant_and_uid(tenant ,group_uid)
19
+ #
20
+ # if Maestrano.param('sso.creation_mode') == 'virtual'
21
+ # user.destroy
22
+ # else
23
+ # organization.remove_user(user)
24
+ # user.block_access! if user.reload.organizations.empty?
25
+ # end
26
+ end
27
+ end
@@ -0,0 +1,37 @@
1
+ class Maestrano::Account::GroupsController < Maestrano::Rails::WebHookController
2
+
3
+ # DELETE /maestrano/account/groups/cld-1/:tenant
4
+ # Delete an entire group
5
+ def destroy
6
+ group_uid = params[:id]
7
+ tenant = params[:tenant]
8
+
9
+ # Perform deletion steps here
10
+ # --
11
+ # If you need to perform a final checkout
12
+ # then you can call Maestrano::Account::Bill.create({.. final checkout details ..})
13
+ # --
14
+ # If Maestrano.param('sso.creation_mode') is set to virtual
15
+ # then you might want to delete/cancel/block all users under
16
+ # that group
17
+ # --
18
+ # E.g:
19
+ # organization = Organization.find_by_tenant_and_uid(tenant, group_uid)
20
+ #
21
+ # amount_cents = organization.calculate_total_due_remaining
22
+ # Maestrano::Account::Bill.create({
23
+ # group_id: group_uid,
24
+ # price_cents: amount_cents,
25
+ # description: "Final Payout"
26
+ # })
27
+ #
28
+ # if Maestrano.param('sso.creation_mode') == 'virtual'
29
+ # organization.members.where(provider:'maestrano').each do |user|
30
+ # user.destroy
31
+ # end
32
+ #
33
+ # organization.destroy
34
+ # render json: {success: true}
35
+ #
36
+ end
37
+ end
@@ -0,0 +1,57 @@
1
+ class Maestrano::Auth::SamlController < Maestrano::Rails::SamlBaseController
2
+
3
+ #== POST '/maestrano/auth/saml/consume/:tenant'
4
+ # Final phase of the Single Sign-On handshake. Find or create
5
+ # the required resources (user and group) and sign the user
6
+ # in
7
+ #
8
+ # This action is left to you to customize based on your application
9
+ # requirements. Below is presented a potential way of writing
10
+ # the action.
11
+ #
12
+ # Assuming you have enabled maestrano on a user model
13
+ # called 'User' and a group model called 'Organization'
14
+ # the action could be written the following way
15
+ def consume
16
+ ### 1)Find or create the user and the group
17
+ ### --
18
+ ### The class method 'find_or_create_for_maestrano' is provided
19
+ ### by the maestrano-rails gem on the model you have maestrano-ized.
20
+ ### The method uses the mapping defined in the model 'maestrano_*_via'
21
+ ### block to create the resource if it does not exist
22
+ ### The 'user_auth_hash' and 'group_auth_hash' methods are provided
23
+ ### by the controller.
24
+ ### --
25
+ # user = User.find_or_create_for_maestrano(user_auth_hash)
26
+ # organization = Organization.find_or_create_for_maestrano(group_auth_hash)
27
+ #
28
+ # user.tenant = params[:tenant]
29
+ # user.save
30
+ # organization.tenant = params[:tenant]
31
+ # organization.save
32
+ #
33
+ #
34
+ ### 2) Add the user to the group if not already a member
35
+ ### --
36
+ ### The 'user_group_rel_hash' method is provided by the controller.
37
+ ### The role attribute provided by maestrano is one of the following:
38
+ ### 'Member', 'Power User', 'Admin', 'Super Admin'
39
+ ### The 'member_of?' and 'add_member' methods are not provided by
40
+ ### maestrano and are left to you to implement on your models
41
+ ### --
42
+ # unless user.member_of?(organization)
43
+ # organization.add_member(user,role: user_group_rel_hash[:role])
44
+ # end
45
+ #
46
+ #
47
+ ### Sign the user in and redirect to application root
48
+ ### --
49
+ ### The 'sign_in' method is not provided by maestrano but should already
50
+ ### be there if you are using an authentication framework like Devise
51
+ ### --
52
+ # sign_in(user)
53
+ # redirect_to root_path
54
+
55
+ raise NotImplemented.new("The consume action should be customized to fit your application needs")
56
+ end
57
+ end
@@ -0,0 +1,140 @@
1
+ Maestrano.configure do |config|
2
+
3
+ # ==> Environment configuration
4
+ # The environment to connect to.
5
+ # If set to 'production' then all Single Sign-On (SSO) and API requests
6
+ # will be made to maestrano.com
7
+ # If set to 'test' then requests will be made to api-sandbox.maestrano.io
8
+ # The api-sandbox allows you to easily test integration scenarios.
9
+ # More details on http://api-sandbox.maestrano.io
10
+ #
11
+ config.environment = 'test' # or 'production'
12
+
13
+ # ==> Application host
14
+ # This is your application host (e.g: my-app.com) which is ultimately
15
+ # used to redirect users to the right SAML url during SSO handshake.
16
+ #
17
+ config.app.host = (config.environment == 'production' ? 'https://my-app.com' : 'http://localhost:3000')
18
+
19
+ # ==> App ID & API key
20
+ # Your application App ID and API key which you can retrieve on http://maestrano.com
21
+ # via your cloud partner dashboard.
22
+ # For testing you can retrieve/generate an api.id and api.key from the API Sandbox directly
23
+ # on http://api-sandbox.maestrano.io
24
+ #
25
+ config.api.id = (config.environment == 'production' ? 'prod_app_id' : 'sandbox_app_id')
26
+ config.api.key = (config.environment == 'production' ? 'prod_api_key' : 'sandbox_api_key')
27
+
28
+ # ==> Single Sign-On activation
29
+ # Enable/Disable single sign-on. When troubleshooting authentication issues
30
+ # you might want to disable SSO temporarily
31
+ #
32
+ # config.sso.enabled = true
33
+
34
+ # ==> Single Sign-On Identity Manager
35
+ # By default we consider that the domain managing user identification
36
+ # is the same as your application host (see above config.app.host parameter)
37
+ # If you have a dedicated domain managing user identification and therefore
38
+ # responsible for the single sign-on handshake (e.g: https://idp.my-app.com)
39
+ # then you can specify it below
40
+ #
41
+ # config.sso.idm = (config.environment == 'production' ? 'https://idp.my-app.com' : 'http://localhost:3000')
42
+
43
+ # ==> SSO Initialization endpoint
44
+ # This is your application path to the SAML endpoint that allows users to
45
+ # initialize SSO authentication. Upon reaching this endpoint users your
46
+ # application will automatically create a SAML request and redirect the user
47
+ # to Maestrano. Maestrano will then authenticate and authorize the user. Upon
48
+ # authorization the user gets redirected to your application consumer endpoint
49
+ # (see below) for initial setup and/or login.
50
+ #
51
+ # The controller for this path is automatically
52
+ # generated when you run 'rake maestrano:install' and is available at
53
+ # <rails_root>/app/controllers/maestrano/auth/saml.rb
54
+ #
55
+ config.sso.init_path = '/maestrano/auth/saml/init/default'
56
+
57
+ # ==> SSO Consumer endpoint
58
+ # This is your application path to the SAML endpoint that allows users to
59
+ # finalize SSO authentication. During the 'consume' action your application
60
+ # sets users (and associated group) up and/or log them in.
61
+ #
62
+ # The controller for this path is automatically
63
+ # generated when you run 'rake maestrano:install' and is available at
64
+ # <rails_root>/app/controllers/maestrano/auth/saml.rb
65
+ #
66
+ config.sso.consume_path = '/maestrano/auth/saml/consume/default'
67
+
68
+ # ==> Single Logout activation
69
+ # Enable/Disable single logout. When troubleshooting authentication issues
70
+ # you might want to disable SLO temporarily.
71
+ # If set to false then Maestrano::SSO::Session#valid? - which should be
72
+ # used in a controller before filter to check user session - always return true
73
+ #
74
+ # config.sso.slo_enabled = true
75
+
76
+ # ==> SSO User creation mode
77
+ # !IMPORTANT
78
+ # On Maestrano users can take several "instances" of your service. You can consider
79
+ # each "instance" as 1) a billing entity and 2) a collaboration group (this is
80
+ # equivalent to a 'customer account' in a commercial world). When users login to
81
+ # your application via single sign-on they actually login via a specific group which
82
+ # is then supposed to determine which data they have access to inside your application.
83
+ #
84
+ # E.g: John and Jack are part of group 1. They should see the same data when they login to
85
+ # your application (employee info, analytics, sales etc..). John is also part of group 2
86
+ # but not Jack. Therefore only John should be able to see the data belonging to group 2.
87
+ #
88
+ # In most application this is done via collaboration/sharing/permission groups which is
89
+ # why a group is required to be created when a new user logs in via a new group (and
90
+ # also for billing purpose - you charge a group, not a user directly).
91
+ #
92
+ # == mode: 'real'
93
+ # In an ideal world a user should be able to belong to several groups in your application.
94
+ # In this case you would set the 'sso.creation_mode' to 'real' which means that the uid
95
+ # and email we pass to you are the actual user email and maestrano universal id.
96
+ #
97
+ # == mode: 'virtual'
98
+ # Now let's say that due to technical constraints your application cannot authorize a user
99
+ # to belong to several groups. Well next time John logs in via a different group there will
100
+ # be a problem: the user already exists (based on uid or email) and cannot be assigned
101
+ # to a second group. To fix this you can set the 'sso.creation_mode' to 'virtual'. In this
102
+ # mode users get assigned a truly unique uid and email across groups. So next time John logs
103
+ # in a whole new user account can be created for him without any validation problem. In this
104
+ # mode the email we assign to him looks like "usr-sdf54.cld-45aa2@mail.maestrano.com". But don't
105
+ # worry we take care of forwarding any email you would send to this address
106
+ #
107
+ # config.sso.creation_mode = 'real' # or 'virtual'
108
+
109
+ # ==> Account Webhooks
110
+ # Single sign on has been setup into your app and Maestrano users are now able
111
+ # to use your service. Great! Wait what happens when a business (group) decides to
112
+ # stop using your service? Also what happens when a user gets removed from a business?
113
+ # Well the endpoints below are for Maestrano to be able to notify you of such
114
+ # events.
115
+ #
116
+ # Even if the routes look restful we issue only issue DELETE requests for the moment
117
+ # to notify you of any service cancellation (group deletion) or any user being
118
+ # removed from a group.
119
+ #
120
+ # The controllers for these hooks path are automatically generated when
121
+ # you run 'rake maestrano:install' and is available under
122
+ # <rails_root>/app/controllers/maestrano/account/
123
+ #
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
+ end
127
+
128
+ # Example of multi-tenant configuration
129
+ Maestrano['other-tenant'].configure do |config|
130
+ config.environment = 'test'
131
+ config.app.host = (config.environment == 'production' ? 'https://my-app.com' : 'http://localhost:3000')
132
+
133
+ config.api.id = (config.environment == 'production' ? 'prod_app_id' : 'sandbox_app_id')
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'
140
+ end
@@ -0,0 +1,60 @@
1
+ Dummy::Application.routes.draw do
2
+ maestrano_routes
3
+
4
+ # The priority is based upon order of creation:
5
+ # first created -> highest priority.
6
+
7
+ # Sample of regular route:
8
+ # match 'products/:id' => 'catalog#view'
9
+ # Keep in mind you can assign values other than :controller and :action
10
+
11
+ # Sample of named route:
12
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
13
+ # This route can be invoked with purchase_url(:id => product.id)
14
+
15
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
16
+ # resources :products
17
+
18
+ # Sample resource route with options:
19
+ # resources :products do
20
+ # member do
21
+ # get 'short'
22
+ # post 'toggle'
23
+ # end
24
+ #
25
+ # collection do
26
+ # get 'sold'
27
+ # end
28
+ # end
29
+
30
+ # Sample resource route with sub-resources:
31
+ # resources :products do
32
+ # resources :comments, :sales
33
+ # resource :seller
34
+ # end
35
+
36
+ # Sample resource route with more complex sub-resources
37
+ # resources :products do
38
+ # resources :comments
39
+ # resources :sales do
40
+ # get 'recent', :on => :collection
41
+ # end
42
+ # end
43
+
44
+ # Sample resource route within a namespace:
45
+ # namespace :admin do
46
+ # # Directs /admin/products/* to Admin::ProductsController
47
+ # # (app/controllers/admin/products_controller.rb)
48
+ # resources :products
49
+ # end
50
+
51
+ # You can have the root of your site routed with "root"
52
+ # just remember to delete public/index.html.
53
+ # root :to => 'welcome#index'
54
+
55
+ # See how all your routes lay out with "rake routes"
56
+
57
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
58
+ # Note: This route will make all actions in every controller accessible via GET requests.
59
+ # match ':controller(/:action(/:id))(.:format)'
60
+ end