j1_template_mde 2018.4.11 → 2018.4.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +117 -110
  3. data/_includes/themes/j1/modules/navigator/generator.html +2 -2
  4. data/_includes/themes/j1/modules/navigator/procedures/sidebar.proc +88 -9
  5. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +5 -4
  6. data/_includes/themes/j1/procedures/global/get_page_path.proc +5 -3
  7. data/lib/j1/commands/generate.rb +3 -3
  8. data/lib/j1/version.rb +1 -1
  9. data/lib/j1_app/j1_auth_manager/auth_manager.rb +417 -78
  10. data/lib/j1_app/j1_auth_manager/config.rb +47 -0
  11. data/lib/j1_app/j1_auth_manager/helpers.rb +15 -11
  12. data/lib/j1_app/j1_auth_manager/views/_unused/iframe.erb +29 -0
  13. data/lib/j1_app/j1_auth_manager/views/_unused/modal_page.erb +136 -0
  14. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +144 -0
  15. data/lib/j1_app/j1_auth_manager/warden_omniauth.rb +8 -6
  16. data/lib/j1_app/omniauth/strategies/disqus.rb +7 -7
  17. data/lib/j1_app/omniauth/strategies/facebook.rb +1 -1
  18. data/lib/j1_app/omniauth/strategies/github.rb +7 -7
  19. data/lib/j1_app/omniauth/strategies/patreon.rb +5 -4
  20. data/lib/j1_app/omniauth/strategies/twitter.rb +1 -1
  21. data/lib/starter_web/Gemfile +2 -2
  22. data/lib/starter_web/_config.yml +27 -19
  23. data/lib/starter_web/_data/modules/_unused/j1_navigator.yml +4 -4
  24. data/lib/starter_web/_data/modules/_unused/j1_navigator_menu.yml +24 -24
  25. data/lib/starter_web/_data/modules/j1_banner.yml +2 -2
  26. data/lib/starter_web/_data/modules/j1_cookiebar.yml +2 -2
  27. data/lib/starter_web/_data/modules/j1_footer.yml +4 -4
  28. data/lib/starter_web/_data/modules/j1_navigator.yml +18 -17
  29. data/lib/starter_web/_data/modules/j1_navigator_menu.yml +37 -64
  30. data/lib/starter_web/_data/modules/j1_panel.yml +15 -15
  31. data/lib/starter_web/_data/modules/j1_theme_switcher.yml +7 -7
  32. data/lib/starter_web/_rack/dot.gitignore +8 -6
  33. data/lib/starter_web/assets/images/master_header/aaron-burden-1280x600.png +0 -0
  34. data/lib/starter_web/assets/images/master_header/admin-dashboard-bootstrap.1280x600.png +0 -0
  35. data/lib/starter_web/assets/images/master_header/chuttersnap-1280x800.png +0 -0
  36. data/lib/starter_web/assets/images/master_header/clark-tibbs-do-something.1280x600.png +0 -0
  37. data/lib/starter_web/assets/images/master_header/clark-tibbs-do-something.1920x900.png +0 -0
  38. data/lib/starter_web/assets/images/master_header/homehead-default-1280x600.png +0 -0
  39. data/lib/starter_web/assets/images/master_header/homehead-default-1920x800.png +0 -0
  40. data/lib/starter_web/assets/images/master_header/ideas-start-here.1280x900.png +0 -0
  41. data/lib/starter_web/assets/images/master_header/maarten-van-den-heuvel.1280x600.png +0 -0
  42. data/lib/starter_web/assets/images/master_header/pagehead-default-1280x500.png +0 -0
  43. data/lib/starter_web/assets/images/master_header/pagehead-default-1920x600.png +0 -0
  44. data/lib/starter_web/assets/images/master_header/water-journal-1280x600.png +0 -0
  45. data/lib/starter_web/assets/themes/j1/core/css/bootstrap.css +895 -286
  46. data/lib/starter_web/assets/themes/j1/core/css/bootstrap.min.css +2 -2
  47. data/lib/starter_web/assets/themes/j1/core/js/adapter/navigator.js +9 -17
  48. data/lib/starter_web/collections/posts/{series → premium/series}/_posts/000_includes/attributes.asciidoc +5 -5
  49. data/lib/starter_web/collections/posts/{series → premium/series}/_posts/000_includes/documents/100-docker-using-shared-folders.asciidoc +0 -0
  50. data/lib/starter_web/collections/posts/{series → premium/series}/_posts/000_includes/documents/loop.sh +0 -0
  51. data/lib/starter_web/collections/posts/{series → premium/series}/_posts/000_includes/tables/debug_variables.asciidoc +2 -1
  52. data/lib/starter_web/collections/posts/premium/series/_posts/2018-11-01-docker-using-shared-folders.adoc +79 -0
  53. data/lib/starter_web/collections/posts/{series/_posts/2018-11-01-docker-using-shared-folders.adoc → premium/series/_posts/2018-11-01-docker-using-shared-folders.asciidoc} +15 -23
  54. data/lib/starter_web/collections/posts/{wikipedia → private/wikipedia}/_posts/2016-11-20-minneapolis.adoc +0 -0
  55. data/lib/starter_web/collections/posts/{wikipedia → private/wikipedia}/_posts/2016-11-24-narcisse-snake-pits.adoc +0 -0
  56. data/lib/starter_web/collections/posts/{wikipedia → private/wikipedia}/_posts/2016-11-26-columbia-river.adoc +0 -0
  57. data/lib/starter_web/collections/posts/{featured → public/featured}/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +0 -0
  58. data/lib/starter_web/collections/posts/public/featured/_posts/000_includes/attributes.asciidoc +46 -0
  59. data/lib/starter_web/collections/posts/{featured → public/featured}/_posts/2017-05-01-confusion-about-base-url.adoc +5 -4
  60. data/lib/starter_web/collections/posts/{featured → public/featured}/_posts/2017-06-01-top-open-source-static-site-generators.adoc +0 -0
  61. data/lib/starter_web/collections/posts/{featured → public/featured}/_posts/2017-07-01-what-is-a-static-site.adoc +0 -0
  62. data/lib/starter_web/package.json +1 -1
  63. data/lib/starter_web/pages/{bookshelf → premium/bookshelf}/100_about_jekyll_collections.adoc +1 -1
  64. data/lib/starter_web/pages/{bookshelf → premium/bookshelf}/200_book_shelf_biography.adoc +1 -1
  65. data/lib/starter_web/pages/{bookshelf → premium/bookshelf}/300_book_shelf_fantasy.adoc +1 -1
  66. data/lib/starter_web/pages/{bookshelf → premium/bookshelf}/400_book_shelf_romance.adoc +1 -1
  67. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/attributes.asciidoc +0 -0
  68. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
  69. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
  70. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
  71. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/200_rotate.asciidoc +0 -0
  72. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/300_flip.asciidoc +0 -0
  73. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
  74. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
  75. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
  76. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
  77. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
  78. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
  79. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
  80. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
  81. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/twitter_emoji/200_rotate.asciidoc +0 -0
  82. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/twitter_emoji/300_flip.asciidoc +0 -0
  83. data/lib/starter_web/pages/{previewer → private/previewer}/000_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
  84. data/lib/starter_web/pages/{previewer → private/previewer}/justified_gallery.html +1 -1
  85. data/lib/starter_web/pages/{previewer → private/previewer}/mdi_icons_preview.adoc +1 -1
  86. data/lib/starter_web/pages/{previewer → private/previewer}/twitter_emoji_preview.adoc +1 -1
  87. data/lib/starter_web/pages/{about → public/about}/about_site.adoc +1 -1
  88. data/lib/starter_web/pages/{blog → public/blog}/navigator/archive.html +11 -11
  89. data/lib/starter_web/pages/{blog/navigator/archive_by_category.html → public/blog/navigator/archive/categoryview.html} +11 -11
  90. data/lib/starter_web/pages/{blog/navigator/archive_by_date.html → public/blog/navigator/archive/dateview.html} +11 -12
  91. data/lib/starter_web/pages/{blog/navigator/archive_by_tag.html → public/blog/navigator/archive/tagview.html} +12 -12
  92. data/lib/starter_web/pages/{blog → public/blog}/navigator/index.html +0 -0
  93. data/lib/starter_web/pages/{legal → public/legal}/de/100_impress.adoc +1 -1
  94. data/lib/starter_web/pages/{legal → public/legal}/de/200_terms_of_use.adoc +1 -1
  95. data/lib/starter_web/pages/{legal → public/legal}/de/300_privacy.adoc +1 -1
  96. data/lib/starter_web/pages/{legal → public/legal}/de/400_license_agreement.adoc +1 -1
  97. data/lib/starter_web/pages/{legal → public/legal}/de/500_support.adoc +1 -1
  98. data/lib/starter_web/pages/{legal → public/legal}/en/100_impress.adoc +1 -1
  99. data/lib/starter_web/pages/{legal → public/legal}/en/200_terms_of_use.adoc +1 -1
  100. data/lib/starter_web/pages/{legal → public/legal}/en/300_privacy.adoc +1 -1
  101. data/lib/starter_web/pages/{legal → public/legal}/en/400_license_agreement.adoc +1 -1
  102. data/lib/starter_web/pages/{legal → public/legal}/en/500_support.adoc +1 -1
  103. data/lib/starter_web/pages/{panel/100_intro_panel.adoc → public/panels/intro_panel.adoc} +1 -1
  104. data/lib/starter_web/pages/public/previewer/000_includes/attributes.asciidoc +75 -0
  105. data/lib/starter_web/pages/{previewer → public/previewer}/bootstrap_theme.adoc +13 -8
  106. data/lib/starter_web/pages/{start → public/start}/000_includes/attributes.asciidoc +1 -1
  107. data/lib/starter_web/pages/{start → public/start}/change_me_first.adoc +1 -1
  108. data/lib/starter_web/pages/{start → public/start}/dm920hd.adoc +1 -1
  109. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/000_includes/attributes.asciidoc +4 -4
  110. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/000_includes/tables/100_quickstart_installation_packages.asciidoc +0 -0
  111. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/100_linux_starter.adoc +1 -1
  112. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/200_macos_starter.adoc +1 -1
  113. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/300_windows_starter.adoc +1 -1
  114. data/lib/starter_web/pages/{start → public/start}/downloads/quickstarter/quickstart.adoc +1 -1
  115. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/attributes.asciidoc +0 -0
  116. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/collections.adoc +0 -0
  117. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/configuration.adoc +1 -1
  118. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/directory_structure.adoc +0 -0
  119. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/jekyll_commandline.adoc +0 -0
  120. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/layout_inheritance.adoc +0 -0
  121. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/manage_pages.adoc +0 -0
  122. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/manage_posts.adoc +0 -0
  123. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/pagination.adoc +0 -0
  124. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/plugins.adoc +0 -0
  125. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/templates.adoc +0 -0
  126. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/000_includes/documents/variables.adoc +0 -0
  127. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/100_introduction.adoc +1 -1
  128. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/110_preparations.adoc +1 -1
  129. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/120_getting_started.adoc +1 -1
  130. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/_unused/20_j1_anatomy.asciidoc +1 -1
  131. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/_unused/30_j1_configure_your_site.asciidoc +1 -1
  132. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/_unused/40_j1_create_content.asciidoc +1 -1
  133. data/lib/starter_web/pages/{start → public/start}/kickstarter/web_in_a_day/_unused/50_j1_customize_your_pages.asciidoc +1 -1
  134. data/lib/starter_web/pages/{start → public/start}/read_me_first.adoc +1 -1
  135. data/lib/starter_web/pages/public/start/roundtrip/000_includes/attributes.asciidoc +90 -0
  136. data/lib/starter_web/pages/{start → public/start}/roundtrip/000_includes/documents/100_gistblock.asciidoc +0 -0
  137. data/lib/starter_web/pages/{start → public/start}/roundtrip/100_present_images.adoc +2 -3
  138. data/lib/starter_web/pages/{start → public/start}/roundtrip/200_cards.adoc +1 -1
  139. data/lib/starter_web/pages/{start → public/start}/roundtrip/300_typography.adoc +1 -1
  140. data/lib/starter_web/pages/{start → public/start}/roundtrip/400_icon_fonts.adoc +1 -1
  141. data/lib/starter_web/pages/{start → public/start}/roundtrip/500_asciidoc_extensions.adoc +1 -1
  142. data/lib/starter_web/pages/{start → public/start}/roundtrip/600_themes.adoc +1 -1
  143. data/lib/starter_web/pages/{start/roundtrip/700_additional_modals.adoc → public/start/roundtrip/700_j1_modals.adoc} +25 -36
  144. data/lib/starter_web/pages/{teaser → public/teaser}/100_core.adoc +1 -1
  145. data/lib/starter_web/pages/{teaser → public/teaser}/200_components.adoc +1 -1
  146. data/lib/starter_web/pages/{teaser → public/teaser}/300_modules.adoc +1 -1
  147. metadata +115 -209
  148. data/lib/starter_web/apps/calendar/index.adoc +0 -71
  149. data/lib/starter_web/apps/link_checker/index.html +0 -24
  150. data/lib/starter_web/assets/apps/link-checker/assets/img/main/img22.jpg +0 -0
  151. data/lib/starter_web/assets/apps/link-checker/assets/img/main/img22.png +0 -0
  152. data/lib/starter_web/assets/apps/link-checker/index.html +0 -125
  153. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/css/bootstrap.min.css +0 -1560
  154. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  155. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/fonts/glyphicons-halflings-regular.svg +0 -288
  156. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  157. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  158. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  159. data/lib/starter_web/assets/apps/link-checker/src/bootstrap/js/bootstrap.min.js +0 -7
  160. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/LICENSE.md +0 -11
  161. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/README.md +0 -105
  162. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/css/font-awesome.css +0 -2337
  163. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/css/font-awesome.min.css +0 -4
  164. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/FontAwesome.otf +0 -0
  165. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/fontawesome-webfont.eot +0 -0
  166. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/fontawesome-webfont.svg +0 -2671
  167. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/fontawesome-webfont.ttf +0 -0
  168. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/fontawesome-webfont.woff +0 -0
  169. data/lib/starter_web/assets/apps/link-checker/src/fonts/font_awesome/fonts/fontawesome-webfont.woff2 +0 -0
  170. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/How_to_use_webfonts.html +0 -230
  171. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/Roboto-Regular-demo.html +0 -372
  172. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/Roboto-Regular.eot +0 -0
  173. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/Roboto-Regular.svg +0 -621
  174. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/Roboto-Regular.ttf +0 -0
  175. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/Roboto-Regular.woff +0 -0
  176. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/specimen_files/Roboto-Regular-cleartype.png +0 -0
  177. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/specimen_files/grid_12-825-55-15.css +0 -129
  178. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/specimen_files/specimen_stylesheet.css +0 -396
  179. data/lib/starter_web/assets/apps/link-checker/src/fonts/roboto/stylesheet.css +0 -12
  180. data/lib/starter_web/assets/apps/link-checker/src/link-checker/css/link-checker.css +0 -87
  181. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/backbone.1.3.2.js +0 -1920
  182. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/backbone.min.js +0 -37
  183. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/html5shiv.min.js +0 -4
  184. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/iframeResizer.contentWindow.min.js +0 -9
  185. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/jquery.min.js +0 -6
  186. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/jsuri-1.1.1.min.js +0 -2
  187. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/link-checker.js +0 -333
  188. data/lib/starter_web/assets/apps/link-checker/src/link-checker/js/underscore.min.js +0 -31
  189. data/lib/starter_web/assets/images/master_header/aaron-burden-1200.jpg +0 -0
  190. data/lib/starter_web/assets/images/master_header/alexey-ruban-slider.jpg +0 -0
  191. data/lib/starter_web/assets/images/master_header/chuttersnap-1200.jpg +0 -0
  192. data/lib/starter_web/assets/images/master_header/clark-tibbs-do-something.jpg +0 -0
  193. data/lib/starter_web/assets/images/master_header/homehead-default-1200.jpg +0 -0
  194. data/lib/starter_web/assets/images/master_header/ideas-start-here.1200x800.png +0 -0
  195. data/lib/starter_web/assets/images/master_header/ideas-start-here.jpg +0 -0
  196. data/lib/starter_web/assets/images/master_header/maarten-van-den-heuvel-1200.jpg +0 -0
  197. data/lib/starter_web/assets/images/master_header/pagehead-default-1200.jpg +0 -0
  198. data/lib/starter_web/assets/images/master_header/stefan-stefancik-1200.jpg +0 -0
  199. data/lib/starter_web/assets/images/master_header/water-journal-1200.jpg +0 -0
  200. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/001_menubar_example.png +0 -0
  201. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/005_navbar.png +0 -0
  202. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/005_navigation_bar.png +0 -0
  203. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/006_navigation_side_bar.png +0 -0
  204. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/006_searchbar.png +0 -0
  205. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/007_sidebar.png +0 -0
  206. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/008_navbar_blank.png +0 -0
  207. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/010_nav_bar.png +0 -0
  208. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/010_top_search.png +0 -0
  209. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/012_top_search.png +0 -0
  210. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/015_quicklink_bar.png +0 -0
  211. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/017_side_bar.png +0 -0
  212. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/200_navigation/020_menu_bar.png +0 -0
  213. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/2-tier-architecture-1280x600.png +0 -0
  214. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/3-tier-architecture-1280x600.png +0 -0
  215. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/download_image_create_starter.800x600.png +0 -0
  216. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-icon.1280x600.png +0 -0
  217. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-signin.1280x700.png +0 -0
  218. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-signout.1280x700.png +0 -0
  219. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-disqus-comment-dialog.1280x500.png +0 -0
  220. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1_development_system-1280x600.png +0 -0
  221. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/j1_runtime_system-1280x600.png +0 -0
  222. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/rack_based_web_app-1280x600.png +0 -0
  223. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/rack_based_web_app.png +0 -0
  224. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/run_container_build_start_web.800x400.png +0 -0
  225. data/lib/starter_web/assets/images/pages/documentation/100_user_guide/200_modules/240_auth_manager/run_starter_web.800x700.png +0 -0
  226. data/lib/starter_web/collections/posts/featured/_posts/000_includes/attributes.asciidoc +0 -15
  227. data/lib/starter_web/pages/about/about_you.adoc +0 -103
  228. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/attributes.asciidoc +0 -72
  229. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/documents/200_library_features.asciidoc +0 -285
  230. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/001_menu_bar_example.png +0 -0
  231. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/005_navbar.png +0 -0
  232. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/005_navigation_bar.png +0 -0
  233. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/006_navigation_side_bar.png +0 -0
  234. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/006_searchbar.png +0 -0
  235. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/007_sidebar.png +0 -0
  236. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/008_navbar_blank.png +0 -0
  237. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/010_nav_bar.png +0 -0
  238. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/010_top_search.png +0 -0
  239. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/012_top_search.png +0 -0
  240. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/015_quicklink_bar.png +0 -0
  241. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/017_side_bar.png +0 -0
  242. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/020_menu_bar.png +0 -0
  243. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/400_master_header.png +0 -0
  244. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/410_text_header.png +0 -0
  245. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/411_text_header.png +0 -0
  246. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/412_header_anatomy.png +0 -0
  247. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/415_image_header_caption.png +0 -0
  248. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/images/snagit/412_header_anatomy.snag +0 -0
  249. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/000_text_sizes.asciidoc +0 -50
  250. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/410_common_header_parameters.asciidoc +0 -120
  251. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/420_common_image_header_parameters.asciidoc +0 -52
  252. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/421_additional_image_header_parameters.asciidoc +0 -36
  253. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/430_video_header_parameters.asciidoc +0 -26
  254. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/440_image_and_video_transitions.asciidoc +0 -36
  255. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/450_image_and_video_header_defaults.asciidoc +0 -82
  256. data/lib/starter_web/pages/start/documentation/user_guide/100_header/000_includes/tables/451_additional_image_and_video_header_defaults.asciidoc +0 -23
  257. data/lib/starter_web/pages/start/documentation/user_guide/100_header/100_header.adoc +0 -452
  258. data/lib/starter_web/pages/start/documentation/user_guide/240_auth_manager/000_includes/attributes.asciidoc +0 -119
  259. data/lib/starter_web/pages/start/documentation/user_guide/240_auth_manager/100_auth_manager.adoc +0 -539
  260. data/lib/starter_web/pages/start/roundtrip/000_includes/attributes.asciidoc +0 -49
