kowl 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +7 -0
- data/README.md +383 -0
- data/bin/console +14 -0
- data/bin/kowl +106 -0
- data/bin/setup +13 -0
- data/lib/kowl/actions.rb +240 -0
- data/lib/kowl/docker.rb +447 -0
- data/lib/kowl/generators/README.md +5 -0
- data/lib/kowl/generators/action_generator.rb +113 -0
- data/lib/kowl/generators/admin_generator.rb +114 -0
- data/lib/kowl/generators/assets_generator.rb +188 -0
- data/lib/kowl/generators/base.rb +40 -0
- data/lib/kowl/generators/circleci_generator.rb +11 -0
- data/lib/kowl/generators/config_generator.rb +180 -0
- data/lib/kowl/generators/controller_generator.rb +64 -0
- data/lib/kowl/generators/database_generator.rb +42 -0
- data/lib/kowl/generators/decorators_generator.rb +16 -0
- data/lib/kowl/generators/docker_generator.rb +40 -0
- data/lib/kowl/generators/dotfiles_generator.rb +73 -0
- data/lib/kowl/generators/libs_generator.rb +19 -0
- data/lib/kowl/generators/mailer_generator.rb +58 -0
- data/lib/kowl/generators/misc_generator.rb +20 -0
- data/lib/kowl/generators/overrides/app_base.rb +15 -0
- data/lib/kowl/generators/overrides/app_builder.rb +58 -0
- data/lib/kowl/generators/overrides/app_generator.rb +249 -0
- data/lib/kowl/generators/pages_generator.rb +46 -0
- data/lib/kowl/generators/routes_generator.rb +20 -0
- data/lib/kowl/generators/sidekiq_generator.rb +31 -0
- data/lib/kowl/generators/staging_generator.rb +14 -0
- data/lib/kowl/generators/test_generator.rb +42 -0
- data/lib/kowl/generators/text_files_generator.rb +41 -0
- data/lib/kowl/generators/users_and_auth_generator.rb +143 -0
- data/lib/kowl/generators/uuid_generator.rb +39 -0
- data/lib/kowl/generators/views_and_helpers_generator.rb +104 -0
- data/lib/kowl/geodb.rb +96 -0
- data/lib/kowl/helpers.rb +139 -0
- data/lib/kowl/templates/Gemfile.erb.tt +253 -0
- data/lib/kowl/templates/README.md.erb +33 -0
- data/lib/kowl/templates/app/assets/javascripts/semantic.js.tt +26 -0
- data/lib/kowl/templates/app/assets/stylesheets/administrate/application.scss +44 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/_custom_styling.scss +38 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application-mailer.scss +1 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/application.scss +14 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_alerts.scss +7 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_errors.scss +28 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/components/_navbar.scss +17 -0
- data/lib/kowl/templates/app/assets/stylesheets/bootstrap/variables.scss +6 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/_custom_styling.scss +20 -0
- data/lib/kowl/templates/app/assets/stylesheets/semantic/application.scss +24 -0
- data/lib/kowl/templates/app/controllers/admin/application_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/login_activities_controller.rb +29 -0
- data/lib/kowl/templates/app/controllers/admin/users_controller.rb +37 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authentication.rb +18 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/authorization.rb +20 -0
- data/lib/kowl/templates/app/controllers/concerns/auth/error_handlers.rb +27 -0
- data/lib/kowl/templates/app/controllers/concerns/noauth/error_handlers.rb +25 -0
- data/lib/kowl/templates/app/controllers/users_controller.rb +17 -0
- data/lib/kowl/templates/app/dashboards/login_activity_dashboard.rb.tt +59 -0
- data/lib/kowl/templates/app/dashboards/rich_text_body_dashboard.rb.tt +17 -0
- data/lib/kowl/templates/app/dashboards/user_dashboard.rb.tt +60 -0
- data/lib/kowl/templates/app/fields/gravatar_field.rb +10 -0
- data/lib/kowl/templates/app/fields/rich_text_area_field.rb +8 -0
- data/lib/kowl/templates/app/inputs/rich_text_area_input.rb +11 -0
- data/lib/kowl/templates/app/javascript/administrate/components/date_time_picker.js.tt +32 -0
- data/lib/kowl/templates/app/javascript/administrate/components/table.js.tt +49 -0
- data/lib/kowl/templates/app/javascript/administrate/index.js +3 -0
- data/lib/kowl/templates/app/javascript/packs/administrate.js.tt +21 -0
- data/lib/kowl/templates/app/javascript/packs/semantic.js +11 -0
- data/lib/kowl/templates/app/mailers/application_mailer.rb +7 -0
- data/lib/kowl/templates/app/mailers/devise_mailer.rb +5 -0
- data/lib/kowl/templates/app/models/login_activity.rb.tt +29 -0
- data/lib/kowl/templates/app/models/user.rb.tt +72 -0
- data/lib/kowl/templates/app/policies/application_policy.rb +38 -0
- data/lib/kowl/templates/app/policies/login_activity_policy.rb +35 -0
- data/lib/kowl/templates/app/policies/user_policy.rb +43 -0
- data/lib/kowl/templates/app/views/admin/templates/navigation.erb.tt +23 -0
- data/lib/kowl/templates/app/views/admin/views/application/_javascript.html.erb +21 -0
- data/lib/kowl/templates/app/views/admin/views/users/_collection.html.erb +102 -0
- data/lib/kowl/templates/app/views/admin/views/users/_form.html.erb +46 -0
- data/lib/kowl/templates/app/views/admin/views/users/edit.html.erb +36 -0
- data/lib/kowl/templates/app/views/admin/views/users/index.html.erb +66 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/gravatar_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_form.html.erb +6 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_index.html.erb +1 -0
- data/lib/kowl/templates/app/views/fields/rich_text_area_field/_show.html.erb +1 -0
- data/lib/kowl/templates/app/views/layouts/admin.html.erb.tt +47 -0
- data/lib/kowl/templates/app/views/layouts/devise_mailer.html.erb +14 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.erb +18 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/bootstrap.html.slim +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.erb +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.haml +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/default.html.slim +0 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.erb +20 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.haml +17 -0
- data/lib/kowl/templates/app/views/pages/welcome/semantic.html.slim +17 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.erb.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.haml.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/bootstrap.html.slim.tt +3 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.erb.tt +7 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.haml.tt +5 -0
- data/lib/kowl/templates/app/views/shared/footer/semantic.html.slim.tt +5 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.erb.tt +51 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/bootstrap.html.slim.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.erb.tt +48 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.haml.tt +36 -0
- data/lib/kowl/templates/app/views/shared/navigation/semantic.html.slim.tt +36 -0
- data/lib/kowl/templates/app/workers/scheduler/pghero_scheduler.rb +11 -0
- data/lib/kowl/templates/config/autoprefixer.yml +4 -0
- data/lib/kowl/templates/config/db/mysql.yml.tt +43 -0
- data/lib/kowl/templates/config/db/oracle.yml.tt +29 -0
- data/lib/kowl/templates/config/db/postgresql.yml.tt +37 -0
- data/lib/kowl/templates/config/db/sqlite3.yml.tt +20 -0
- data/lib/kowl/templates/config/db/sqlserver.yml.tt +28 -0
- data/lib/kowl/templates/config/initializers/administrate.rb.tt +9 -0
- data/lib/kowl/templates/config/initializers/bullet.rb +21 -0
- data/lib/kowl/templates/config/initializers/devise-security.rb +44 -0
- data/lib/kowl/templates/config/initializers/devise_argon2.rb +29 -0
- data/lib/kowl/templates/config/initializers/faker.rb +6 -0
- data/lib/kowl/templates/config/initializers/generators.rb.tt +31 -0
- data/lib/kowl/templates/config/initializers/geocoder.rb +10 -0
- data/lib/kowl/templates/config/initializers/letter_opener.rb +13 -0
- data/lib/kowl/templates/config/initializers/lockbox.rb +11 -0
- data/lib/kowl/templates/config/initializers/logging.rb +6 -0
- data/lib/kowl/templates/config/initializers/lograge.rb +7 -0
- data/lib/kowl/templates/config/initializers/logstop.rb +4 -0
- data/lib/kowl/templates/config/initializers/middleware.rb +9 -0
- data/lib/kowl/templates/config/initializers/oj.rb +7 -0
- data/lib/kowl/templates/config/initializers/pagy.rb.tt +16 -0
- data/lib/kowl/templates/config/initializers/postmark.rb +8 -0
- data/lib/kowl/templates/config/initializers/rack_attack.rb.tt +71 -0
- data/lib/kowl/templates/config/initializers/sass.rb +5 -0
- data/lib/kowl/templates/config/initializers/sidekiq.rb +11 -0
- data/lib/kowl/templates/config/initializers/simpleform/semantic.rb +225 -0
- data/lib/kowl/templates/config/initializers/slim.rb +6 -0
- data/lib/kowl/templates/config/initializers/sparkpost.rb +13 -0
- data/lib/kowl/templates/config/routes.rb.tt +28 -0
- data/lib/kowl/templates/config/sidekiq.yml.tt +17 -0
- data/lib/kowl/templates/db/migrations/create_action_text_tables.action_text.rb.tt +16 -0
- data/lib/kowl/templates/db/migrations/create_active_storage_tables.active_storage.rb.tt +29 -0
- data/lib/kowl/templates/db/migrations/devise.rb.tt +59 -0
- data/lib/kowl/templates/db/migrations/login_activities.rb.tt +41 -0
- data/lib/kowl/templates/db/seeds.rb.tt +14 -0
- data/lib/kowl/templates/docker/Dockerfile.alpine.tt +92 -0
- data/lib/kowl/templates/docker/Dockerfile.debian.tt +133 -0
- data/lib/kowl/templates/docker/docker-compose.yml.tt +55 -0
- data/lib/kowl/templates/docker/mysql/Dockerfile.tt +15 -0
- data/lib/kowl/templates/dotfiles/Aptfile.tt +34 -0
- data/lib/kowl/templates/dotfiles/Brewfile.tt +49 -0
- data/lib/kowl/templates/dotfiles/Procfile.tt +12 -0
- data/lib/kowl/templates/dotfiles/codeclimate.yml +76 -0
- data/lib/kowl/templates/dotfiles/coffeelint.json +10 -0
- data/lib/kowl/templates/dotfiles/coffeelintignore +15 -0
- data/lib/kowl/templates/dotfiles/dockerignore +23 -0
- data/lib/kowl/templates/dotfiles/editorconfig +13 -0
- data/lib/kowl/templates/dotfiles/env.tt +58 -0
- data/lib/kowl/templates/dotfiles/erb-lint.yml +10 -0
- data/lib/kowl/templates/dotfiles/erdconfig.tt +24 -0
- data/lib/kowl/templates/dotfiles/eslintignore +20 -0
- data/lib/kowl/templates/dotfiles/eslintrc.js +31 -0
- data/lib/kowl/templates/dotfiles/fasterer.yml +14 -0
- data/lib/kowl/templates/dotfiles/foreman +1 -0
- data/lib/kowl/templates/dotfiles/gitattributes +15 -0
- data/lib/kowl/templates/dotfiles/gitignore +69 -0
- data/lib/kowl/templates/dotfiles/haml-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/jsbeautifyrc +15 -0
- data/lib/kowl/templates/dotfiles/jshintrc +3 -0
- data/lib/kowl/templates/dotfiles/mailmap +3 -0
- data/lib/kowl/templates/dotfiles/nvmrc +1 -0
- data/lib/kowl/templates/dotfiles/prettierignore +21 -0
- data/lib/kowl/templates/dotfiles/prettierrc.js +62 -0
- data/lib/kowl/templates/dotfiles/pryrc +7 -0
- data/lib/kowl/templates/dotfiles/rspec +3 -0
- data/lib/kowl/templates/dotfiles/rubocop.yml.tt +78 -0
- data/lib/kowl/templates/dotfiles/scss-lint.yml +132 -0
- data/lib/kowl/templates/dotfiles/simplecov +19 -0
- data/lib/kowl/templates/dotfiles/slim-lint.yml +23 -0
- data/lib/kowl/templates/dotfiles/slugignore +10 -0
- data/lib/kowl/templates/dotfiles/yamllint +7 -0
- data/lib/kowl/templates/dotfiles/yarnclean +46 -0
- data/lib/kowl/templates/lib/tasks/stats.rake +42 -0
- data/lib/kowl/templates/tests/factories/README.md +0 -0
- data/lib/kowl/templates/tests/factories/login_activity.rb +11 -0
- data/lib/kowl/templates/tests/factories/user.rb +11 -0
- data/lib/kowl/templates/tests/minitest/README.md +3 -0
- data/lib/kowl/templates/tests/minitest/application_system_test_case.rb +7 -0
- data/lib/kowl/templates/tests/minitest/controllers/pages_controller_test.rb +10 -0
- data/lib/kowl/templates/tests/minitest/models/login_activity_test.rb +8 -0
- data/lib/kowl/templates/tests/minitest/models/user_test.rb +15 -0
- data/lib/kowl/templates/tests/minitest/policies/login_activity_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/policies/user_policy_test.rb +7 -0
- data/lib/kowl/templates/tests/minitest/support/capybara.rb +38 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner.rb +20 -0
- data/lib/kowl/templates/tests/minitest/support/database_cleaner_support.rb +15 -0
- data/lib/kowl/templates/tests/minitest/support/deferred_garbage_collection.rb +21 -0
- data/lib/kowl/templates/tests/minitest/support/devise.rb +16 -0
- data/lib/kowl/templates/tests/minitest/support/factories.rb +6 -0
- data/lib/kowl/templates/tests/minitest/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/minitest/support/helpers/devise_helper.rb +57 -0
- data/lib/kowl/templates/tests/minitest/support/papertrail.rb +17 -0
- data/lib/kowl/templates/tests/minitest/support/pundit.rb +0 -0
- data/lib/kowl/templates/tests/minitest/support/shoulda.rb +11 -0
- data/lib/kowl/templates/tests/minitest/support/simplecov.rb +8 -0
- data/lib/kowl/templates/tests/minitest/test_helper.rb +17 -0
- data/lib/kowl/templates/tests/rspec/README.md +9 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/application_controller_spec.rb +12 -0
- data/lib/kowl/templates/tests/rspec/controllers/admin/users_controller_spec.rb +14 -0
- data/lib/kowl/templates/tests/rspec/controllers/pages_controller_spec.rb +10 -0
- data/lib/kowl/templates/tests/rspec/features/README.md +15 -0
- data/lib/kowl/templates/tests/rspec/features/visitor_sign_up_spec.rb +25 -0
- data/lib/kowl/templates/tests/rspec/helpers/application_helper_spec.rb +7 -0
- data/lib/kowl/templates/tests/rspec/helpers/pages_helper_spec.rb +15 -0
- data/lib/kowl/templates/tests/rspec/models/login_activity_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/models/user_spec.rb +21 -0
- data/lib/kowl/templates/tests/rspec/policies/login_activity_policy_spec.rb +59 -0
- data/lib/kowl/templates/tests/rspec/policies/user_policy_spec.rb +56 -0
- data/lib/kowl/templates/tests/rspec/rails_helper.rb +72 -0
- data/lib/kowl/templates/tests/rspec/requests/pages_spec.rb +11 -0
- data/lib/kowl/templates/tests/rspec/spec_helper.rb +96 -0
- data/lib/kowl/templates/tests/rspec/support/bullet.rb +17 -0
- data/lib/kowl/templates/tests/rspec/support/capybara.rb +37 -0
- data/lib/kowl/templates/tests/rspec/support/controller_testing.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/database_cleaner.rb +55 -0
- data/lib/kowl/templates/tests/rspec/support/deferred_garbage_collection.rb +32 -0
- data/lib/kowl/templates/tests/rspec/support/devise.rb +21 -0
- data/lib/kowl/templates/tests/rspec/support/factories.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/formulaic.rb +8 -0
- data/lib/kowl/templates/tests/rspec/support/helpers/devise_helpers.rb +56 -0
- data/lib/kowl/templates/tests/rspec/support/papertrail.rb +5 -0
- data/lib/kowl/templates/tests/rspec/support/pi_ci.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/pundit.rb +6 -0
- data/lib/kowl/templates/tests/rspec/support/shoulda.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/sidekiq.rb +10 -0
- data/lib/kowl/templates/tests/rspec/support/simplecov.rb +7 -0
- data/lib/kowl/templates/tests/rspec/support/warden.rb +8 -0
- data/lib/kowl/templates/text_files/AUTHORS.md +4 -0
- data/lib/kowl/templates/text_files/CHANGELOG.md.tt +12 -0
- data/lib/kowl/templates/text_files/CODE_OF_CONDUCT.md +76 -0
- data/lib/kowl/templates/text_files/TODO.md +7 -0
- data/lib/kowl/templates/text_files/VERSION +1 -0
- data/lib/kowl/templates/text_files/humans.txt.tt +15 -0
- data/lib/kowl/templates/text_files/robots.txt.tt +6 -0
- data/lib/kowl/templates/text_files/security.txt +6 -0
- data/lib/kowl/version.rb +9 -0
- data/lib/kowl.rb +18 -0
- metadata +404 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
h2 = title('Welcome')
|
2
|
+
p.lead
|
3
|
+
| Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
4
|
+
| Mauris maximus vulputate gravida.
|
5
|
+
| Integer eget mauris at orci molestie porta.
|
6
|
+
|
7
|
+
p
|
8
|
+
| In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
|
9
|
+
| Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
|
10
|
+
| Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
|
11
|
+
| Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
|
12
|
+
| Duis non accumsan lacus.
|
13
|
+
| Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
|
14
|
+
| Maecenas ac est purus. Aliquam erat volutpat.
|
15
|
+
| Vestibulum tempus pharetra viverra.
|
16
|
+
| Etiam vestibulum et elit in vulputate.
|
17
|
+
| Quisque eget elementum purus, id volutpat augue.
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<section>
|
2
|
+
<h2><%= title('Weclome') %></h2>
|
3
|
+
<p>
|
4
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
5
|
+
Mauris maximus vulputate gravida.
|
6
|
+
Integer eget mauris at orci molestie porta.
|
7
|
+
</p>
|
8
|
+
<p>
|
9
|
+
In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
|
10
|
+
Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
|
11
|
+
Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
|
12
|
+
Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
|
13
|
+
Duis non accumsan lacus.
|
14
|
+
Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
|
15
|
+
Maecenas ac est purus. Aliquam erat volutpat.
|
16
|
+
Vestibulum tempus pharetra viverra.
|
17
|
+
Etiam vestibulum et elit in vulputate.
|
18
|
+
Quisque eget elementum purus, id volutpat augue.
|
19
|
+
</p>
|
20
|
+
</section>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
%section
|
2
|
+
%h2= title('Weclome')
|
3
|
+
%p
|
4
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
5
|
+
Mauris maximus vulputate gravida.
|
6
|
+
Integer eget mauris at orci molestie porta.
|
7
|
+
%p
|
8
|
+
In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
|
9
|
+
Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
|
10
|
+
Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
|
11
|
+
Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
|
12
|
+
Duis non accumsan lacus.
|
13
|
+
Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
|
14
|
+
Maecenas ac est purus. Aliquam erat volutpat.
|
15
|
+
Vestibulum tempus pharetra viverra.
|
16
|
+
Etiam vestibulum et elit in vulputate.
|
17
|
+
Quisque eget elementum purus, id volutpat augue.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
section
|
2
|
+
h2 = title('Weclome')
|
3
|
+
p
|
4
|
+
| Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
5
|
+
| Mauris maximus vulputate gravida.
|
6
|
+
| Integer eget mauris at orci molestie porta.
|
7
|
+
p
|
8
|
+
| In scelerisque leo vitae lacus commodo, eu tincidunt nisi suscipit.
|
9
|
+
| Pellentesque at sapien duiDuis sit amet arcu non ante sodales varius.
|
10
|
+
| Fusce nibh nulla, mollis a dolor eu, iaculis pharetra lectus.
|
11
|
+
| Sed turpis quam, imperdiet ut faucibus sit amet, efficitur ut nulla.
|
12
|
+
| Duis non accumsan lacus.
|
13
|
+
| Vestibulum nec diam quis dui convallis rhoncus quis sit amet massa.
|
14
|
+
| Maecenas ac est purus. Aliquam erat volutpat.
|
15
|
+
| Vestibulum tempus pharetra viverra.
|
16
|
+
| Etiam vestibulum et elit in vulputate.
|
17
|
+
| Quisque eget elementum purus, id volutpat augue.
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
2
|
+
<%%= link_to '/', class: 'navbar-brand' do %><%= app_name.titleize %><%% end %>
|
3
|
+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
4
|
+
<span class="navbar-toggler-icon"></span>
|
5
|
+
</button>
|
6
|
+
<div class="collapse navbar-collapse" id="navbarNav">
|
7
|
+
<ul class="navbar-nav">
|
8
|
+
<li class="nav-item active">
|
9
|
+
<a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
|
10
|
+
</li>
|
11
|
+
<li class="nav-item">
|
12
|
+
<a class="nav-link" href="#">Features</a>
|
13
|
+
</li>
|
14
|
+
<li class="nav-item">
|
15
|
+
<a class="nav-link" href="#">Pricing</a>
|
16
|
+
</li>
|
17
|
+
<li class="nav-item">
|
18
|
+
<a class="nav-link disabled" href="#">Disabled</a>
|
19
|
+
</li>
|
20
|
+
</ul>
|
21
|
+
|
22
|
+
<%- unless options[:noauth] -%>
|
23
|
+
<ul class="nav navbar-nav ml-auto">
|
24
|
+
<%%- if user_signed_in? %>
|
25
|
+
<%%- if current_user.staff_member? %>
|
26
|
+
<li class="nav-item">
|
27
|
+
<%%= link_to 'admin', admin_root_path, class: 'nav-link' %>
|
28
|
+
</li>
|
29
|
+
<%% end %>
|
30
|
+
<li class="nav-item dropdown">
|
31
|
+
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
32
|
+
<%%= current_user.email %>
|
33
|
+
</a>
|
34
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
|
35
|
+
<%%= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item' %>
|
36
|
+
<%%- if current_user != true_user %>
|
37
|
+
<%%= link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do %>
|
38
|
+
<%%== "#{icon('fas','theater-masks')} Stop Impersonating" %>
|
39
|
+
<%% end %>
|
40
|
+
<%%- end %>
|
41
|
+
<div class="dropdown-divider"></div>
|
42
|
+
<%%= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item' %>
|
43
|
+
</div>
|
44
|
+
</li>
|
45
|
+
<%%- else %>
|
46
|
+
<li><%%= link_to('Login', new_user_session_path, class: 'nav-item nav-link') %></li>
|
47
|
+
<%%- end %>
|
48
|
+
</ul>
|
49
|
+
<%- end -%>
|
50
|
+
</div>
|
51
|
+
</nav>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
%nav.navbar.navbar-expand-lg.navbar-light.bg-light
|
2
|
+
= link_to '/', class: 'navbar-brand' do
|
3
|
+
= '<%= app_name.titleize %>'
|
4
|
+
%button.navbar-toggler{"aria-controls" => "navbarNav", "aria-expanded" => "false", "aria-label" => "Toggle navigation", "data-target" => "#navbarNav", "data-toggle" => "collapse", :type => "button"}
|
5
|
+
%span.navbar-toggler-icon
|
6
|
+
#navbarNav.collapse.navbar-collapse
|
7
|
+
%ul.navbar-nav
|
8
|
+
%li.nav-item.active
|
9
|
+
%a.nav-link{:href => "/"}
|
10
|
+
Home
|
11
|
+
%span.sr-only (current)
|
12
|
+
%li.nav-item
|
13
|
+
%a.nav-link{:href => "#"} Features
|
14
|
+
%li.nav-item
|
15
|
+
%a.nav-link{:href => "#"} Pricing
|
16
|
+
%li.nav-item
|
17
|
+
%a.nav-link.disabled{:href => "#"} Disabled
|
18
|
+
<%- unless options[:noauth] -%>
|
19
|
+
%ul.nav.navbar-nav.ml-auto
|
20
|
+
- if user_signed_in?
|
21
|
+
- if current_user.staff_member?
|
22
|
+
%li.nav-item
|
23
|
+
= link_to 'admin', admin_root_path, class: 'nav-link'
|
24
|
+
%li.nav-item.dropdown
|
25
|
+
%a#navbarDropdown.nav-link.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "#", :role => "button"}
|
26
|
+
= current_user.email
|
27
|
+
.dropdown-menu.dropdown-menu-right{"aria-labelledby" => "navbarDropdown"}
|
28
|
+
= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item'
|
29
|
+
- if current_user != true_user
|
30
|
+
= link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do
|
31
|
+
== "#{icon('fas','theater-masks')} Stop Impersonating"
|
32
|
+
.dropdown-divider
|
33
|
+
= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item'
|
34
|
+
- else
|
35
|
+
%li= link_to('Login', new_user_session_path, class: 'nav-item nav-link')
|
36
|
+
<%- end -%>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
nav.navbar.navbar-expand-lg.navbar-light.bg-light
|
2
|
+
= link_to '/', class: 'navbar-brand' do
|
3
|
+
= '<%= app_name.titleize %>'
|
4
|
+
button.navbar-toggler aria-controls="navbarNav" aria-expanded="false" aria-label=("Toggle navigation") data-target="#navbarNav" data-toggle="collapse" type="button"
|
5
|
+
span.navbar-toggler-icon
|
6
|
+
#navbarNav.collapse.navbar-collapse
|
7
|
+
ul.navbar-nav
|
8
|
+
li.nav-item.active
|
9
|
+
a.nav-link href="/"
|
10
|
+
| Home
|
11
|
+
span.sr-only (current)
|
12
|
+
li.nav-item
|
13
|
+
a.nav-link href="#" Features
|
14
|
+
li.nav-item
|
15
|
+
a.nav-link href="#" Pricing
|
16
|
+
li.nav-item
|
17
|
+
a.nav-link.disabled href="#" Disabled
|
18
|
+
<%- unless options[:noauth] -%>
|
19
|
+
ul.nav.navbar-nav.ml-auto
|
20
|
+
- if user_signed_in?
|
21
|
+
- if current_user.staff_member?
|
22
|
+
li.nav-item
|
23
|
+
= link_to 'admin', admin_root_path, class: 'nav-link'
|
24
|
+
li.nav-item.dropdown
|
25
|
+
a#navbarDropdown.nav-link.dropdown-toggle aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"
|
26
|
+
= current_user.email
|
27
|
+
.dropdown-menu.dropdown-menu-right aria-labelledby="navbarDropdown"
|
28
|
+
= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'dropdown-item'
|
29
|
+
- if current_user != true_user
|
30
|
+
= link_to stop_impersonating_users_path, method: :post, class: 'dropdown-item', title: 'Stop impersonating user' do
|
31
|
+
== "#{icon('fas','theater-masks')} Stop Impersonating"
|
32
|
+
.dropdown-divider
|
33
|
+
= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'dropdown-item'
|
34
|
+
- else
|
35
|
+
li= link_to('Login', new_user_session_path, class: 'nav-item nav-link')
|
36
|
+
<%- end -%>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<div class="ui fixed inverted menu">
|
2
|
+
<div class="menu">
|
3
|
+
<%%= link_to '/', class: 'header item' do %><%= app_name.titleize %><%%- end %>
|
4
|
+
<a href="/" class="item">Home</a>
|
5
|
+
<div class="ui simple dropdown item">
|
6
|
+
Dropdown <i class="dropdown icon"></i>
|
7
|
+
<div class="menu">
|
8
|
+
<a class="item" href="#">Link Item</a>
|
9
|
+
<a class="item" href="#">Link Item</a>
|
10
|
+
<div class="divider"></div>
|
11
|
+
<div class="header">Header Item</div>
|
12
|
+
<div class="item">
|
13
|
+
<i class="dropdown icon"></i>
|
14
|
+
Sub Menu
|
15
|
+
<div class="menu">
|
16
|
+
<a class="item" href="#">Link Item</a>
|
17
|
+
<a class="item" href="#">Link Item</a>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<a class="item" href="#">Link Item</a>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<%- unless options[:noauth] -%>
|
25
|
+
<div class="right menu">
|
26
|
+
<%% if user_signed_in? %>
|
27
|
+
<%%- if current_user.staff_member? %>
|
28
|
+
<%%= link_to 'admin', admin_root_path, class: 'item' %>
|
29
|
+
<%%- end -%>
|
30
|
+
<div class="ui simple dropdown item">
|
31
|
+
<span class="current_user"><%%= current_user.email %></span> <i class="dropdown icon"></i>
|
32
|
+
<div class="menu">
|
33
|
+
<%%= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item' %>
|
34
|
+
<%%- if current_user != true_user %>
|
35
|
+
<%%= link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do %>
|
36
|
+
<%%== "#{icon('fas','theater-masks')} Stop Impersonating" %>
|
37
|
+
<%% end %>
|
38
|
+
<%%- end %>
|
39
|
+
<div class="divider"></div>
|
40
|
+
<%%= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item' %>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
<%% else %>
|
44
|
+
<%%= link_to('Login', new_user_session_path, class: 'item') %>
|
45
|
+
<%% end %>
|
46
|
+
</div>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.ui.fixed.inverted.menu
|
2
|
+
.menu
|
3
|
+
= link_to '<%= app_name.titleize %>', '/', class: 'header item'
|
4
|
+
%a.item{:href => "/"} Home
|
5
|
+
.ui.simple.dropdown.item
|
6
|
+
Dropdown
|
7
|
+
%i.dropdown.icon
|
8
|
+
.menu
|
9
|
+
%a.item{:href => "#"} Link Item
|
10
|
+
%a.item{:href => "#"} Link Item
|
11
|
+
.divider
|
12
|
+
.header Header Item
|
13
|
+
.item
|
14
|
+
%i.dropdown.icon Sub Menu
|
15
|
+
.menu
|
16
|
+
%a.item{:href => "#"} Link Item
|
17
|
+
%a.item{:href => "#"} Link Item
|
18
|
+
%a.item{:href => "#"} Link Item
|
19
|
+
<%- unless options[:noauth] -%>
|
20
|
+
.right.menu
|
21
|
+
- if user_signed_in?
|
22
|
+
- if current_user.staff_member?
|
23
|
+
= link_to 'admin', admin_root_path, class: 'item'
|
24
|
+
.ui.simple.dropdown.item
|
25
|
+
%span.current_user= current_user.email
|
26
|
+
%i.dropdown.icon
|
27
|
+
.menu
|
28
|
+
= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item'
|
29
|
+
- if current_user != true_user
|
30
|
+
= link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do
|
31
|
+
== #{icon('fas','theater-masks')} Stop Impersonating
|
32
|
+
.divider
|
33
|
+
= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item'
|
34
|
+
- else
|
35
|
+
= link_to('Login', new_user_session_path, class: 'item')
|
36
|
+
<%- end -%>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.ui.fixed.inverted.menu
|
2
|
+
.menu
|
3
|
+
= link_to '/', class: 'header item' do
|
4
|
+
= app_name.titleize
|
5
|
+
a.item href="/" Home
|
6
|
+
.ui.simple.dropdown.item Dropdown
|
7
|
+
i.dropdown.icon
|
8
|
+
.menu
|
9
|
+
a.item href="#" Link Item
|
10
|
+
a.item href="#" Link Item
|
11
|
+
.divider
|
12
|
+
.header Header Item
|
13
|
+
.item
|
14
|
+
i.dropdown.icon Sub Menu
|
15
|
+
.menu
|
16
|
+
a.item href="#" Link Item
|
17
|
+
a.item href="#" Link Item
|
18
|
+
a.item href="#" Link Item
|
19
|
+
<%- unless options[:noauth] %>
|
20
|
+
.right.menu
|
21
|
+
- if user_signed_in?
|
22
|
+
- if current_user.staff_member?
|
23
|
+
= link_to 'admin', admin_root_path, class: 'item'
|
24
|
+
.ui.simple.dropdown.item
|
25
|
+
span.current_user= current_user.email
|
26
|
+
i.dropdown.icon
|
27
|
+
.menu
|
28
|
+
= link_to "#{icon('fas', 'user-circle mr-1')} Edit Account".html_safe, edit_user_registration_path, class: 'item'
|
29
|
+
- if current_user != true_user
|
30
|
+
= link_to stop_impersonating_users_path, method: :post, class: 'item', title: 'Stop impersonating user' do
|
31
|
+
== "#{icon('fas','theater-masks')} Stop Impersonating"
|
32
|
+
.divider
|
33
|
+
= link_to "#{icon('fas', 'sign-out-alt mr-1')} Logout".html_safe, destroy_user_session_path, method: :delete, class: 'item'
|
34
|
+
- else
|
35
|
+
= link_to('Login', new_user_session_path, class: 'item')
|
36
|
+
<%- end -%>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: mysql2
|
3
|
+
encoding: utf8mb4
|
4
|
+
collation: utf8mb4_bin
|
5
|
+
reconnect: false
|
6
|
+
pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
|
7
|
+
username: <%%= ENV.fetch('DB_USER') { 'root' } %>
|
8
|
+
password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
|
9
|
+
host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
|
10
|
+
port: <%= ENV.fetch('DB_PORT') { '3306' } %>
|
11
|
+
<% if mysql_socket -%>
|
12
|
+
socket: <%= mysql_socket %>
|
13
|
+
<% end -%>
|
14
|
+
|
15
|
+
development:
|
16
|
+
<<: *default
|
17
|
+
database: <%= app_name %>_development
|
18
|
+
|
19
|
+
staging:
|
20
|
+
<<: *default
|
21
|
+
database: <%= app_name %>_staging
|
22
|
+
|
23
|
+
production:
|
24
|
+
<<: *default
|
25
|
+
database: <%= app_name %>_production
|
26
|
+
username: <%= app_name %>
|
27
|
+
password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
|
28
|
+
# https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts/#mysql
|
29
|
+
# If you're using maria chance this to (max_statement_time: 5)
|
30
|
+
connect_timeout: 1
|
31
|
+
read_timeout: 1
|
32
|
+
write_timeout: 1
|
33
|
+
checkout_timeout: 5
|
34
|
+
variables:
|
35
|
+
max_execution_time: 5000 # ms, for MySQL 5.7.8 or higher
|
36
|
+
max_statement_time: 5 # sec, for MariaDB 10.1.1 or higher
|
37
|
+
|
38
|
+
# Warning: The database defined as "test" will be erased and
|
39
|
+
# re-generated from your development database when you run "rake".
|
40
|
+
# Do not set this db to the same as development or production.
|
41
|
+
test:
|
42
|
+
<<: *default
|
43
|
+
database: <%= app_name %>_test
|
@@ -0,0 +1,29 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: oracle_enhanced
|
3
|
+
pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
|
4
|
+
timeout: 5000
|
5
|
+
username: <%%= ENV.fetch('DB_USER') { 'system' } %>
|
6
|
+
password: <%%= ENV.fetch('DB_PASSWORD') { 'oracle' } %>
|
7
|
+
host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
|
8
|
+
database: <%%= ENV.fetch('DB_SID') { 'xe' } %>
|
9
|
+
|
10
|
+
development:
|
11
|
+
<<: *default
|
12
|
+
# database: <%= app_name %>_development
|
13
|
+
|
14
|
+
staging:
|
15
|
+
<<: *default
|
16
|
+
# database: <%= app_name %>_staging
|
17
|
+
|
18
|
+
production:
|
19
|
+
<<: *default
|
20
|
+
database: <%= app_name %>_production
|
21
|
+
username: <%= app_name %>
|
22
|
+
password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
|
23
|
+
|
24
|
+
# Warning: The database defined as "test" will be erased and
|
25
|
+
# re-generated from your development database when you run "rake".
|
26
|
+
# Do not set this db to the same as development or production.
|
27
|
+
test:
|
28
|
+
<<: *default
|
29
|
+
database: <%= app_name %>_test
|
@@ -0,0 +1,37 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: postgresql
|
3
|
+
encoding: unicode
|
4
|
+
# For details on connection pooling, see Rails configuration guide
|
5
|
+
# https://guides.rubyonrails.org/configuring.html#database-pooling
|
6
|
+
pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
|
7
|
+
timeout: <%%= ENV.fetch('DB_TIMEOUT', 3).to_i.seconds %>
|
8
|
+
username: <%%= ENV.fetch('DB_USER') { 'postgres' } %>
|
9
|
+
password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
|
10
|
+
host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
|
11
|
+
|
12
|
+
development:
|
13
|
+
<<: *default
|
14
|
+
database: <%= app_name %>_development
|
15
|
+
|
16
|
+
staging:
|
17
|
+
<<: *default
|
18
|
+
database: <%= app_name %>_staging
|
19
|
+
|
20
|
+
# if you use pgbounder you need to disable prepared_statements -> https://edgeguides.rubyonrails.org/configuring.html#configuring-a-postgresql-database
|
21
|
+
production:
|
22
|
+
<<: *default
|
23
|
+
database: <%= app_name %>_production
|
24
|
+
username: <%= app_name %>
|
25
|
+
password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
|
26
|
+
# https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts/#statement-timeouts-1
|
27
|
+
connect_timeout: 2
|
28
|
+
checkout_timeout: 5
|
29
|
+
variables:
|
30
|
+
statement_timeout: 5000
|
31
|
+
|
32
|
+
# Warning: The database defined as "test" will be erased and
|
33
|
+
# re-generated from your development database when you run "rake".
|
34
|
+
# Do not set this db to the same as development or production.
|
35
|
+
test:
|
36
|
+
<<: *default
|
37
|
+
database: <%= app_name %>_test
|
@@ -0,0 +1,20 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: sqlite3
|
3
|
+
pool: <%%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
|
4
|
+
timeout: 5000
|
5
|
+
|
6
|
+
development:
|
7
|
+
<<: *default
|
8
|
+
database: db/development.sqlite3
|
9
|
+
|
10
|
+
staging:
|
11
|
+
<<: *default
|
12
|
+
database: db/staging.sqlite3
|
13
|
+
|
14
|
+
test:
|
15
|
+
<<: *default
|
16
|
+
database: db/test.sqlite3
|
17
|
+
|
18
|
+
production:
|
19
|
+
<<: *default
|
20
|
+
database: db/production.sqlite3
|
@@ -0,0 +1,28 @@
|
|
1
|
+
default: &default
|
2
|
+
adapter: sqlserver
|
3
|
+
encoding: utf8
|
4
|
+
username: <%%= ENV.fetch('DB_USER') { 'sa' } %>
|
5
|
+
password: <%%= ENV.fetch('DB_PASSWORD') { 'password' } %>
|
6
|
+
host: <%%= ENV.fetch('DB_HOST') { 'localhost' } %>
|
7
|
+
|
8
|
+
development:
|
9
|
+
<<: *default
|
10
|
+
database: <%= app_name %>_development
|
11
|
+
|
12
|
+
staging:
|
13
|
+
<<: *default
|
14
|
+
database: <%= app_name %>_staging
|
15
|
+
|
16
|
+
|
17
|
+
production:
|
18
|
+
<<: *default
|
19
|
+
database: <%= app_name %>_production
|
20
|
+
username: <%= app_name %>
|
21
|
+
password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
|
22
|
+
|
23
|
+
# Warning: The database defined as "test" will be erased and
|
24
|
+
# re-generated from your development database when you run "rake".
|
25
|
+
# Do not set this db to the same as development or production.
|
26
|
+
test:
|
27
|
+
<<: *default
|
28
|
+
database: <%= app_name %>_test
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if defined?(Bullet)
|
4
|
+
if Rails.env.development?
|
5
|
+
Rails.application.config.after_initialize do
|
6
|
+
Bullet.enable = true
|
7
|
+
Bullet.bullet_logger = true
|
8
|
+
Bullet.rails_logger = true
|
9
|
+
# Bullet.add_footer = true
|
10
|
+
Bullet.unused_eager_loading_enable = false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
if Rails.env.test?
|
15
|
+
Rails.application.config.after_initialize do
|
16
|
+
Bullet.enable = true
|
17
|
+
Bullet.bullet_logger = true
|
18
|
+
Bullet.raise = true # raise an error if n+1 query occurs
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Devise.setup do |config|
|
4
|
+
# ==> Security Extension
|
5
|
+
# Configure security extension for devise
|
6
|
+
|
7
|
+
# Should the password expire (e.g 3.months)
|
8
|
+
# config.expire_password_after = false
|
9
|
+
|
10
|
+
# Need 1 char of A-Z, a-z and 0-9
|
11
|
+
config.password_complexity = { digit: 1, lower: 1, symbol: 1, upper: 1 }
|
12
|
+
|
13
|
+
# How many passwords to keep in archive
|
14
|
+
# config.password_archiving_count = 5
|
15
|
+
|
16
|
+
# Deny old passwords (true, false, number_of_old_passwords_to_check)
|
17
|
+
# Examples:
|
18
|
+
# config.deny_old_passwords = false # allow old passwords
|
19
|
+
# config.deny_old_passwords = true # will deny all the old passwords
|
20
|
+
# config.deny_old_passwords = 3 # will deny new passwords that matches with the last 3 passwords
|
21
|
+
# config.deny_old_passwords = true
|
22
|
+
|
23
|
+
# enable email validation for :secure_validatable. (true, false, validation_options)
|
24
|
+
# dependency: see https://github.com/devise-security/devise-security/blob/master/README.md#e-mail-validation
|
25
|
+
config.email_validation = true
|
26
|
+
|
27
|
+
# captcha integration for recover form
|
28
|
+
# config.captcha_for_recover = true
|
29
|
+
|
30
|
+
# captcha integration for sign up form
|
31
|
+
# config.captcha_for_sign_up = true
|
32
|
+
|
33
|
+
# captcha integration for sign in form
|
34
|
+
# config.captcha_for_sign_in = true
|
35
|
+
|
36
|
+
# captcha integration for unlock form
|
37
|
+
# config.captcha_for_unlock = true
|
38
|
+
|
39
|
+
# captcha integration for confirmation form
|
40
|
+
# config.captcha_for_confirmation = true
|
41
|
+
|
42
|
+
# Time period for account expiry from last_activity_at
|
43
|
+
# config.expire_after = 90.days
|
44
|
+
end
|