push_type_auth 0.1.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3 -0
  3. data/app/controllers/concerns/push_type/authentication_methods.rb +10 -0
  4. data/app/controllers/concerns/push_type/invitation_methods.rb +13 -0
  5. data/app/controllers/push_type/confirmations_controller.rb +42 -0
  6. data/app/controllers/push_type/passwords_controller.rb +5 -0
  7. data/app/controllers/push_type/sessions_controller.rb +5 -0
  8. data/app/helpers/push_type/auth_helper.rb +4 -0
  9. data/app/models/concerns/push_type/authenticatable.rb +18 -0
  10. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  11. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  12. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  13. data/app/views/devise/shared/_links.html.erb +25 -0
  14. data/app/views/layouts/push_type/auth.html.erb +49 -0
  15. data/app/views/push_type/confirmations/new.html.haml +14 -0
  16. data/app/views/push_type/confirmations/show.html.haml +19 -0
  17. data/app/views/push_type/passwords/edit.html.haml +19 -0
  18. data/app/views/push_type/passwords/new.html.haml +14 -0
  19. data/app/views/push_type/sessions/new.html.haml +23 -0
  20. data/app/views/push_type/users/_meta_table.html.haml +15 -0
  21. data/config/initializers/devise.rb +259 -0
  22. data/config/locales/devise.en.yml +60 -0
  23. data/config/routes.rb +9 -0
  24. data/db/migrate/20141120155629_devise_extend_push_type_users.rb +36 -0
  25. data/lib/push_type/auth/engine.rb +22 -0
  26. data/lib/push_type/auth.rb +12 -0
  27. data/lib/push_type_auth.rb +1 -0
  28. data/lib/tasks/push_type_tasks.rake +4 -0
  29. data/test/controllers/push_type/confirmations_controller_test.rb +40 -0
  30. data/test/dummy/README.rdoc +28 -0
  31. data/test/dummy/Rakefile +6 -0
  32. data/test/dummy/app/assets/javascripts/application.js +16 -0
  33. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  34. data/test/dummy/app/controllers/application_controller.rb +5 -0
  35. data/test/dummy/app/helpers/application_helper.rb +2 -0
  36. data/test/dummy/app/models/page.rb +10 -0
  37. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  38. data/test/dummy/app/views/nodes/page.html.erb +3 -0
  39. data/test/dummy/bin/bundle +3 -0
  40. data/test/dummy/bin/rails +4 -0
  41. data/test/dummy/bin/rake +4 -0
  42. data/test/dummy/config/application.rb +14 -0
  43. data/test/dummy/config/boot.rb +4 -0
  44. data/test/dummy/config/database.yml +85 -0
  45. data/test/dummy/config/environment.rb +5 -0
  46. data/test/dummy/config/environments/development.rb +37 -0
  47. data/test/dummy/config/environments/production.rb +78 -0
  48. data/test/dummy/config/environments/test.rb +39 -0
  49. data/test/dummy/config/initializers/assets.rb +8 -0
  50. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  51. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  52. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  53. data/test/dummy/config/initializers/inflections.rb +16 -0
  54. data/test/dummy/config/initializers/mime_types.rb +4 -0
  55. data/test/dummy/config/initializers/push_type.rb +5 -0
  56. data/test/dummy/config/initializers/session_store.rb +3 -0
  57. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/test/dummy/config/locales/en.yml +23 -0
  59. data/test/dummy/config/routes.rb +59 -0
  60. data/test/dummy/config/secrets.yml +22 -0
  61. data/test/dummy/config.ru +4 -0
  62. data/test/dummy/db/migrate/20141205213533_create_push_type_users.push_type.rb +13 -0
  63. data/test/dummy/db/migrate/20141205213534_create_push_type_nodes.push_type.rb +25 -0
  64. data/test/dummy/db/migrate/20141205213535_create_push_type_node_hierarchies.push_type.rb +17 -0
  65. data/test/dummy/db/migrate/20141205213536_create_push_type_assets.push_type.rb +19 -0
  66. data/test/dummy/db/migrate/20141205213537_devise_extend_push_type_users.push_type_auth.rb +37 -0
  67. data/test/dummy/db/schema.rb +82 -0
  68. data/test/dummy/db/seeds.rb +7 -0
  69. data/test/dummy/log/test.log +394 -0
  70. data/test/dummy/public/404.html +67 -0
  71. data/test/dummy/public/422.html +67 -0
  72. data/test/dummy/public/500.html +66 -0
  73. data/test/dummy/public/favicon.ico +0 -0
  74. data/test/dummy/public/robots.txt +5 -0
  75. data/test/dummy/tmp/cache/assets/test/sass/53cc07db53069364c4116d03ae9493d85566d502/_functions.scssc +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_accordion.scssc +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_alert-boxes.scssc +0 -0
  78. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_block-grid.scssc +0 -0
  79. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_breadcrumbs.scssc +0 -0
  80. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_button-groups.scssc +0 -0
  81. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_buttons.scssc +0 -0
  82. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_clearing.scssc +0 -0
  83. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown-buttons.scssc +0 -0
  84. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown.scssc +0 -0
  85. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_flex-video.scssc +0 -0
  86. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_forms.scssc +0 -0
  87. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_global.scssc +0 -0
  88. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_grid.scssc +0 -0
  89. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_icon-bar.scssc +0 -0
  90. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_inline-lists.scssc +0 -0
  91. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_joyride.scssc +0 -0
  92. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_keystrokes.scssc +0 -0
  93. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_labels.scssc +0 -0
  94. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_magellan.scssc +0 -0
  95. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_offcanvas.scssc +0 -0
  96. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_orbit.scssc +0 -0
  97. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pagination.scssc +0 -0
  98. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_panels.scssc +0 -0
  99. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pricing-tables.scssc +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_progress-bars.scssc +0 -0
  101. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_range-slider.scssc +0 -0
  102. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_reveal.scssc +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_side-nav.scssc +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_split-buttons.scssc +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_sub-nav.scssc +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_switches.scssc +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tables.scssc +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tabs.scssc +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_thumbs.scssc +0 -0
  110. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tooltips.scssc +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_top-bar.scssc +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_type.scssc +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_visibility.scssc +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sass/68968d876746de0885a03aacd18ec354e154ffed/foundation-icons.scssc +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sass/805c0b657f4b79d174c13bc42a4759a57d5a5484/foundation.scssc +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/admin.scssc +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/foundation_and_overrides.scssc +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/froala_theme.scssc +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/00ae61e049df7e5570b8c57835868cfe +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/042e6dec69dbf88f86f5e8c360b52bcb +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/0448802b256c25a379824969bf01241e +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/05f11ba90b1f59f6a65002fef96de531 +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/090f2c9bc57f8e73105a98a800051354 +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/09fd8b22d7c059ed78b065ffa44138a4 +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/0a01f1c3288f982772ed595695292767 +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/0b83e9e8467b82a0991df336697846e0 +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/10a718d020e26634ffd3071d63270dd1 +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/12375f1bf3d91db0a06c3fc436918949 +0 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/12a4fbfdcb2f1ed98ebd869761bce11e +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/1505f3ddd93d7be2405c81d84a45cbfb +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/161b66dc0b76d65e577b5465f86cb767 +0 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/18ee507bade4f16ba4f6a5c93f3aac22 +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/1c63cb75109171c505bf1b6b3f26513b +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/1da46bb361bbd7b80dc66e5737dbf2a7 +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/2479bd5cbccdeac3ab4df62c2c12e8d3 +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/2599cde7c63354f12928a204c42fe68b +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/25b238c2ec907a80d53955a0bb81073c +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/2821176477eee8de7b9581f0564d0947 +0 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/2a00ce050c10f75691b820576ec3aefd +0 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/2a854446f76c1902defbfa436b1e7df8 +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/2c745da65bdbc8ebb88b6bce026972b9 +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/2d1bc2b9dc5ee0ed5635abc31fb1bc88 +0 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/31c57ad31a65f9a951c6d7268cdedae5 +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/337d12a0890572dfec336aa11e864651 +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/3a2e7d8d06318496bd7e5c6bac44adf8 +0 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/3d4f40cd6363f1841fa7c17dcbd281ce +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/47dcfb84d9a092ad939f512e1d3db43c +0 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/48582f4afd1c515e7eb10a8fc2195deb +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/4c6b223eba19a3d4009cbda20ed1ae2d +0 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/4fc498f23125a9811434c6d5d5b43b64 +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/505162da4e90217e5f52f5e8f1922a0d +0 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/557b45e924759b342404ddfb736f95a2 +0 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/55d58e1add1ca367e262464e83ad82cf +0 -0
  154. data/test/dummy/tmp/cache/assets/test/sprockets/55d7985953b175268932d2f7e50f64e0 +0 -0
  155. data/test/dummy/tmp/cache/assets/test/sprockets/59992ed1702654aa166f8572af80a301 +0 -0
  156. data/test/dummy/tmp/cache/assets/test/sprockets/600202d00479f08d2e69019e34d12e65 +0 -0
  157. data/test/dummy/tmp/cache/assets/test/sprockets/62462f7d0da5dfe3ae7923c7c21325c0 +0 -0
  158. data/test/dummy/tmp/cache/assets/test/sprockets/666e486cb09d9612ba03d995085ea02d +0 -0
  159. data/test/dummy/tmp/cache/assets/test/sprockets/67d67f783372c9b99e2ff84c12d38dfb +0 -0
  160. data/test/dummy/tmp/cache/assets/test/sprockets/6d21cd96abbcb6506d99fb93e8a11196 +0 -0
  161. data/test/dummy/tmp/cache/assets/test/sprockets/6e714e8b8ac03d2e562e8a71c40e00f8 +0 -0
  162. data/test/dummy/tmp/cache/assets/test/sprockets/6f2f2b2fbb1097278be40facf7aa8447 +0 -0
  163. data/test/dummy/tmp/cache/assets/test/sprockets/72e0f0b80593c7ccfaf939c504f8127f +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/7326e3e660754d56c46671c7347c5e97 +0 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/75c5663a92b2003b794d5f5d184fde44 +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/7b63c613f1053bde6004342003178a0e +0 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/7d07558d12b9bd9b9dfa778344bab4ac +0 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/7ea9d575b03f8effb678d4dcedf3d079 +0 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/7f0b91f5fa71c52d3cbe1f108fb7c942 +0 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/805c63977d339feb2ea7b61e1141a32f +0 -0
  171. data/test/dummy/tmp/cache/assets/test/sprockets/81ba6a364949bd4ffe2732ae5745012d +0 -0
  172. data/test/dummy/tmp/cache/assets/test/sprockets/81e2498e0e1457dd93b47780ae28fc03 +0 -0
  173. data/test/dummy/tmp/cache/assets/test/sprockets/897553ff72f546645e24e94feec75255 +0 -0
  174. data/test/dummy/tmp/cache/assets/test/sprockets/8a34d99aaa243ebb4e60f483a5b5a817 +0 -0
  175. data/test/dummy/tmp/cache/assets/test/sprockets/8e20677e2b4bd3f063a63fcf9e673971 +0 -0
  176. data/test/dummy/tmp/cache/assets/test/sprockets/8feb3d758b7824f15b301f9dc024c3f6 +0 -0
  177. data/test/dummy/tmp/cache/assets/test/sprockets/932f699ead87a4b9910d47334ed14d60 +0 -0
  178. data/test/dummy/tmp/cache/assets/test/sprockets/959fa77a7302a3002d5fb1394575117b +0 -0
  179. data/test/dummy/tmp/cache/assets/test/sprockets/969e05674f51d3b5b500e605e0292573 +0 -0
  180. data/test/dummy/tmp/cache/assets/test/sprockets/972e71e7d6b360ef56c88716f3191aaf +0 -0
  181. data/test/dummy/tmp/cache/assets/test/sprockets/98228623f6175426b2d7964b4a921cbb +0 -0
  182. data/test/dummy/tmp/cache/assets/test/sprockets/987bf17b1a3915d5c6d95ebda01e8f49 +0 -0
  183. data/test/dummy/tmp/cache/assets/test/sprockets/9aef3ae1f0c62b895d86ab60901dd450 +0 -0
  184. data/test/dummy/tmp/cache/assets/test/sprockets/9f65b180bd79d7b67e5fb1fe8ded1383 +0 -0
  185. data/test/dummy/tmp/cache/assets/test/sprockets/a4ee671663a58ce1f1860b1e9a9d17fb +0 -0
  186. data/test/dummy/tmp/cache/assets/test/sprockets/a55e988592ebc0d8e4e4ef1244ae4da7 +0 -0
  187. data/test/dummy/tmp/cache/assets/test/sprockets/a590260912e62280bb115dd52a953b18 +0 -0
  188. data/test/dummy/tmp/cache/assets/test/sprockets/a6453a78eb0c813a0b69a12cb7c4ab2c +0 -0
  189. data/test/dummy/tmp/cache/assets/test/sprockets/a721a930039ed66bd3f092ab1e9c8de6 +0 -0
  190. data/test/dummy/tmp/cache/assets/test/sprockets/a748bad0d4f5d6e6bbdf1b340905795b +0 -0
  191. data/test/dummy/tmp/cache/assets/test/sprockets/a96494099d559bfd8cb5257e21cb196c +0 -0
  192. data/test/dummy/tmp/cache/assets/test/sprockets/a970f64c67051f35069f45d8dad113a5 +0 -0
  193. data/test/dummy/tmp/cache/assets/test/sprockets/aaa6dc2bd59e21dd14b0c86a308a1d1f +0 -0
  194. data/test/dummy/tmp/cache/assets/test/sprockets/ac1b1f0c521a6acb5833209d7b18d888 +0 -0
  195. data/test/dummy/tmp/cache/assets/test/sprockets/b24f2d6f62512f4cb11c6a2e44bf90e4 +0 -0
  196. data/test/dummy/tmp/cache/assets/test/sprockets/b28bcc6d89b692e6b74758c30e21b862 +0 -0
  197. data/test/dummy/tmp/cache/assets/test/sprockets/b3b2a83d3d7d735130f0b029e58b29b8 +0 -0
  198. data/test/dummy/tmp/cache/assets/test/sprockets/b3d0193a1439465426a4d051a161291d +0 -0
  199. data/test/dummy/tmp/cache/assets/test/sprockets/b657c356e24f45a8b92d4f4da9ff361d +0 -0
  200. data/test/dummy/tmp/cache/assets/test/sprockets/b76beafa9aef0c7a18bf63fe612ecd17 +0 -0
  201. data/test/dummy/tmp/cache/assets/test/sprockets/b771c2de3967bda011cf04e0979497cf +0 -0
  202. data/test/dummy/tmp/cache/assets/test/sprockets/b8a73c4d259957f05d45cb5d96d41ff1 +0 -0
  203. data/test/dummy/tmp/cache/assets/test/sprockets/ba87909b8d71ddaedd84c3f6c00dce72 +0 -0
  204. data/test/dummy/tmp/cache/assets/test/sprockets/badf6e6ab7c3d1cc2b180e5883005a40 +0 -0
  205. data/test/dummy/tmp/cache/assets/test/sprockets/bbfc8dec2c2cc07cf4c1708597316a77 +0 -0
  206. data/test/dummy/tmp/cache/assets/test/sprockets/bc732efa6ca399217b023bd1e04f0404 +0 -0
  207. data/test/dummy/tmp/cache/assets/test/sprockets/bd5b45287cfdac63ed7199b7982da02f +0 -0
  208. data/test/dummy/tmp/cache/assets/test/sprockets/bee4e1605077e29abd380b05b645cbb4 +0 -0
  209. data/test/dummy/tmp/cache/assets/test/sprockets/c0e7a018799e51565da4aae3cd7409b4 +0 -0
  210. data/test/dummy/tmp/cache/assets/test/sprockets/c190d0bdd188c43629f35b9f463b86af +0 -0
  211. data/test/dummy/tmp/cache/assets/test/sprockets/c2b59fd99edc4b53754f7cb4e160452f +0 -0
  212. data/test/dummy/tmp/cache/assets/test/sprockets/c42a7aac68d827f88bcc25a41cdb5591 +0 -0
  213. data/test/dummy/tmp/cache/assets/test/sprockets/c5ef052e357af6829f6c522a38916fc7 +0 -0
  214. data/test/dummy/tmp/cache/assets/test/sprockets/c705dc7fb9e60c7d39b5c23a101cd830 +0 -0
  215. data/test/dummy/tmp/cache/assets/test/sprockets/c988fd2c5c9497ccef54f79a9e444ac6 +0 -0
  216. data/test/dummy/tmp/cache/assets/test/sprockets/cb761fc7bfc4c192abf5c946f863ab1e +0 -0
  217. data/test/dummy/tmp/cache/assets/test/sprockets/ce523687d631719d872f2869d34803b0 +0 -0
  218. data/test/dummy/tmp/cache/assets/test/sprockets/d2215e57429ecae68a054210e665d787 +0 -0
  219. data/test/dummy/tmp/cache/assets/test/sprockets/d30a320df486e076298c602d428f3145 +0 -0
  220. data/test/dummy/tmp/cache/assets/test/sprockets/d3921fc37cc437f0933c4dee9d089fd8 +0 -0
  221. data/test/dummy/tmp/cache/assets/test/sprockets/d527d40cd214f965c2751831ef138ba7 +0 -0
  222. data/test/dummy/tmp/cache/assets/test/sprockets/d8daf6c8e5df881485c0e1139a275f6d +0 -0
  223. data/test/dummy/tmp/cache/assets/test/sprockets/d9e5382620928a6b4a8cd70bdac10aa3 +0 -0
  224. data/test/dummy/tmp/cache/assets/test/sprockets/dd803fd7a93619599c7e703c2b307411 +0 -0
  225. data/test/dummy/tmp/cache/assets/test/sprockets/e05796fbbc7fcdcaefdd97534f2e4030 +0 -0
  226. data/test/dummy/tmp/cache/assets/test/sprockets/e1c3eff1f3886da4c71a854d42077d10 +0 -0
  227. data/test/dummy/tmp/cache/assets/test/sprockets/e568172da8ab8581f83f98dad0a73d29 +0 -0
  228. data/test/dummy/tmp/cache/assets/test/sprockets/f02093872b151ddb0fd1074fe83ff846 +0 -0
  229. data/test/dummy/tmp/cache/assets/test/sprockets/f100237ea34e5360da23f95cca21c340 +0 -0
  230. data/test/dummy/tmp/cache/assets/test/sprockets/f25b88a46a5a3b1b179079f6c0e4039a +0 -0
  231. data/test/dummy/tmp/cache/assets/test/sprockets/f31d581aaa301ef9ef6a08edc4319c35 +0 -0
  232. data/test/dummy/tmp/cache/assets/test/sprockets/f5fcab9d313889bf6d14a05040aff5bc +0 -0
  233. data/test/dummy/tmp/cache/assets/test/sprockets/f66bf7665e75e4d537977c71a5e39a4e +0 -0
  234. data/test/dummy/tmp/cache/assets/test/sprockets/f6c61aec4cc93384f9655a7d8aba73fe +0 -0
  235. data/test/dummy/tmp/cache/assets/test/sprockets/fa7e1f9a13f606e2603a17f8e00aa32a +0 -0
  236. data/test/dummy/tmp/cache/assets/test/sprockets/fcce52ee43ecad8cb3f18fc8f13a66b7 +0 -0
  237. data/test/dummy/tmp/cache/assets/test/sprockets/fd5e59fed8301f86b74e551534fce2b2 +0 -0
  238. data/test/test_helper.rb +22 -0
  239. metadata +576 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f4d0ac63e4364dc81c5ca5f43e91896a98029412