@@ -1,119 +0,0 @@
1
- // ~/document_base_folder/000_includes
2
- // Asciidoc attribute includes: attributes.asciidoc
3
- // -----------------------------------------------------------------------------
4
-
5
-
6
- // URLs - Internal references and/or sources on the Internet
7
- // -----------------------------------------------------------------------------
8
- tag::urls[]
9
-
10
- :jekyll-home-news: https://jekyllrb.com/news/
11
-
12
- :patreon-home: https://patreon.com/
13
-
14
- :wikipedia-en-gdpr: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation
15
-
16
- :j1-gh-jekyllone-template-dev: https://github.com/jekyll-one/j1_template_mde_dev
17
- :j1-gh-jekyllone-j1-images: https://github.com/jekyll-one/j1_images
18
- :j1-gh-jekyllone-j1-image-git-repo: https://github.com/jekyll-one/j1_image.git
19
- :j1-jekyllone-images: https://hub.docker.com/u/jekyllone/
20
- :j1-jekyllone-images-j1image: https://hub.docker.com/r/jekyllone/j1image/
21
- :j1-jekyllone-images-j1app: https://hub.docker.com/r/jekyllone/j1app/
22
- :j1-jekyllone-images-j1base: https://hub.docker.com/r/jekyllone/j1base/
23
- :j1-jekyllone-images-j1: https://hub.docker.com/r/jekyllone/j1/
24
-
25
- :j1-kickstarter-docker-in-a-day: /pages/start/kickstarter/docker_in_a_day/getting_started/
26
- :j1-kickstarter-private-sites: /pages/start/kickstarter/j1_private_sites/100_introduction/
27
-
28
-
29
- :j1-images-in-a-day-intro: /pages/start/kickstarter/j1_images_in_a_day/intro/
30
- :j1-images-in-a-day-run-and-develop: /pages/start/kickstarter/j1_images_in_a_day/run_and_develop/
31
- :j1-images-in-a-day-create-images: /pages/start/kickstarter/j1_images_in_a_day/create_docker_images/
32
- :j1-images-in-a-day-cheatsheet: /pages/start/kickstarter/j1_images_in_a_day/j1_images_cheatsheet/
33
- :j1-images-in-a-day-j1-images-project: /pages/start/kickstarter/j1_images_in_a_day/j1_images_project/
34
-
35
- :j1-private-sites-in-a-day-intro: /pages/start/kickstarter/j1_private_sites/100_introduction/
36
-
37
- :envygeeks-home: https://envygeeks.io/
38
- :envygeeks-docker-template: https://github.com/envygeeks/docker-template
39
- :envygeeks-wiki: https://github.com/envygeeks/docker-template/wiki
40
-
41
- :docker-docs: https://docs.docker.com/
42
- :docker-docs-squash-image-layers: http://docs.docker.oeynet.com/engine/reference/commandline/build/#squash-an-images-layers-squash-experimental-only
43
- :docker-hub-jekyll-jekyll-image: https://hub.docker.com/r/jekyll/jekyll/
44
-
45
- :ruby-core-erb: https://ruby-doc.org/stdlib-2.5.3/libdoc/erb/rdoc/ERB.html
46
-
47
- end::urls[]
48
-
49
-
50
- // Tags - Asciidoc attributes used internally
51
- // -----------------------------------------------------------------------------
52
- tag::tags[]
53
-
54
- :window: window="_blank"
55
- :figure-caption: Figure
56
- :images-dir: pages/documentation/100_user_guide/200_modules/240_auth_manager
57
- :y: icon:check[role="green"]
58
- :n: icon:times[role="red"]
59
- :c: icon:file-alt[role="blue"]
60
- :beginner: icon:battery-quarter[role="md-blue"]
61
- :inter: icon:battery-half[role="md-blue"]
62
- :advanced: icon:battery-full[role="md-blue"]
63
- :emdash: —
64
- :bullet: •
65
- :bigbullet: ●
66
- :bigbigbullet: ⬤
67
- :dot: .
68
- :dotdot: ..
69
- :middot: ·
70
-
71
- end::tags[]
72
-
73
-
74
- // Data - Data elements for Asciidoctor extensions
75
- // -----------------------------------------------------------------------------
76
- tag::data[]
77
-
78
- :data-download-image-create-starter: "pages/documentation/100_user_guide/200_modules/240_auth_manager/download_image_create_starter.800x600.png, Create a starter web skeleton"
79
- :data-run-container-build-start-web: "pages/documentation/100_user_guide/200_modules/240_auth_manager/run_container_build_start_web.800x400.png, Build and run the starter web"
80
- :data-running-starter-web: "pages/documentation/100_user_guide/200_modules/240_auth_manager/run_starter_web.800x700.png, Run the starter web in a browser"
81
-
82
- :data-j1-runtime-system: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1_runtime_system-1280x600.png, J1 Runtime System for content development"
83
- :data-j1-development-system: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1_development_system-1280x600.png, J1 Development System for full-stack development"
84
-
85
- :data-2-tier-architecture: "pages/documentation/100_user_guide/200_modules/240_auth_manager/2-tier-architecture-1280x600.png, 2-Tier Architecture"
86
- :data-3-tier-architecture: "pages/documentation/100_user_guide/200_modules/240_auth_manager/3-tier-architecture-1280x600.png, 3-Tier Architecture"
87
- :data-web-app-ruby-rack: "pages/documentation/100_user_guide/200_modules/240_auth_manager/rack_based_web_app-1280x600.png, Rack-based J1 Web Application"
88
-
89
- :data-j1-authclient-icon: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-icon.1280x600.png, J1 AuthClient Icon"
90
- :data-j1-authclient-signin: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-signin.1280x700.png, J1 AuthClient SignIn Dialog"
91
- :data-j1-authclient-signout: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-app-authclient-signout.1280x700.png, J1 AuthClient SignOut Dialog"
92
- :data-j1-disqus-comment-dialog: "pages/documentation/100_user_guide/200_modules/240_auth_manager/j1-disqus-comment-dialog.1280x500.png, J1 Disqus Comment Dialog"
93
-
94
-
95
-
96
-
97
- :gh-oauth-autorization-page-data: "pages/documentation/100_user_guide/200_modules/240_auth_manager/gh-oauth-autorization-page.png, GH OAuth autorization page used by Jekyll One"
98
- :gh-oauth-login-page-data: "pages/documentation/100_user_guide/200_modules/240_auth_manager/gh-oauth-login-page.png, GH login page for autorization used by Jekyll One"
99
-
100
-
101
-
102
-
103
- end::data[]
104
-
105
-
106
- // Product - Document (e.g release) information
107
- // -----------------------------------------------------------------------------
108
- tag::product_info[]
109
- :license: MIT License
110
- :revdate: 2018
111
- :revnumber: 1.0.0
112
- end::product_info[]
113
-
114
-
115
- // Author - Author information
116
- // -----------------------------------------------------------------------------
117
- tag::authors[]
118
- :uri-author-juergen-adams https://jekyll.one
119
- end::authors[]
@@ -1,539 +0,0 @@
1
- ---
2
- title: Authentication Module
3
- tagline: Template User Guide
4
- description: Authentication Module
5
-
6
- tags: [
7
- Authentication, Disqus, Google,
8
- Facebook, Twitter, Patreon, Template,
9
- Oauth, Oauth2, Module, Modules
10
- ]
11
- resources: [ lightbox ]
12
- permalink: /user_guide/modules/auth_module/
13
- regenerate: false
14
-
15
- resource_options:
16
-
17
- - toccer:
18
- collapseDepth: 3
19
- ---
20
-
21
- // Enable the Liquid Preprocessor
22
- // -----------------------------------------------------------------------------
23
- :page-liquid:
24
-
25
- // Set other global page attributes here
26
- // -----------------------------------------------------------------------------
27
-
28
- // Liquid procedures
29
- // -----------------------------------------------------------------------------
30
- {% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%}
31
-
32
- // Initialize entry document paths
33
- // -----------------------------------------------------------------------------
34
- {% include {{set_env_entry_document}} init_folders=all %}
35
-
36
- // Load tags and urls
37
- // -----------------------------------------------------------------------------
38
- include::{includedir}/attributes.asciidoc[tag=tags]
39
- include::{includedir}/attributes.asciidoc[tag=urls]
40
- include::{includedir}/attributes.asciidoc[tag=data]
41
-
42
- // Additional Asciidoc page attributes goes here
43
- // -----------------------------------------------------------------------------
44
-
45
- // Include sub-documents
46
- // -----------------------------------------------------------------------------
47
-
48
- link:{jekyll-home}[Jekyll, {window}] and link:{gh-j1-starter-web-example}[J1 Template, {window}]
49
- are awesome, right? Static site, lightning fast, everything versioned in
50
- link:{git-home}[Git, {window}]. Simply managed by an good editor.
51
-
52
- What else could be ask for?
53
-
54
- link:{github-pages-home}[GitHub Pages, {window}] for example are very helpful
55
- to setup a project web site for free, to present a J1 Template based project
56
- on the Internet for free. But what if you want to share that site with only a
57
- selected number of people?
58
-
59
- To manage private Webs (or selected private content) for a static Jekyll site,
60
- you need authorization. As you know, a static site has no database. How to get
61
- users authenticated, how to give them access to private content without a
62
- database, without a user management in behind?
63
-
64
- Seems not possible -- first place. A user management for authentication is
65
- needed. No way.
66
-
67
- If you think next corner you may realize that your users, your audience for
68
- the protected content are already known members at service providers like
69
- _Disqus_, _Github_, _Facebook_, _Twitter_ etc. Nowadays, people have plenty
70
- digital identities based on memberships at e.g. social networks or registered
71
- already for communication services like _Disqus_.
72
-
73
- Why not using the user management of well known internet service providers
74
- widely used by billion of people?
75
-
76
- This could be ask for!
77
-
78
- == Introduction
79
-
80
- J1 Template has an authorisation system integrated. The authorisation
81
- management implemented with J1 is based on *middleware* system written in Ruby.
82
- The magic to secure a site created by Jekyll is done out of the box. No
83
- additional software, no programming work is needed.
84
-
85
- How should that work?
86
-
87
- To bring in something in a position the the middle, the architecture
88
- of your static web has to be changed from a two layer (tier) into a three
89
- layer architecture. Uhh, sounds not easy to change the architecture of a
90
- simple static site!
91
-
92
- === Web Applications
93
-
94
- It couldn't be called easy to add a authentication system to a static web; but
95
- it is manageable using the web development capabilities of the programming
96
- language *Ruby*. Ruby has a domain in creating applications for the Web.
97
- Powerful Ruby Gems (libraries) like *Rack*, *Sinatra* and others like *Rails*
98
- can be used for that. In short: the programming language *Ruby* is widely
99
- used to create Web Applications.
100
-
101
- ifdef::backend-html5[]
102
- .2-Tier Architecture of a static web
103
- lightbox::2-tier-architecture[ 800, {data-2-tier-architecture} ]
104
- endif::[]
105
-
106
- But what are Web Applications?
107
-
108
- First of all, a *multi layered* and *dynamic* web page (or web site). A
109
- simplified image of the architecture used for Jekyll webs transformed into
110
- an web application is shown below.
111
-
112
- ifdef::backend-html5[]
113
- .Rack-based Jekyll Web Application
114
- lightbox::web-app-ruby-rack[ 800, {data-web-app-ruby-rack} ]
115
- endif::[]
116
-
117
- For a Jekyll web that is *transformed* into an web application, the web
118
- server can be seen as an interface to access the application; to the
119
- processing chain at the core of an application. The transformer software, the
120
- Ruby library *Rack* is sitting *in between* and adds additional functionality
121
- for managing a requested page.
122
-
123
- To *activate* this new 3-layered web site, an application manager is used:
124
- *rackup*. The application manager *rackup* is controlled by an configuration
125
- file, the so-called rackup-file *config.ru*.
126
-
127
- Don't mind the details for now. What your web browser, the client, connects
128
- is not longer only the web server. Each request for the pages of a web goes
129
- over the a middleware *system*, managed by *Rack*.
130
-
131
- A middleware system based on Rack is not a *monolithic* block. It is a *stack*
132
- of *multiple* middleware components. What the name *Rack* implies. What is
133
- called *Rack Middlewares* are the next great Ruby libraries (Gem) managing
134
- a specific job, a *service* in such a chain.
135
-
136
- For now folks, keep in mind a *Jekyll Site* can be run as an App, transformed
137
- into an *web application* using *Rack*. Rack provides the *magic* in the middle
138
- to add additional dynamic processes -- the services -- e.g. for authentication.
139
-
140
- === The Vision
141
-
142
- What's the vision: whenever someone tries to access a secured web site for
143
- protected, for private pages the user will be *authorized* using the
144
- *authorisation* system implemented by J1, for example against _Disqus_ or
145
- _GitHub_ to make sure they're a member of your organization at Github. Or
146
- simply known as a registered user at _Disqus_ for example.
147
-
148
- Service providers like _Disqus_, _Facebook_ or _Github_ and many others support
149
- autorization request by third parties using SSO (Single Sign On) technologies.
150
- That way: your web site is supported by those providers for authentication!
151
-
152
- === Make it real
153
-
154
- The middlewares used by J1 based on *Rack* for autorisation is using the
155
- Ruby Gem *OmniAuth*. OmniAuth supports a huge number of *strategies* for
156
- authorisation. See a list of providers supported link:{omniauth-strategies}[from here, {window}].
157
-
158
- J1, for now, is focussing providers using *OAuth*, a authorization protocol
159
- widely used for *SSO* on the Internet by many important providers. Currently,
160
- the providers:
161
-
162
- * Disqus
163
- * Github
164
- * Facebook
165
- * Twitter
166
- * Patreon
167
-
168
- are supported for authentication using OAuth.
169
-
170
-
171
- == Overview
172
-
173
- As discussed in section <<Overview>>, the authorisation system of _J1 Template_
174
- is based on middlewares. From a outer perspective this system can be seen as a
175
- component providing *services* to a web site. In contrast to dynamic functions
176
- provided by CSS or Javascript functionality, services are controlling the
177
- whole web, not single pages.
178
-
179
- _J1 Template_ implements 2 authorisation methods:
180
-
181
- * explicit autorisation using the _J1 AuthClient_
182
- * implicit autorisation based on *Page Access*
183
-
184
- === Explicit autorisation
185
-
186
- For all people using websites, explicit autorisation is well known: a login
187
- button, typically in the menu bar, allows to sign in or out. Quite the same
188
- for _J1_.
189
-
190
- NOTE: The AuthClient is only activated, if a web site is detected as an *App*.
191
- If a site is started as a simple static web, *no* middlewares are available
192
- and no authentication services are provided.
193
-
194
- If a running web site is detected as an Web Application, the J1 AuthClient
195
- places an *SignIn* icon into the menu bar on the right. If a user is detected
196
- as signed out, a *SignIn* icon is displayed.
197
-
198
- ifdef::backend-html5[]
199
- .J1 AuthClient Icon
200
- lightbox::j1-authclient-icon[ 800, {data-j1-authclient-icon} ]
201
- endif::[]
202
-
203
- On a click on the signin icon, a dialog starts (as an overlay) presenting the
204
- providers available to be authenticated with.
205
-
206
- ifdef::backend-html5[]
207
- .J1 AuthClient SignIn Dialog
208
- lightbox::j1-authclient-signin[ 800, {data-j1-authclient-signin} ]
209
- endif::[]
210
-
211
- No surprise, if a user is detected as authenticated for one of the providers
212
- available, the AuthClient changes the icon to *SignOut* and a dialog to stop
213
- the authorisation is displayed.
214
-
215
- ifdef::backend-html5[]
216
- .J1 AuthClient SignOut Dialog
217
- lightbox::j1-authclient-signout[ 800, {data-j1-authclient-signout} ]
218
- endif::[]
219
-
220
- All these sounds very common, seen hundred times each and every day on the
221
- internet. But it is *not* the same because you aren't logged in the web, you
222
- are authenticated with a provider and logged in with the provider!
223
-
224
- What does that mean? J1 supports so-called *OAuth2 Authentication* for the
225
- supported service providers. And more than this. If a visitor signs in for a
226
- provider, a set of user specific data is retrived and stored locally with a
227
- web session cookie. This *user profile* is used to control the access for
228
- the pages of this private web. More details on that in section
229
- <<Implicit autorisation>>.
230
-
231
- And more than this again. A successful authorisation results in an
232
- provider-specific *Access Token*, valid for weeks to access the web without
233
- any login dialog anymore.
234
-
235
- J1 support *multi-provider* authentication can use all active *Access Token*
236
- from all providers in parallell as long this token is valid. This is quite
237
- usefull to use provider-based features of a _J1 Web_ using *multi-provider*
238
- authentication capabilities.
239
-
240
- If a user signs in for _Disqus_ first but changes the provider for _Github_,
241
- e.g. to get access to pages limited to _Github_ users, the authorisation is
242
- now valid for _Disqus_ *and* _GitHub_.
243
-
244
- ifdef::backend-html5[]
245
- .J1 Disqus Comment Dialog
246
- lightbox::j1-disqus-comment-dialog[ 800, {data-j1-disqus-comment-dialog} ]
247
- endif::[]
248
-
249
- === Implicit autorisation
250
-
251
- J1 use a underlying access-control for all pages. Web pages belong to three
252
- categories:
253
-
254
- * public
255
- * private
256
- * premium
257
-
258
- *Public pages* are accessible for all vistors of a web, *no* authorisation is
259
- need to get access to. For secured pages, *Private* and *Public* access can be
260
- defined on a provider level. *Private pages* can be used to limit the access
261
- for a specific provider. Or to specific users authenticated with a provider.
262
- This may helpfull for a developer team at _Github_ to limit the access for
263
- a Project Web for all documents that are in state *Work-In-Progress* (WIP) or
264
- to internal documentation that shouldn't available for the public.
265
-
266
- It is very common that web sites offering *payed services* to the public as
267
- well. If content is *not* for free, *Premium pages* are an option. Currently
268
- the provider link:{patreon-home}[Patreon] is supported for premium services
269
- to limit the access to vistors only, that have paid e.g a monthly fee.
270
-
271
- *Implicit autorisation* autorisation is based on *regular expressions* like
272
- so:
273
-
274
- [source, yaml]
275
- ----
276
- content:
277
- public:
278
- - ^(\/assets)
279
- - ^(\/pages\/about)
280
- - ^(\/pages\/start)
281
- private:
282
- - ^(\/private)
283
- premium:
284
- - ^(\/premium)
285
- user:
286
- patreon: [ all ]
287
- permission:
288
- patreon: [ private, premium ]
289
- condition:
290
- patreon:
291
- private: false
292
- premium:
293
- pledges: true
294
- ----
295
-
296
- All pages, having a *perma-link* that starts with */premium* needs to be
297
- authenticated via the provider _Patreon_. But access is given only, if
298
- the monthly fee (pleges) were paid for the detected user (profile).
299
-
300
- Provider-based authentication is a simple and powerful method to implement
301
- restrictesd access to protected pages of a web. But it has limitations, no
302
- question. For many standard web sites, static or dynamic, a simple
303
- authorisation scheme fits many, many use cases.
304
-
305
- On other hand, since the link:{wikipedia-en-gdpr}[General Data Protection Regulation]
306
- applies to *all* web sites collecting and/or procession personal data of their
307
- visitors in the European Union, a lot of *legal* constrains are to be taken
308
- into account. *GDPR* is an regulation *framework*, not a clear law-wise
309
- definition.
310
-
311
- A lot is unclear in this area but one thing is for sure: the penalties
312
- are high if a site does *not* apply this rules. If a vistor is using
313
- *provider-based authentication* to get access for the content of a web, it
314
- is very certain that a global service provider is compliant with *GDPR*. As
315
- all users has to agree the conditions, the term of use, implicisely such a web
316
- is *GDPR* compliant -- if additional information is given that personal data
317
- is *used*.
318
-
319
- == Auth Service configuration
320
-
321
- lorem:sentences[5]
322
-
323
- === Service properties
324
-
325
- [source, yaml]
326
- ----
327
- # ---------------------------------------------------------------
328
- # J1 Auth Manager (j1_auth)
329
- #
330
- # If a site is started as an app, this transforms the web into an
331
- # Web Application based on Rack and Sinatra using the Omniauth
332
- # software stack for authentication to enable User Management
333
- # and Authentication services for secured private web sites.
334
- j1_auth:
335
- enabled: true
336
- ssl: false
337
-
338
- content:
339
- public:
340
- - ^(\/assets)
341
- - ^(\/pages\/about)
342
- - ^(\/pages\/start)
343
- private:
344
- - ^(\/private)
345
- premium:
346
- - ^(\/premium)
347
-
348
- provider:
349
- activated: [ disqus, github, patreon ]
350
- home_url:
351
- disqus: https://disqus.com
352
- facebook: https://facebook.com
353
- github: https://github.com
354
- patreon: https://patreon.com
355
- twitter: https://twitter.com
356
- scope:
357
- disqus: [ read, write ]
358
- facebook: [ email ]
359
- github: [ user ]
360
- patreon: [ users ]
361
- twitter: [ user ]
362
- user:
363
- disqus: [ all ]
364
- facebook: [ all ]
365
- github: [ all ]
366
- patreon: [ all ]
367
- twitter: [ all ]
368
- permission:
369
- disqus: [ private ]
370
- facebook: [ private ]
371
- github: [ private ]
372
- patreon: [ private, premium ]
373
- twitter: [ private ]
374
- condition:
375
- disqus: false
376
- facebook: false
377
- github: false
378
- twitter: false
379
- patreon:
380
- private: false
381
- premium:
382
- pledges: true
383
- ----
384
-
385
- ==== enabled
386
-
387
- Enables or disables the Auth Manager services for the web.
388
- If disabled, all pages are accessible without authentication.
389
-
390
- values: true|false
391
- default: false
392
-
393
-
394
- ==== ssl
395
-
396
- Enforce SSL communication for the app. If you've got SSL
397
- set up, ensure SSL is enforced.
398
-
399
- values: true|false
400
- default: false
401
-
402
-
403
- ==== content
404
-
405
- lorem:sentences[5]
406
-
407
- ==== provider
408
-
409
- List of enabled OAuth providers to be used for the auth
410
- service for authentication. The first provider in a list
411
- is used for default.
412
-
413
- ===== activated
414
-
415
- values: [disqus|github|facebook|patreon|twitter]
416
- default:
417
-
418
- ===== home_url
419
-
420
- lorem:sentences[5]
421
-
422
- ===== scope
423
-
424
- lorem:sentences[5]
425
-
426
- ===== user
427
-
428
- lorem:sentences[5]
429
-
430
- ===== permission
431
-
432
- lorem:sentences[5]
433
-
434
- ===== condition
435
-
436
- lorem:sentences[5]
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
-
446
-
447
- == Auth Client configuration
448
-
449
- lorem:sentences[5]
450
-
451
- === Client properties
452
-
453
- [source, yaml]
454
- ----
455
- # ------------------------------------------------------------------------------
456
- # 1. Default settings
457
- #
458
- defaults:
459
- nav_authclient:
460
- enabled: false
461
- icon_family: Material Design Icons
462
- icon_color: rgba_lighten
463
- icon_color_hover: rgba_lighten_900
464
- signin_icon: login
465
- signout_icon: logout
466
- ...
467
- # ------------------------------------------------------------------------------
468
- # 5. Auth client settings
469
- #
470
- nav_authclient:
471
- enabled: true
472
-
473
- auth_signin_modal:
474
- title: SignIn
475
- body_text: >
476
- In order to get <b>signed in</b>, check one of the options below
477
- and mark a provider for authentication.
478
- You'll be <b>redirected</b> to authenticate with the provider
479
- <b>selected</b>. If signed in <b>successfully</b>, you get back
480
- to this site for the page requested.
481
- </br></br>
482
- <b>NOTE:</b> To access protected pages of this site,
483
- authentication is needed only once.
484
- </br></br>
485
-
486
-
487
- auth_signout_modal:
488
- title: SignOut
489
- body_text: >
490
- In order to <b>signing out completely</b>, check the switch
491
- below <b>to on</b>.
492
- After signing out from this site, you'll be <b>redirected</b>
493
- to the provider you're currently authenticated. From your
494
- home page at the provider, you can sign out completely.
495
- auth_disqus:
496
- id: 1
497
- title: Disqus
498
- text: >
499
- SignIn to Disqus. Get access to all <b>PRIVATE</b> content pages.
500
- auth_facebook:
501
- id: 2
502
- title: Facebook
503
- text: >
504
- SignIn to Facebook. Get access to all <b>PRIVATE</b> content pages.
505
- auth_github:
506
- id: 3
507
- title: Github
508
- text: >
509
- SignIn to Github. Get access to all <b>PRIVATE</b> content pages.
510
- auth_patreon:
511
- id: 4
512
- title: Patreon
513
- text: >
514
- SignIn to Patreon. Get access to all <b>PREMIUM</b> and <b>PRIVATE</b> content pages.
515
- auth_twitter:
516
- id: 5
517
- home_url: "https://twitter.com"
518
- title: Twitter
519
- text: >
520
- SignIn to Twitter. Get access to all <b>PRIVATE</b> content pages.
521
- ----
522
-
523
- lorem:sentences[3]
524
-
525
- == Web App configuration
526
-
527
- lorem:sentences[5]
528
-
529
-
530
-
531
- == Configuration Cheat Sheet
532
-
533
- lorem:sentences[5]
534
-
535
-
536
-
537
-
538
-
539
-