ditty 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -7
  3. data/.travis.yml +5 -5
  4. data/Gemfile.ci +2 -0
  5. data/Rakefile +4 -3
  6. data/Readme.md +24 -2
  7. data/ditty.gemspec +4 -3
  8. data/lib/ditty.rb +24 -0
  9. data/lib/ditty/cli.rb +6 -2
  10. data/lib/ditty/components/app.rb +10 -1
  11. data/lib/ditty/controllers/application.rb +72 -10
  12. data/lib/ditty/controllers/audit_logs.rb +1 -5
  13. data/lib/ditty/controllers/auth.rb +37 -17
  14. data/lib/ditty/controllers/component.rb +15 -5
  15. data/lib/ditty/controllers/main.rb +1 -5
  16. data/lib/ditty/controllers/roles.rb +2 -5
  17. data/lib/ditty/controllers/user_login_traits.rb +18 -0
  18. data/lib/ditty/controllers/users.rb +4 -9
  19. data/lib/ditty/db.rb +3 -1
  20. data/lib/ditty/emails/base.rb +13 -4
  21. data/lib/ditty/helpers/authentication.rb +6 -5
  22. data/lib/ditty/helpers/component.rb +9 -1
  23. data/lib/ditty/helpers/response.rb +24 -3
  24. data/lib/ditty/helpers/views.rb +20 -0
  25. data/lib/ditty/listener.rb +38 -10
  26. data/lib/ditty/middleware/accept_extension.rb +2 -0
  27. data/lib/ditty/middleware/error_catchall.rb +2 -0
  28. data/lib/ditty/models/audit_log.rb +1 -0
  29. data/lib/ditty/models/base.rb +4 -0
  30. data/lib/ditty/models/identity.rb +3 -0
  31. data/lib/ditty/models/role.rb +1 -0
  32. data/lib/ditty/models/user.rb +9 -1
  33. data/lib/ditty/models/user_login_trait.rb +17 -0
  34. data/lib/ditty/policies/audit_log_policy.rb +6 -6
  35. data/lib/ditty/policies/role_policy.rb +2 -2
  36. data/lib/ditty/policies/user_login_trait_policy.rb +45 -0
  37. data/lib/ditty/policies/user_policy.rb +2 -2
  38. data/lib/ditty/rubocop.rb +3 -0
  39. data/lib/ditty/seed.rb +2 -0
  40. data/lib/ditty/services/authentication.rb +7 -2
  41. data/lib/ditty/services/email.rb +8 -2
  42. data/lib/ditty/services/logger.rb +11 -0
  43. data/lib/ditty/services/pagination_wrapper.rb +2 -0
  44. data/lib/ditty/services/settings.rb +14 -3
  45. data/lib/ditty/tasks/ditty.rake +109 -0
  46. data/lib/ditty/tasks/omniauth-ldap.rake +43 -0
  47. data/lib/ditty/version.rb +1 -1
  48. data/lib/rubocop/cop/ditty/call_services_directly.rb +42 -0
  49. data/migrate/20181209_add_user_login_traits.rb +16 -0
  50. data/migrate/20181209_extend_audit_log.rb +12 -0
  51. data/views/403.haml +2 -0
  52. data/views/audit_logs/index.haml +11 -6
  53. data/views/auth/ldap.haml +17 -0
  54. data/views/emails/forgot_password.haml +1 -1
  55. data/views/emails/layouts/action.haml +10 -6
  56. data/views/emails/layouts/alert.haml +2 -1
  57. data/views/emails/layouts/billing.haml +2 -1
  58. data/views/error.haml +8 -3
  59. data/views/partials/form_control.haml +24 -20
  60. data/views/partials/navbar.haml +11 -12
  61. data/views/partials/sidebar.haml +1 -1
  62. data/views/roles/index.haml +2 -0
  63. data/views/user_login_traits/display.haml +32 -0
  64. data/views/user_login_traits/edit.haml +10 -0
  65. data/views/user_login_traits/form.haml +5 -0
  66. data/views/user_login_traits/index.haml +30 -0
  67. data/views/user_login_traits/new.haml +10 -0
  68. data/views/users/display.haml +1 -1
  69. data/views/users/login_traits.haml +27 -0
  70. data/views/users/profile.haml +2 -0
  71. metadata +50 -21
  72. data/lib/ditty/rake_tasks.rb +0 -102
