ditty 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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