4
+ data.tar.gz: 1b22b6669ddbaed95349617e20daa535cd46d244
5
+ SHA512:
6
+ metadata.gz: d35519357662c302b2965d2aae596db51af64edc6147254435bb15cf8b9238f54ae990e29b9d202d832f572ba620f424b3f096aa554146dd3e9e8be1044d3098
7
+ data.tar.gz: 83426ec1e05d47a5911aa38cdda64c53f164aa1f9af219ad014263ea4507b0a787a8788e94108e86281d9e1d78282a87772e97c3007bc9b8dbf88c0c708e4351
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # PushType-Auth
2
+
3
+ This project rocks and uses MIT-LICENSE.
@@ -0,0 +1,10 @@
1
+ module PushType
2
+ module AuthenticationMethods
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_filter :authenticate_user!
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module PushType
2
+ module InvitationMethods
3
+ extend ActiveSupport::Concern
4
+
5
+ def invite
6
+ load_user
7
+ @user.resend_confirmation_instructions
8
+ flash[:notice] = 'Sign up instructions have been resent to the user.'
9
+ redirect_to :back
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,42 @@
1
+ module PushType
2
+ class ConfirmationsController < Devise::ConfirmationsController
3
+ layout 'push_type/auth'
4
+
5
+ def show
6
+ self.resource = resource_class.find_by_confirmation_token digested_token
7
+ super if resource.nil? or resource.confirmed?
8
+ end
9
+
10
+ def update
11
+ self.resource = resource_class.find_by_confirmation_token! digested_token
12
+ resource.assign_attributes(permitted_params)
13
+
14
+ if resource.valid?
15
+ self.resource.confirm!
16
+ set_flash_message :notice, :confirmed
17
+ sign_in_and_redirect resource_name, resource
18
+ else
19
+ render action: 'show'
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def permitted_params
26
+ params.fetch(resource_name, {}).permit(:confirmation_token, :password, :password_confirmation)
27
+ end
28
+
29
+ def digested_token
30
+ @digested_token ||= Devise.token_generator.digest(self, :confirmation_token, original_token)
31
+ end
32
+
33
+ def original_token
34
+ @original_token ||= if params[:confirmation_token].present?
35
+ params[:confirmation_token]
36
+ elsif params[resource_name].try(:[], :confirmation_token).present?
37
+ params[resource_name][:confirmation_token]
38
+ end
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,5 @@
1
+ module PushType
2
+ class PasswordsController < Devise::PasswordsController
3
+ layout 'push_type/auth'
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module PushType
2
+ class SessionsController < Devise::SessionsController
3
+ layout 'push_type/auth'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module PushType
2
+ module AuthHelper
3
+ end
4
+ end
@@ -0,0 +1,18 @@
1
+ module PushType
2
+ module Authenticatable
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ # Include default devise modules. Others available are:
7
+ # :lockable, :timeoutable and :omniauthable
8
+ devise :database_authenticatable, :confirmable, :recoverable, :rememberable, :trackable, :validatable
9
+
10
+ protected
11
+
12
+ def password_required?
13
+ persisted? ? super : false
14
+ end
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @email %>!</p>
2
+
3
+ <p>You can confirm your account email through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has requested a link to change your password. You can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>
6
+
7
+ <p>If you didn't request this, please ignore this email.</p>
8
+ <p>Your password won't change until you access the link above and create a new one.</p>
@@ -0,0 +1,7 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
4
+
5
+ <p>Click the link below to unlock your account:</p>
6
+
7
+ <p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
@@ -0,0 +1,25 @@
1
+ <%- if controller_name != 'sessions' %>
2
+ <%= link_to "Log in", new_session_path(resource_name) %><br />
3
+ <% end -%>
4
+
5
+ <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
6
+ <%= link_to "Sign up", new_registration_path(resource_name) %><br />
7
+ <% end -%>
8
+
9
+ <%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
10
+ <%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
11
+ <% end -%>
12
+
13
+ <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
14
+ <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
15
+ <% end -%>
16
+
17
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
18
+ <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
19
+ <% end -%>
20
+
21
+ <%- if devise_mapping.omniauthable? %>
22
+ <%- resource_class.omniauth_providers.each do |provider| %>
23
+ <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
24
+ <% end -%>
25
+ <% end -%>
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>PushType</title>
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <%= javascript_include_tag 'vendor/modernizr' %>
7
+ <%= javascript_include_tag 'push_type/admin' %>
8
+ <%= stylesheet_link_tag 'push_type/admin', '//fonts.googleapis.com/css?family=Lato:300,300italic,400,700', media: 'all' %>
9
+ <%= csrf_meta_tags %>
10
+ </head>
11
+ <body>
12
+
13
+ <header class="header" role="banner">
14
+ <div class="row">
15
+ <div class="small-6 columns">
16
+ <%= image_tag('push_type/pushtype-logo.png', alt: 'PushType') %>
17
+ </div>
18
+ <nav class="small-6 columns">
19
+ <ul class="inline-list right">
20
+ <%= content_tag :li, link_to(ficon(:home, 'Back to site'), main_app.root_path), :'data-no-turbolink' => true %>
21
+ </ul>
22
+ </nav>
23
+ </div>
24
+ </header>
25
+
26
+ <section class="main" role="main">
27
+ <div class="row">
28
+ <div class="small-12 medium-6 large-4 medium-offset-3 large-offset-4 columns">
29
+ <% flash.each do |key, value| %>
30
+ <%= content_tag :div, class: "alert-box radius #{key}", data: { alert: '' } do %>
31
+ <%= value %>
32
+ <a href="#" class="close">&times;</a>
33
+ <% end %>
34
+ <% end %>
35
+ <div class="container">
36
+ <div class="head">
37
+ <div class="title"><%= yield :title %></div>
38
+ </div>
39
+ <div class="body padded">
40
+ <%= yield %>
41
+ </div>
42
+ </div>
43
+ <%= yield :auth_links %>
44
+ </div>
45
+ </div>
46
+ </section>
47
+
48
+ </body>
49
+ </html>
@@ -0,0 +1,14 @@
1
+ - title 'Resend confirmation instructions'
2
+
3
+ = form_for @user, url: push_type.user_confirmation_path, html: { method: :post } do |f|
4
+ .row.text
5
+ .columns
6
+ = f.label :email
7
+ = f.email_field :email, autofocus: true
8
+ .row.submit
9
+ .columns
10
+ %button.button.success.expand.radius{ data: { disable_with: 'Please wait' } }
11
+ = ficon :mail, 'Resend confirmation instructions'
12
+
13
+ - content_for :auth_links do
14
+ = render 'devise/shared/links'
@@ -0,0 +1,19 @@
1
+ - title 'Create a password'
2
+
3
+ = form_for @user, url: push_type.user_confirm_path do |f|
4
+ = f.hidden_field :confirmation_token, value: @original_token
5
+ .row.text
6
+ .columns
7
+ = f.label :password
8
+ = f.password_field :password, autofocus: true
9
+ .row.text
10
+ .columns
11
+ = f.label :password_confirmation
12
+ = f.password_field :password_confirmation
13
+ .row.submit
14
+ .columns
15
+ %button.button.success.expand.radius{ data: { disable_with: 'Please wait' } }
16
+ = ficon :check, 'Confirm account and sign in'
17
+
18
+ - content_for :auth_links do
19
+ = render 'devise/shared/links'
@@ -0,0 +1,19 @@
1
+ - title 'Change your password'
2
+
3
+ = form_for @user, url: push_type.user_password_path, html: { method: :put } do |f|
4
+ = f.hidden_field :reset_password_token
5
+ .row.text
6
+ .columns
7
+ = f.label :password, "New password"
8
+ = f.password_field :password, autofocus: true, autocomplete: "off"
9
+ .row.text
10
+ .columns
11
+ = f.label :password_confirmation, "Confirm new password"
12
+ = f.password_field :password_confirmation, autocomplete: "off"
13
+ .row.submit
14
+ .columns
15
+ %button.button.success.expand.radius{ data: { disable_with: 'Please wait...' } }
16
+ = ficon :check, 'Change my password'
17
+
18
+ - content_for :auth_links do
19
+ = render 'devise/shared/links'
@@ -0,0 +1,14 @@
1
+ - title 'Forgot your password?'
2
+
3
+ = form_for @user, url: push_type.user_password_path, html: { method: :post } do |f|
4
+ .row.text
5
+ .columns
6
+ = f.label :email
7
+ = f.email_field :email, autofocus: true
8
+ .row.submit
9
+ .columns
10
+ %button.button.success.expand.radius{ data: { disable_with: 'Please wait...' } }
11
+ = ficon :mail, 'Send me password reset instructions'
12
+
13
+ - content_for :auth_links do
14
+ = render 'devise/shared/links'
@@ -0,0 +1,23 @@
1
+ - title 'Sign in'
2
+
3
+ = form_for @user, url: push_type.user_session_path do |f|
4
+ .row.text
5
+ .columns
6
+ = f.label :email
7
+ = f.email_field :email, autofocus: true
8
+ .row.text
9
+ .columns
10
+ = f.label :password
11
+ = f.password_field :password, autocomplete: "off"
12
+ - if devise_mapping.rememberable?
13
+ .row.text
14
+ .columns
15
+ = f.check_box :remember_me
16
+ = f.label :remember_me
17
+ .row.submit
18
+ .columns
19
+ %button.button.success.expand.radius{ data: { disable_with: 'Please wait...' } }
20
+ = ficon :check, 'Sign in'
21
+
22
+ - content_for :auth_links do
23
+ = render 'devise/shared/links'
@@ -0,0 +1,15 @@
1
+ .meta-row
2
+ .key Status
3
+ .value
4
+ - if @user.new_record?
5
+ New user
6
+ - elsif @user.confirmed?
7
+ Confirmed
8
+ - else
9
+ Invited #{ time_ago_in_words @user.confirmation_sent_at } ago
10
+ = link_to ficon(:mail, 'Resend'), push_type.invite_user_path(@user), method: 'patch', class: 'right'
11
+ - unless @user.new_record?
12
+ .meta-row
13
+ .key Logged in
14
+ .value
15
+ %time= last_logged_in @user
@@ -0,0 +1,259 @@
1
+ # Use this hook to configure devise mailer, warden hooks and so forth.
2
+ # Many of these configuration options can be set straight in your model.
3
+ Devise.setup do |config|
4
+ # The secret key used by Devise. Devise uses this key to generate
5
+ # random tokens. Changing this key will render invalid all existing
6
+ # confirmation, reset password and unlock tokens in the database.
7
+ # config.secret_key = '8223189ff9f2713c4ccf1b4cda41b2839ba01b926c85692a094ff0a8f375512435602cb6e4f55088ff49ff01ad68eb9a528a42a4a1a8044cb0e2bc9f6889475c'
8
+
9
+ # ==> Mailer Configuration
10
+ # Configure the e-mail address which will be shown in Devise::Mailer,
11
+ # note that it will be overwritten if you use your own mailer class
12
+ # with default "from" parameter.
13
+ config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
14
+
15
+ # Configure the class responsible to send e-mails.
16
+ # config.mailer = 'Devise::Mailer'
17
+
18
+ # ==> ORM configuration
19
+ # Load and configure the ORM. Supports :active_record (default) and
20
+ # :mongoid (bson_ext recommended) by default. Other ORMs may be
21
+ # available as additional gems.
22
+ require 'devise/orm/active_record'
23
+
24
+ # ==> Configuration for any authentication mechanism
25
+ # Configure which keys are used when authenticating a user. The default is
26
+ # just :email. You can configure it to use [:username, :subdomain], so for
27
+ # authenticating a user, both parameters are required. Remember that those
28
+ # parameters are used only when authenticating and not when retrieving from
29
+ # session. If you need permissions, you should implement that in a before filter.
30
+ # You can also supply a hash where the value is a boolean determining whether
31
+ # or not authentication should be aborted when the value is not present.
32
+ # config.authentication_keys = [ :email ]
33
+
34
+ # Configure parameters from the request object used for authentication. Each entry
35
+ # given should be a request method and it will automatically be passed to the
36
+ # find_for_authentication method and considered in your model lookup. For instance,
37
+ # if you set :request_keys to [:subdomain], :subdomain will be used on authentication.
38
+ # The same considerations mentioned for authentication_keys also apply to request_keys.
39
+ # config.request_keys = []
40
+
41
+ # Configure which authentication keys should be case-insensitive.
42
+ # These keys will be downcased upon creating or modifying a user and when used
43
+ # to authenticate or find a user. Default is :email.
44
+ config.case_insensitive_keys = [ :email ]
45
+
46
+ # Configure which authentication keys should have whitespace stripped.
47
+ # These keys will have whitespace before and after removed upon creating or
48
+ # modifying a user and when used to authenticate or find a user. Default is :email.
49
+ config.strip_whitespace_keys = [ :email ]
50
+
51
+ # Tell if authentication through request.params is enabled. True by default.
52
+ # It can be set to an array that will enable params authentication only for the
53
+ # given strategies, for example, `config.params_authenticatable = [:database]` will
54
+ # enable it only for database (email + password) authentication.
55
+ # config.params_authenticatable = true
56
+
57
+ # Tell if authentication through HTTP Auth is enabled. False by default.
58
+ # It can be set to an array that will enable http authentication only for the
59
+ # given strategies, for example, `config.http_authenticatable = [:database]` will
60
+ # enable it only for database authentication. The supported strategies are:
61
+ # :database = Support basic authentication with authentication key + password
62
+ # config.http_authenticatable = false
63
+
64
+ # If 401 status code should be returned for AJAX requests. True by default.
65
+ # config.http_authenticatable_on_xhr = true
66
+
67
+ # The realm used in Http Basic Authentication. 'Application' by default.
68
+ # config.http_authentication_realm = 'Application'
69
+
70
+ # It will change confirmation, password recovery and other workflows
71
+ # to behave the same regardless if the e-mail provided was right or wrong.
72
+ # Does not affect registerable.
73
+ # config.paranoid = true
74
+
75
+ # By default Devise will store the user in session. You can skip storage for
76
+ # particular strategies by setting this option.
77
+ # Notice that if you are skipping storage for all authentication paths, you
78
+ # may want to disable generating routes to Devise's sessions controller by
79
+ # passing skip: :sessions to `devise_for` in your config/routes.rb
80
+ config.skip_session_storage = [:http_auth]
81
+
82
+ # By default, Devise cleans up the CSRF token on authentication to
83
+ # avoid CSRF token fixation attacks. This means that, when using AJAX
84
+ # requests for sign in and sign up, you need to get a new CSRF token
85
+ # from the server. You can disable this option at your own risk.
86
+ # config.clean_up_csrf_token_on_authentication = true
87
+
88
+ # ==> Configuration for :database_authenticatable
89
+ # For bcrypt, this is the cost for hashing the password and defaults to 10. If
90
+ # using other encryptors, it sets how many times you want the password re-encrypted.
91
+ #
92
+ # Limiting the stretches to just one in testing will increase the performance of
93
+ # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use
94
+ # a value less than 10 in other environments. Note that, for bcrypt (the default
95
+ # encryptor), the cost increases exponentially with the number of stretches (e.g.
96
+ # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation).
97
+ config.stretches = Rails.env.test? ? 1 : 10
98
+
99
+ # Setup a pepper to generate the encrypted password.
100
+ # config.pepper = '49fb44f4cf048973c4d742807343f331471f06e8a91cbbd6b6a7a65f794fd37550baf07a2b0e0a0fee6e94d903455e072a32ac7ca47bec90b02283e69cdbad1e'
101
+
102
+ # ==> Configuration for :confirmable
103
+ # A period that the user is allowed to access the website even without
104
+ # confirming their account. For instance, if set to 2.days, the user will be
105
+ # able to access the website for two days without confirming their account,
106
+ # access will be blocked just in the third day. Default is 0.days, meaning
107
+ # the user cannot access the website without confirming their account.
108
+ # config.allow_unconfirmed_access_for = 2.days
109
+
110
+ # A period that the user is allowed to confirm their account before their
111
+ # token becomes invalid. For example, if set to 3.days, the user can confirm
112
+ # their account within 3 days after the mail was sent, but on the fourth day
113
+ # their account can't be confirmed with the token any more.
114
+ # Default is nil, meaning there is no restriction on how long a user can take
115
+ # before confirming their account.
116
+ # config.confirm_within = 3.days
117
+
118
+ # If true, requires any email changes to be confirmed (exactly the same way as
119
+ # initial account confirmation) to be applied. Requires additional unconfirmed_email
120
+ # db field (see migrations). Until confirmed, new email is stored in
121
+ # unconfirmed_email column, and copied to email column on successful confirmation.
122
+ config.reconfirmable = false
123
+
124
+ # Defines which key will be used when confirming an account
125
+ # config.confirmation_keys = [ :email ]
126
+
127
+ # ==> Configuration for :rememberable
128
+ # The time the user will be remembered without asking for credentials again.
129
+ # config.remember_for = 2.weeks
130
+
131
+ # Invalidates all the remember me tokens when the user signs out.
132
+ config.expire_all_remember_me_on_sign_out = true
133
+
134
+ # If true, extends the user's remember period when remembered via cookie.
135
+ # config.extend_remember_period = false
136
+
137
+ # Options to be passed to the created cookie. For instance, you can set
138
+ # secure: true in order to force SSL only cookies.
139
+ # config.rememberable_options = {}
140
+
141
+ # ==> Configuration for :validatable
142
+ # Range for password length.
143
+ config.password_length = 8..128
144
+
145
+ # Email regex used to validate email formats. It simply asserts that
146
+ # one (and only one) @ exists in the given string. This is mainly
147
+ # to give user feedback and not to assert the e-mail validity.
148
+ # config.email_regexp = /\A[^@]+@[^@]+\z/
149
+
150
+ # ==> Configuration for :timeoutable
151
+ # The time you want to timeout the user session without activity. After this
152
+ # time the user will be asked for credentials again. Default is 30 minutes.
153
+ # config.timeout_in = 30.minutes
154
+
155
+ # If true, expires auth token on session timeout.
156
+ # config.expire_auth_token_on_timeout = false
157
+
158
+ # ==> Configuration for :lockable
159
+ # Defines which strategy will be used to lock an account.
160
+ # :failed_attempts = Locks an account after a number of failed attempts to sign in.
161
+ # :none = No lock strategy. You should handle locking by yourself.
162
+ # config.lock_strategy = :failed_attempts
163
+
164
+ # Defines which key will be used when locking and unlocking an account
165
+ # config.unlock_keys = [ :email ]
166
+
167
+ # Defines which strategy will be used to unlock an account.
168
+ # :email = Sends an unlock link to the user email
169
+ # :time = Re-enables login after a certain amount of time (see :unlock_in below)
170
+ # :both = Enables both strategies
171
+ # :none = No unlock strategy. You should handle unlocking by yourself.
172
+ # config.unlock_strategy = :both
173
+
174
+ # Number of authentication tries before locking an account if lock_strategy
175
+ # is failed attempts.
176
+ # config.maximum_attempts = 20
177
+
178
+ # Time interval to unlock the account if :time is enabled as unlock_strategy.
179
+ # config.unlock_in = 1.hour
180
+
181
+ # Warn on the last attempt before the account is locked.
182
+ # config.last_attempt_warning = true
183
+
184
+ # ==> Configuration for :recoverable
185
+ #
186
+ # Defines which key will be used when recovering the password for an account
187
+ # config.reset_password_keys = [ :email ]
188
+
189
+ # Time interval you can reset your password with a reset password key.
190
+ # Don't put a too small interval or your users won't have the time to
191
+ # change their passwords.
192
+ config.reset_password_within = 6.hours
193
+
194
+ # ==> Configuration for :encryptable
195
+ # Allow you to use another encryption algorithm besides bcrypt (default). You can use
196
+ # :sha1, :sha512 or encryptors from others authentication tools as :clearance_sha1,
197
+ # :authlogic_sha512 (then you should set stretches above to 20 for default behavior)
198
+ # and :restful_authentication_sha1 (then you should set stretches to 10, and copy
199
+ # REST_AUTH_SITE_KEY to pepper).
200
+ #
201
+ # Require the `devise-encryptable` gem when using anything other than bcrypt
202
+ # config.encryptor = :sha512
203
+
204
+ # ==> Scopes configuration
205
+ # Turn scoped views on. Before rendering "sessions/new", it will first check for
206
+ # "users/sessions/new". It's turned off by default because it's slower if you
207
+ # are using only default views.
208
+ # config.scoped_views = false
209
+
210
+ # Configure the default scope given to Warden. By default it's the first
211
+ # devise role declared in your routes (usually :user).
212
+ # config.default_scope = :user
213
+
214
+ # Set this configuration to false if you want /users/sign_out to sign out
215
+ # only the current scope. By default, Devise signs out all scopes.
216
+ # config.sign_out_all_scopes = true
217
+
218
+ # ==> Navigation configuration
219
+ # Lists the formats that should be treated as navigational. Formats like
220
+ # :html, should redirect to the sign in page when the user does not have
221
+ # access, but formats like :xml or :json, should return 401.
222
+ #
223
+ # If you have any extra navigational formats, like :iphone or :mobile, you
224
+ # should add them to the navigational formats lists.
225
+ #
226
+ # The "*/*" below is required to match Internet Explorer requests.
227
+ # config.navigational_formats = ['*/*', :html]
228
+
229
+ # The default HTTP method used to sign out a resource. Default is :delete.
230
+ config.sign_out_via = :delete
231
+
232
+ # ==> OmniAuth
233
+ # Add a new OmniAuth provider. Check the wiki for more information on setting
234
+ # up on your models and hooks.
235
+ # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo'
236
+
237
+ # ==> Warden configuration
238
+ # If you want to use other strategies, that are not supported by Devise, or
239
+ # change the failure app, you can configure them inside the config.warden block.
240
+ #
241
+ # config.warden do |manager|
242
+ # manager.intercept_401 = false
243
+ # manager.default_strategies(scope: :user).unshift :some_external_strategy
244
+ # end
245
+
246
+ # ==> Mountable engine configurations
247
+ # When using Devise inside an engine, let's call it `MyEngine`, and this engine
248
+ # is mountable, there are some extra configurations to be taken into account.
249
+ # The following options are available, assuming the engine is mounted as:
250
+ #
251
+ # mount MyEngine, at: '/my_engine'
252
+ #
253
+ # The router that invoked `devise_for`, in the example above, would be:
254
+ config.router_name = :push_type
255
+
256
+ # When using omniauth, Devise cannot automatically set Omniauth path,
257
+ # so you need to do it manually. For the users scope, it would be:
258
+ # config.omniauth_path_prefix = '/my_engine/users/auth'
259
+ end
@@ -0,0 +1,60 @@
1
+ # Additional translations at https://github.com/plataformatec/devise/wiki/I18n
2
+
3
+ en:
4
+ devise:
5
+ confirmations:
6
+ confirmed: "Your email address has been successfully confirmed."
7
+ send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
8
+ send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
9
+ failure:
10
+ already_authenticated: "You are already signed in."
11
+ inactive: "Your account is not activated yet."
12
+ invalid: "Invalid %{authentication_keys} or password."
13
+ locked: "Your account is locked."
14
+ last_attempt: "You have one more attempt before your account is locked."
15
+ not_found_in_database: "Invalid %{authentication_keys} or password."
16
+ timeout: "Your session expired. Please sign in again to continue."
17
+ unauthenticated: "You need to sign in or sign up before continuing."
18
+ unconfirmed: "You have to confirm your email address before continuing."
19
+ mailer:
20
+ confirmation_instructions:
21
+ subject: "Confirmation instructions"
22
+ reset_password_instructions:
23
+ subject: "Reset password instructions"
24
+ unlock_instructions:
25
+ subject: "Unlock instructions"
26
+ omniauth_callbacks:
27
+ failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
28
+ success: "Successfully authenticated from %{kind} account."
29
+ passwords:
30
+ no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
31
+ send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
32
+ send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
33
+ updated: "Your password has been changed successfully. You are now signed in."
34
+ updated_not_active: "Your password has been changed successfully."
35
+ registrations:
36
+ destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
37
+ signed_up: "Welcome! You have signed up successfully."
38
+ signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
39
+ signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
40
+ signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
41
+ update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
42
+ updated: "Your account has been updated successfully."
43
+ sessions:
44
+ signed_in: "Signed in successfully."
45
+ signed_out: "Signed out successfully."
46
+ already_signed_out: "Signed out successfully."
47
+ unlocks:
48
+ send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
49
+ send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
50
+ unlocked: "Your account has been unlocked successfully. Please sign in to continue."
51
+ errors:
52
+ messages:
53
+ already_confirmed: "was already confirmed, please try signing in"
54
+ confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
55
+ expired: "has expired, please request a new one"
56
+ not_found: "not found"
57
+ not_locked: "was not locked"
58
+ not_saved:
59
+ one: "1 error prohibited this %{resource} from being saved:"
60
+ other: "%{count} errors prohibited this %{resource} from being saved:"