@@ -1,102 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rake'
4
- require 'rake/tasklib'
5
- require 'ditty/db' unless defined? DB
6
-
7
- module Ditty
8
- class Tasks < ::Rake::TaskLib
9
- include ::Rake::DSL if defined?(::Rake::DSL)
10
-
11
- def install_tasks
12
- namespace :ditty do
13
- desc 'Generate the needed tokens'
14
- task :generate_tokens do
15
- puts 'Generating the Ditty tokens'
16
- require 'securerandom'
17
- File.write('.session_secret', SecureRandom.random_bytes(40)) unless File.file?('.session_secret')
18
- File.write('.token_secret', SecureRandom.random_bytes(40)) unless File.file?('.token_secret')
19
- end
20
-
21
- desc 'Seed the Ditty database'
22
- task :seed do
23
- puts 'Seeding the Ditty database'
24
- require 'ditty/seed'
25
- end
26
-
27
- desc 'Prepare Ditty'
28
- task :prep do
29
- puts 'Prepare the Ditty folders'
30
- Dir.mkdir 'pids' unless File.exist?('pids')
31
-
32
- puts 'Preparing the Ditty public folder'
33
- Dir.mkdir 'public' unless File.exist?('public')
34
- ::Ditty::Components.public_folder.each do |path|
35
- puts "Checking #{path}"
36
- FileUtils.cp_r "#{path}/.", 'public' unless File.expand_path("#{path}/.").eql? File.expand_path('public')
37
- end
38
-
39
- puts 'Preparing the Ditty migrations folder'
40
- Dir.mkdir 'migrations' unless File.exist?('migrations')
41
- ::Ditty::Components.migrations.each do |path|
42
- FileUtils.cp_r "#{path}/.", 'migrations' unless File.expand_path("#{path}/.").eql? File.expand_path('migrations')
43
- end
44
- puts 'Migrations added:'
45
- Dir.foreach('migrations').sort.each { |x| puts x if File.file?("migrations/#{x}") && x[-3..-1] == '.rb' }
46
- end
47
-
48
- desc 'Migrate Ditty database to latest version'
49
- task :migrate do
50
- puts 'Running the Ditty migrations'
51
- Rake::Task['ditty:migrate:up'].invoke
52
- end
53
-
54
- namespace :migrate do
55
- require 'logger'
56
-
57
- folder = 'migrations'
58
-
59
- desc 'Check if the migration is current'
60
- task :check do
61
- ::DB.loggers << Logger.new($stdout) if ::DB.loggers.count.zero?
62
- puts 'Running Ditty Migrations check'
63
- ::Sequel.extension :migration
64
- begin
65
- ::Sequel::Migrator.check_current(::DB, folder)
66
- puts 'Migrations up to date'
67
- rescue Sequel::Migrator::Error => _e
68
- puts 'Migrations NOT up to date'
69
- end
70
- end
71
-
72
- desc 'Migrate Ditty database to latest version'
73
- task :up do
74
- ::DB.loggers << Logger.new($stdout) if ::DB.loggers.count.zero?
75
- puts 'Running Ditty Migrations up'
76
- ::Sequel.extension :migration
77
- ::Sequel::Migrator.apply(::DB, folder)
78
- end
79
-
80
- desc 'Remove the whole Ditty database. You WILL lose data'
81
- task :down do
82
- ::DB.loggers << Logger.new($stdout) if ::DB.loggers.count.zero?
83
- puts 'Running Ditty Migrations down'
84
- ::Sequel.extension :migration
85
- ::Sequel::Migrator.apply(::DB, folder, 0)
86
- end
87
-
88
- desc 'Reset the Ditty database. You WILL lose data'
89
- task :bounce do
90
- ::DB.loggers << Logger.new($stdout) if ::DB.loggers.count.zero?
91
- puts 'Running Ditty Migrations bounce'
92
- ::Sequel.extension :migration
93
- ::Sequel::Migrator.apply(::DB, folder, 0)
94
- ::Sequel::Migrator.apply(::DB, folder)
95
- end
96
- end
97
- end
98
- end
99
- end
100
- end
101
-
102
- Ditty::Tasks.new.install_tasks