chaltron 1.1.6 → 1.1.7
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.
- checksums.yaml +4 -4
- data/app/controllers/chaltron/omniauth_callbacks_controller.rb +4 -7
- data/app/controllers/chaltron/users_controller.rb +10 -0
- data/app/helpers/chaltron/users_helper.rb +12 -7
- data/app/models/user.rb +24 -0
- data/app/views/chaltron/users/show.html.erb +15 -4
- data/app/views/locales/en.yml +2 -0
- data/app/views/locales/it.yml +2 -0
- data/config/initializers/warden.rb +31 -0
- data/config/locales/en.yml +2 -1
- data/config/locales/it.yml +2 -1
- data/config/routes.rb +5 -2
- data/db/migrate/20200414150601_add_enabled_to_users.rb +5 -0
- data/lib/chaltron/version.rb +1 -1
- data/lib/generators/chaltron/install/templates/Procfile +1 -0
- metadata +19 -3
- data/app/controllers/chaltron/sessions_controller.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c903358c42ce7e75e0ecae0e4f87b025e9909f769ec87c7644a02fa36cf8a948
|
4
|
+
data.tar.gz: 5cf855bce93ee306d909091109db3947c279ab284a00e96662b748b17fdb9a2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e272d644dd254dffb34be9997ce334fbd5ce76894c9315933cc8a0ac766c212eeba164c7deffdc93e87ef34e7bc9ae889ebcb249b5b3d99155cc5af6a1cc270
|
7
|
+
data.tar.gz: d5867fa6b7f3e3279db592afada65c3bb85d801a17f604e56c7c660d871e33edc5f0afe7ef3703bfbbaa95074a7223df8d8aca954531e9066da36793decfb943
|
@@ -3,7 +3,7 @@ require 'chaltron/ldap/user'
|
|
3
3
|
module Chaltron
|
4
4
|
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
5
5
|
|
6
|
-
|
6
|
+
default_log_category :login
|
7
7
|
|
8
8
|
def ldap
|
9
9
|
# puts '##########################################'
|
@@ -12,15 +12,12 @@ module Chaltron
|
|
12
12
|
# We only find ourselves here
|
13
13
|
# if the authentication to LDAP was successful.
|
14
14
|
user = Chaltron::LDAP::User.find_or_create(oauth, Chaltron.ldap_allow_all)
|
15
|
-
user = Chaltron.ldap_after_authenticate.call(user, Chaltron::LDAP::Connection.new)
|
16
15
|
if user.nil?
|
17
|
-
redirect_to
|
16
|
+
redirect_to new_user_session_url, alert: I18n.t('chaltron.not_allowed_to_sign_in')
|
18
17
|
else
|
19
18
|
user.remember_me = params[:remember_me] if user.persisted?
|
20
|
-
|
21
|
-
|
22
|
-
info I18n.t('chaltron.logs.login_via', user: user.display_name, provider: 'ldap')
|
23
|
-
sign_in_and_redirect(user)
|
19
|
+
sign_in_and_redirect(user, event: :authentication)
|
20
|
+
set_flash_message(:notice, :success, kind: 'LDAP')
|
24
21
|
end
|
25
22
|
end
|
26
23
|
|
@@ -43,6 +43,16 @@ class Chaltron::UsersController < ApplicationController
|
|
43
43
|
respond_with(@user)
|
44
44
|
end
|
45
45
|
|
46
|
+
def enable
|
47
|
+
@user.enable!
|
48
|
+
redirect_to(@user)
|
49
|
+
end
|
50
|
+
|
51
|
+
def disable
|
52
|
+
@user.disable!
|
53
|
+
redirect_to(@user)
|
54
|
+
end
|
55
|
+
|
46
56
|
def self_update
|
47
57
|
user_params_with_pass = self_update_params.dup.to_h
|
48
58
|
if params[:user][:password].present?
|
@@ -1,11 +1,16 @@
|
|
1
1
|
module Chaltron::UsersHelper
|
2
|
-
def display_username(user)
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
def display_username(user, link = true)
|
3
|
+
capture do
|
4
|
+
if link
|
5
|
+
concat link_to(user.username, user)
|
6
|
+
else
|
7
|
+
concat content_tag(:span, user.username)
|
8
|
+
end
|
9
|
+
concat content_tag(:span, I18n.t('chaltron.users.it_s_you'),
|
10
|
+
class: 'badge badge-success ml-2') if user == current_user
|
11
|
+
concat content_tag :span, t('.disabled'),
|
12
|
+
class: 'badge badge-danger ml-2' if user.disabled?
|
13
|
+
end
|
9
14
|
end
|
10
15
|
|
11
16
|
def display_side_filter_link(url, active, text, count)
|
data/app/models/user.rb
CHANGED
@@ -30,4 +30,28 @@ class User < ApplicationRecord
|
|
30
30
|
provider == 'ldap'
|
31
31
|
end
|
32
32
|
|
33
|
+
def enabled?
|
34
|
+
self.enabled
|
35
|
+
end
|
36
|
+
|
37
|
+
def disabled?
|
38
|
+
!self.enabled
|
39
|
+
end
|
40
|
+
|
41
|
+
def enable!
|
42
|
+
update!(enabled: true)
|
43
|
+
end
|
44
|
+
|
45
|
+
def disable!
|
46
|
+
update!(enabled: false)
|
47
|
+
end
|
48
|
+
|
49
|
+
def active_for_authentication?
|
50
|
+
super && enabled?
|
51
|
+
end
|
52
|
+
|
53
|
+
def inactive_message
|
54
|
+
I18n.t('chaltron.users.inactive_message')
|
55
|
+
end
|
56
|
+
|
33
57
|
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<ul class='list-group list-group-flush'>
|
9
9
|
<li class='list-group-item'>
|
10
10
|
<span><%= User.human_attribute_name(:username) %>: </span>
|
11
|
-
<strong><%= @user
|
11
|
+
<strong><%= display_username(@user, false) %></strong>
|
12
12
|
</li>
|
13
13
|
<li class='list-group-item'>
|
14
14
|
<span><%= User.human_attribute_name(:fullname) %>: </span>
|
@@ -64,9 +64,20 @@
|
|
64
64
|
<% end %>
|
65
65
|
|
66
66
|
<div class='float-right'>
|
67
|
-
|
68
|
-
<%=
|
69
|
-
|
67
|
+
<% if can? :edit, @user %>
|
68
|
+
<%= link_to edit_user_path(@user), class: 'btn btn-primary' do %>
|
69
|
+
<%= icon :fas, :edit, t('.edit') %>
|
70
|
+
<% end %>
|
71
|
+
<% if @user.enabled? %>
|
72
|
+
<%= link_to disable_user_path(@user), class: 'btn btn-danger' do %>
|
73
|
+
<%= icon :fas, 'user-slash', t('.disable') %>
|
74
|
+
<% end %>
|
75
|
+
<% else %>
|
76
|
+
<%= link_to enable_user_path(@user), class: 'btn btn-primary' do %>
|
77
|
+
<%= icon :fas, :user, t('.enable') %>
|
78
|
+
<% end %>
|
79
|
+
<% end %>
|
80
|
+
<% end %>
|
70
81
|
<%= link_to @user, method: :delete, class: 'btn btn-danger',
|
71
82
|
disabled: current_user == @user,
|
72
83
|
data: { confirm: t('.destroy_confirm', user: @user.username) } do %>
|
data/app/views/locales/en.yml
CHANGED
data/app/views/locales/it.yml
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'chaltron/ldap/user'
|
2
|
+
|
3
|
+
Warden::Manager.after_set_user do |record, warden, options|
|
4
|
+
# LDAP callback. Last check before authentication
|
5
|
+
if record && record.ldap_user? &&
|
6
|
+
Chaltron.ldap_after_authenticate.call(record, Chaltron::LDAP::Connection.new).nil?
|
7
|
+
scope = options[:scope]
|
8
|
+
warden.logout(scope)
|
9
|
+
throw :warden, scope: scope, message: I18n.t('chaltron.not_allowed_to_sign_in')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Log after authentication
|
14
|
+
Warden::Manager.after_authentication do |user,auth,opts|
|
15
|
+
Log.create(
|
16
|
+
message: I18n.t('chaltron.logs.login', user: user.display_name),
|
17
|
+
category: :login,
|
18
|
+
severity: :info
|
19
|
+
) if user
|
20
|
+
end
|
21
|
+
|
22
|
+
Warden::Manager.before_logout do |user,auth,opts|
|
23
|
+
# LDAP callback
|
24
|
+
Chaltron.ldap_before_logout.call(user, Chaltron::LDAP::Connection.new) if user.ldap_user?
|
25
|
+
# Log before logout
|
26
|
+
Log.create(
|
27
|
+
message: I18n.t('chaltron.logs.logout', user: user.display_name),
|
28
|
+
category: :login,
|
29
|
+
severity: :info
|
30
|
+
) if user
|
31
|
+
end
|
data/config/locales/en.yml
CHANGED
@@ -23,8 +23,10 @@ en:
|
|
23
23
|
self_updated: Account data successfully updated.
|
24
24
|
cannot_self_destroy: You cannot destroy your own account.
|
25
25
|
it_s_you: It's you!
|
26
|
+
disabled: Disabled
|
26
27
|
missing_field: Missing!
|
27
28
|
already_present: Already present!
|
29
|
+
inactive_message: Your account has been disabled.
|
28
30
|
logs:
|
29
31
|
severity:
|
30
32
|
emerg: Emergency
|
@@ -40,7 +42,6 @@ en:
|
|
40
42
|
user_admin: User administration
|
41
43
|
login: "%{user} has logged in successfully"
|
42
44
|
logout: "%{user} has logged out successfully"
|
43
|
-
login_via: "%{user} has logged in successfully with %{provider}"
|
44
45
|
users:
|
45
46
|
created: "%{current} created user %{user}"
|
46
47
|
destroyed: "%{current} destroyed user %{user}"
|
data/config/locales/it.yml
CHANGED
@@ -23,8 +23,10 @@ it:
|
|
23
23
|
self_updated: Dati personali aggiornati con successo.
|
24
24
|
cannot_self_destroy: Non puoi cancellare il tuo stesso account.
|
25
25
|
it_s_you: Sei tu!
|
26
|
+
disabled: Disabilitato
|
26
27
|
missing_field: Manca!
|
27
28
|
already_present: Giá presente!
|
29
|
+
inactive_message: Il tuo account è stato disabilitato.
|
28
30
|
logs:
|
29
31
|
severity:
|
30
32
|
emerg: Emergenza
|
@@ -40,7 +42,6 @@ it:
|
|
40
42
|
user_admin: Amministrazione utenti
|
41
43
|
login: "%{user} ha effettuato il login con successo"
|
42
44
|
logout: "%{user} ha effettuato il logout con successo"
|
43
|
-
login_via: "%{user} ha effettuato il login con successo via %{provider}"
|
44
45
|
users:
|
45
46
|
created: "%{current} ha creato l'utente %{user}"
|
46
47
|
destroyed: "%{current} ha cancellato l'utente %{user}"
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
devise_for :users, controllers: {
|
3
|
-
omniauth_callbacks: 'chaltron/omniauth_callbacks'
|
4
|
-
sessions: 'chaltron/sessions'
|
3
|
+
omniauth_callbacks: 'chaltron/omniauth_callbacks'
|
5
4
|
}
|
6
5
|
|
7
6
|
resources :users, controller: 'chaltron/users' do
|
@@ -10,6 +9,10 @@ Rails.application.routes.draw do
|
|
10
9
|
get 'self_edit'
|
11
10
|
patch 'self_update'
|
12
11
|
end
|
12
|
+
member do
|
13
|
+
get 'enable'
|
14
|
+
get 'disable'
|
15
|
+
end
|
13
16
|
end
|
14
17
|
|
15
18
|
resources :logs, controller: 'chaltron/logs', only: [:index, :show]
|
data/lib/chaltron/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
webpacker: ./bin/webpack-dev-server
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chaltron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vicvega
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: omniauth-rails_csrf_protection
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: gitlab_omniauth-ldap
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -397,7 +411,6 @@ files:
|
|
397
411
|
- app/controllers/chaltron/ldap_controller.rb
|
398
412
|
- app/controllers/chaltron/logs_controller.rb
|
399
413
|
- app/controllers/chaltron/omniauth_callbacks_controller.rb
|
400
|
-
- app/controllers/chaltron/sessions_controller.rb
|
401
414
|
- app/controllers/chaltron/users_controller.rb
|
402
415
|
- app/datatables/log_datatable.rb
|
403
416
|
- app/helpers/chaltron/ldap_helper.rb
|
@@ -435,6 +448,7 @@ files:
|
|
435
448
|
- app/views/locales/it.yml
|
436
449
|
- config/chaltron_navigation.rb
|
437
450
|
- config/initializers/devise.rb
|
451
|
+
- config/initializers/warden.rb
|
438
452
|
- config/locales/devise.en.yml
|
439
453
|
- config/locales/devise.it.yml
|
440
454
|
- config/locales/en.yml
|
@@ -446,6 +460,7 @@ files:
|
|
446
460
|
- db/migrate/20140909115653_add_roles_mask_to_users.rb
|
447
461
|
- db/migrate/20141205095036_add_additional_ldap_info_to_user.rb
|
448
462
|
- db/migrate/20150127174621_create_logs.rb
|
463
|
+
- db/migrate/20200414150601_add_enabled_to_users.rb
|
449
464
|
- lib/chaltron.rb
|
450
465
|
- lib/chaltron/banner.rb
|
451
466
|
- lib/chaltron/bootstrap_form.rb
|
@@ -455,6 +470,7 @@ files:
|
|
455
470
|
- lib/chaltron/ldap/person.rb
|
456
471
|
- lib/chaltron/ldap/user.rb
|
457
472
|
- lib/chaltron/version.rb
|
473
|
+
- lib/generators/chaltron/install/templates/Procfile
|
458
474
|
- lib/generators/chaltron/install_generator.rb
|
459
475
|
- lib/generators/chaltron/templates/app/assets/images/700x300.gif
|
460
476
|
- lib/generators/chaltron/templates/app/assets/images/favicon.ico
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'chaltron/ldap/connection'
|
2
|
-
|
3
|
-
class Chaltron::SessionsController < Devise::SessionsController
|
4
|
-
after_action :after_login, only: :create
|
5
|
-
before_action :before_logout, only: :destroy
|
6
|
-
|
7
|
-
default_log_category :login
|
8
|
-
|
9
|
-
def after_login
|
10
|
-
info I18n.t('chaltron.logs.login', user: current_user.display_name)
|
11
|
-
end
|
12
|
-
|
13
|
-
def before_logout
|
14
|
-
Chaltron.ldap_before_logout.call(current_user, Chaltron::LDAP::Connection.new) if current_user.ldap_user?
|
15
|
-
info I18n.t('chaltron.logs.logout', user: current_user.display_name)
|
16
|
-
end
|
17
|
-
end
|