devise-automaticlogout 0.1.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 60c16b638b9295ea0c311d1017b1f87a92b77637
4
- data.tar.gz: 3b6bbc12b9e7f595f1af9241bc71c335f37e2e9c
2
+ SHA256:
3
+ metadata.gz: aca65c04b699ce7cb31abf9b49dab1febc2a4f482f625e287e9ae3f719c2d1aa
4
+ data.tar.gz: cb44d36d8a3b55fbdd67bd08d0a08f8c8d5d5ba6da4cfbcdc0f6270030413dc7
5
5
  SHA512:
6
- metadata.gz: 3731202a8922acc897e944296e9fa90ab21fdf927f29b7618bdbc939fe7a2822bdc66394e57a0f852ceb1d8a296ce3a164a874ae73d1f43e12b8865a7767f890
7
- data.tar.gz: 0e0ef041a0dbe58c85015c9a318640db805f52c69a6713ea89c78524bd6066f707241027286d761ff86b0629a565219c74390590340d9c29b2a4e8ab8df9d795
6
+ metadata.gz: dc5dfb45b4b13ffef4a0fab14e88c8b5c68890b494f09da2a739dac22c16a8625fd73472e72685edba97c6bf940680e72c60188de2faac834e433e705e60ead9
7
+ data.tar.gz: 686250322f63cb25a803b2f004da123a1b5643efca8f1dbb6e794198b073d01487928012949af72c09ab17a84276d04bd5c22bfbf98479e1b38274f9413a678f
data/README.md CHANGED
@@ -1,47 +1,128 @@
1
1
  # Devise Automatic Logout
2
+
2
3
  By Thadeu Esteves Jr.
3
4
 
4
- Provides automatic session timeout in a Rails application. Very easy to install and configure. Have you ever wanted to force your users off your app if they go idle for a certain period of time? Many online banking sites use this technique. If your app is used on any kind of public computer system, this plugin is a necessity.
5
+ Provê um logout automático da sessão numa aplicação Rails utilizando Devise. É simples e fácil.
6
+ Faz com que a sessão seja destruída após a conclusão do tempo estipulado. É de grande ajuda em sistemas que necessitam de sessão auto destrutiva, evitando de o usuário ficar logado por muito tempo de forma ociosa.
7
+
8
+ ## O que isso faz?
9
+
10
+ * Força o usuário a sair da sessão (logout)
11
+ * Opção de mostrar um timer regressivo
12
+ * Opção de dar um alerta na tela ao ser deslogado
13
+
14
+ ## Começando
15
+
16
+ Adicione ao seu Gemfile
17
+
18
+ ```ruby
19
+ gem 'devise-automaticlogout', '~> 1.0.1'
20
+ ```
21
+
22
+ Rode o `bundle install`
23
+
24
+ ## Configure o controller
25
+
26
+ No controller que você deseja aplicar o timer para o devise, use:
27
+
28
+ ```ruby
29
+ devise_automatic_logout
30
+ ```
31
+
32
+ Por exemplo, para o comum ApplicationController, poderia ser
33
+
34
+ ```ruby
35
+ class ApplicationController < ActionController::Base
36
+ devise_automatic_logout
37
+ end
38
+ ```
39
+
40
+ Isso por si só, já prepara a aplicação para ler os dados do `Devise#timeout_in`, utilizando o scope padrão `user` e uma mensagem padrão de alerta.
41
+
42
+ Mas se você quiser, configurar um tempo diferente do timeout_in do devise? Fácil, use o seguinte:
43
+
44
+ ```ruby
45
+ devise_automatic_logout time: 1.hour.to_i
46
+ ```
47
+
48
+ Isso vai aplicar 1 hora para o logout automático.
49
+
50
+ Mas e se você quiser colocar outra mensagem? Fácil, use o seguinte:
51
+
52
+ ```ruby
53
+ devise_automatic_logout time: 1.hour.to_i, message: 'SUA MENSAGEM'
54
+ ```
5
55
 
6
- * Force your users power off session
7
- * show for they the regressive time
56
+ Mas e se você quiser fazer, com que seja utilizado outro tipo de mapping do devise? Fácil, use o seguinte:
8
57
 
9
- ## Getting started
58
+ ```ruby
59
+ devise_automatic_logout scope: 'member'
60
+ ```
10
61
 
11
- You can add it to your Gemfile with:
62
+ É possível também utilizar todos de uma vez só, por exemplo
12
63
 
13
64
  ```ruby
14
- gem 'devise-automaticlogout'
65
+ devise_automatic_logout time: 15.minutes.to_i, message: 'Sua sessão expirou! Faça login novamente.', scope: 'member'
15
66
  ```
16
67
 
17
- Then run bundle install
68
+ __OBS: Quando o `time` não é passado, o timeout_in do devise será aplicado, se configurado, é claro!__
18
69
 
19
- ## How to use?
70
+ ## Configurando Timeoutable
20
71
 
21
- ## Configure Timeoutable in /config/initializers/devise.rb
72
+ Veja na documentação do próprio devise como fazer isso.
22
73
 
23
- Besides :stretches, you can define :pepper, :encryptor, :confirm_within, :remember_for, :timeout_in, :unlock_in among other options. For more details, see the initializer file that was created when you invoked the "devise:install" generator described above. This file is usually located at /config/initializers/devise.rb.
74
+ [Configurar o tempo](https://github.com/plataformatec/devise#configuring-models)
24
75
 
25
- [Configure time](https://github.com/plataformatec/devise#configuring-models)
76
+ [Mais informações sobre Timeoutable](http://www.rubydoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable)
26
77
 
27
- [More informations](http://www.rubydoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable)
78
+ ## Configurando o timer regressivo (OBRIGATÓRIO)
28
79
 
29
- ### Configure Javascript
30
- Add in your application.js this require
80
+ Esse helper deve ser usado em qualquer view, ele é importante, pois tudo será baseado nele
81
+
82
+ ```ruby
83
+ <%= regressive_timer visible: true, alert: true %>
84
+ ```
85
+
86
+ * visible: mostra um timer regressivo
87
+ * alert: lança um `window.alert` se ativado, ao final do timer
88
+
89
+ ## Configurando Javascript
90
+
91
+ Adicione no seu application.js, o seguinte:
31
92
 
32
93
  ```javascript
33
94
  //= require automatic_logout
34
95
  ```
35
- ### Configure View (OPTIONAL)
36
96
 
37
- Use Helper in your view, for show regressive timer. Add this in your file application.html.erb
97
+ Se você usa vanilla js, adicionar também o seguinte:
38
98
 
39
- ```ruby
40
- <%= regressive_timer %>
99
+ ```javascript
100
+ //= require automatic_logout/classic
101
+ ```
102
+
103
+ Se você usa jQuery, use:
104
+
105
+ ```javascript
106
+ //= require automatic_logout/jquery
107
+ ```
108
+
109
+ Se você usa Turbolinks mais atual, use:
110
+
111
+ ```javascript
112
+ //= require automatic_logout/turbolinks
41
113
  ```
42
114
 
43
- ## TODO
115
+ Se você usa Turbolinks mais antigo, use:
44
116
 
117
+ ```javascript
118
+ //= require automatic_logout/turbolinks-classic
119
+ ```
120
+
121
+ Se preferir, use manualmente em algum momento desejado
122
+
123
+ ```javascript
124
+ AutomaticLogout.load();
125
+ ```
45
126
 
46
127
  ## Contributing
47
128
 
@@ -0,0 +1,9 @@
1
+ class AutomaticlogoutController < ::ApplicationController
2
+ def destroy
3
+ session[:devise_autl_seconds] = nil
4
+ session[:live] = !current_user.nil?
5
+ reset_session
6
+
7
+ redirect_to '/', notice: session[:devise_autl_message]
8
+ end
9
+ end
@@ -1,4 +1,9 @@
1
- <div class="regressive-timer"
2
- data-seconds="<%= session[:seconds] %>"
3
- data-message="<%= session[:message] %>">
4
- </div>
1
+ <% unless request.env["devise.skip_timeout"] %>
2
+ <span class="regressive-timer"
3
+ style="<%= "display: #{visible ? 'block' : 'none'}" %>"
4
+ data-visible="<%= visible %>"
5
+ data-alert="<%= alert.presence || false %>"
6
+ data-seconds="<%= session[:devise_autl_seconds] %>"
7
+ data-message="<%= session[:devise_autl_message] %>">
8
+ </span>
9
+ <% end %>
@@ -1,4 +1,3 @@
1
1
  Rails.application.routes.draw do
2
- get 'devise/automatic_logout/status' => 'application#automatic_logout_status'
3
- get 'devise/automatic_logout/destroy' => 'application#automatic_logout_destroy'
2
+ get 'automatic_logout/destroy' => 'automaticlogout#destroy'
4
3
  end
@@ -2,72 +2,105 @@
2
2
  * Module AutomaticLogout for JS Files
3
3
  * @type {[type]}
4
4
  */
5
- var AutomaticLogout = AutomaticLogout || {};
5
+ window.AutomaticLogout = {};
6
6
 
7
- $(document).ready(function(){
8
- // Change to $() for document.querySelector(".regressive-timer")
9
- var $regressiveTimer = $('.regressive-timer');
7
+ AutomaticLogout.load = function () {
8
+ var $regressiveTimer = document.querySelectorAll(".regressive-timer")[0];
10
9
 
11
- ($regressiveTimer.length > 0 &&
12
- $regressiveTimer.data('expires-at') !== '')
13
- ? AutomaticLogout.regressiveTimer()
14
- : AutomaticLogout.ajaxSessionTimeout();
15
- });
10
+ if (!!$regressiveTimer && $regressiveTimer.dataset.seconds != "") {
11
+ console.log("[AutomaticLogout] regressiveTimer started");
12
+ AutomaticLogout.regressiveTimer();
13
+ }
14
+ };
16
15
 
17
16
  /**
18
17
  * Send request for destroy session current_user
19
18
  * @return {[type]} [description]
20
19
  */
21
- AutomaticLogout.destroySession = function(){
22
- return window.location.href = '/devise/automatic_logout/destroy';
23
- }
20
+ AutomaticLogout.destroySession = function (message) {
21
+ var xhr = new XMLHttpRequest();
22
+ xhr.open("GET", "/automatic_logout/destroy", true);
23
+
24
+ xhr.onload = function () {
25
+ if (xhr.status == 200) {
26
+ var $wrapper = document.querySelectorAll(".regressive-timer")[0];
27
+
28
+ if ($wrapper && eval($wrapper.dataset.alert) && message) {
29
+ window.alert(message);
30
+ }
31
+
32
+ return (window.location.href = "/");
33
+ }
34
+ };
35
+ xhr.send();
36
+ };
24
37
 
25
38
  /**
26
39
  * Method regressive time based in session auto expired at.
27
40
  * @param {[type]} date_session [description]
28
41
  * @return {[type]} [description]
29
42
  */
30
- AutomaticLogout.regressiveTimer = function(){;
43
+ AutomaticLogout.regressiveTimer = function () {
44
+ /**
45
+ * Define o que vai ser impresso no DOM.
46
+ * @param {DOM Object} container
47
+ * @param {Boolean} visible
48
+ * @param {String} textContent
49
+ */
50
+ var visibleTimer = function (container, visible, textContent) {
51
+ if (!visible) visible = "false";
52
+ if (!textContent) textContent = "00:00:00";
53
+
54
+ if (visible == "true") {
55
+ return (container.textContent = textContent);
56
+ }
57
+ };
58
+
31
59
  /**
32
60
  * Variables used
33
61
  * @param {[type]} '.regressive-timer' [description]
34
62
  * @return {[type]} [description]
35
63
  */
36
- var data_message = $('.regressive-timer').data('message'),
37
- data_seconds = $('.regressive-timer').data('seconds'),
38
- current_time = new Date().getTime();
64
+ var $regressiveTimer = document.querySelector(".regressive-timer"),
65
+ data_message = String($regressiveTimer.dataset.message),
66
+ data_seconds = Number($regressiveTimer.dataset.seconds),
67
+ current_time = new Date().getTime();
68
+
69
+ visibleTimer($regressiveTimer, $regressiveTimer.dataset.visible);
39
70
 
40
71
  var time_expired = new Date();
41
72
  time_expired.setSeconds(time_expired.getSeconds() + data_seconds);
42
73
 
43
- if (data_seconds != 0 && data_seconds != ''){
44
- var timerDecrement = setInterval(function(){
45
-
46
- if (data_seconds == 0) {
47
- clearInterval(timerDecrement);
48
-
74
+ if (data_seconds != 0 && data_seconds != "") {
75
+ var timerDecrement = setInterval(function () {
76
+ if (data_seconds == 0) {
77
+ clearInterval(timerDecrement);
49
78
  // limpa a sessão após o ok
50
- if (confirm(data_message)) {
51
- AutomaticLogout.destroySession();
52
- };
53
- }else{
79
+ AutomaticLogout.destroySession(data_message);
80
+ } else {
54
81
  //tempo descrecente
55
82
  time_expired.setSeconds(time_expired.getSeconds() - 1);
56
-
57
- var
58
- // converte pra segundos
59
- seconds_integer = (time_expired.getTime() - current_time) / 1000,
60
- //faz o parse
61
- date_format = AutomaticLogout.parseDate(seconds_integer);
62
-
63
- // atualiza o DOM
64
- $('.regressive-timer').text(date_format.hours + ':' + date_format.minutes + ':' + date_format.seconds);
83
+
84
+ var seconds_integer = (time_expired.getTime() - current_time) / 1000,
85
+ date_format = AutomaticLogout.parseDate(seconds_integer),
86
+ output_date_format =
87
+ date_format.hours +
88
+ ":" +
89
+ date_format.minutes +
90
+ ":" +
91
+ date_format.seconds;
92
+
93
+ visibleTimer(
94
+ $regressiveTimer,
95
+ $regressiveTimer.dataset.visible,
96
+ output_date_format
97
+ );
65
98
  }
66
-
99
+
67
100
  data_seconds -= 1;
68
- }, 1000)
101
+ }, 1000);
69
102
  }
70
- }
103
+ };
71
104
 
72
105
  /**
73
106
  * Parse Date
@@ -79,12 +112,8 @@ AutomaticLogout.regressiveTimer = function(){;
79
112
  * seconds: seconds
80
113
  * }
81
114
  */
82
- AutomaticLogout.parseDate = function(seconds_float){
83
-
84
- var days,
85
- hours,
86
- minutes,
87
- seconds;
115
+ AutomaticLogout.parseDate = function (seconds_float) {
116
+ var days, hours, minutes, seconds;
88
117
 
89
118
  days = parseInt(seconds_float / 86400);
90
119
  seconds_float = seconds_float % 86400;
@@ -95,57 +124,24 @@ AutomaticLogout.parseDate = function(seconds_float){
95
124
  minutes = parseInt(seconds_float / 60);
96
125
  seconds = parseInt(seconds_float % 60);
97
126
 
98
- if(hours < 10){
99
- hours = "0"+hours;
127
+ if (hours < 10) {
128
+ hours = "0" + hours;
100
129
  hours = hours.substr(0, 2);
101
130
  }
102
131
 
103
- if(minutes < 10){
104
- minutes = "0"+minutes;
132
+ if (minutes < 10) {
133
+ minutes = "0" + minutes;
105
134
  minutes = minutes.substr(0, 2);
106
135
  }
107
136
 
108
- if(seconds <=9){
109
- seconds = "0"+seconds;
137
+ if (seconds <= 9) {
138
+ seconds = "0" + seconds;
110
139
  }
111
140
 
112
141
  return {
113
142
  days: days,
114
143
  hours: hours,
115
144
  minutes: minutes,
116
- seconds: seconds
117
- }
118
- }
119
-
120
- /**
121
- * Method for request ajax, check value e logout
122
- * @return {[type]} [description]
123
- */
124
- AutomaticLogout.ajaxSessionTimeout = function(){
125
- setTimeout(function () {
126
- //TODO: Change to ES6/7 fetch() feature
127
- $.ajax({
128
- url: '/devise/automatic_logout/status',
129
- success: function(data) {
130
- if (data.seconds !== "null" && data.live === true){
131
-
132
- var data_message = data.message, data_seconds = data.seconds;
133
-
134
- if (data_seconds != 0 && data_seconds != ''){
135
- var timerDecrement = setInterval(function(){
136
- if (data_seconds == 0) {
137
- clearInterval(timerDecrement);
138
- // limpa a sessão após o ok do alertify
139
- if (confirm(data_message)) {
140
- AutomaticLogout.destroySession();
141
- }
142
- }
143
-
144
- data_seconds -= 1;
145
- }, 1000)
146
- }
147
- }
148
- }
149
- });
150
- }, 1000); //1s
151
- };
145
+ seconds: seconds,
146
+ };
147
+ };
@@ -0,0 +1,4 @@
1
+ // sem turbolinks
2
+ document.addEventListener('DOMContentLoaded', function () {
3
+ AutomaticLogout.load();
4
+ })
@@ -0,0 +1,4 @@
1
+ // jquery ready
2
+ $(document).on('page:change turbolinks:load',function(){
3
+ AutomaticLogout.load();
4
+ })
@@ -0,0 +1,5 @@
1
+ // rails 4
2
+ // turbolinks-classic
3
+ document.addEventListener('page:change', function(){
4
+ AutomaticLogout.load();
5
+ })
@@ -0,0 +1,5 @@
1
+ // rails 5 >
2
+ // turbolinks 5
3
+ document.addEventListener('turbolinks:load', function(){
4
+ AutomaticLogout.load();
5
+ })
@@ -1,35 +1,31 @@
1
1
  module Devise
2
- module AutomaticLogout
2
+ module Automaticlogout
3
3
  module Controllers
4
4
  extend ActiveSupport::Concern
5
5
 
6
- included do
7
- ::ApplicationController.before_action do |c|
8
- if current_user.present?
9
- key_classify = Devise.mappings.keys.first
10
- resource_name = Devise.mappings[key_classify].class_name.to_s
11
- # get instance for class using devise
12
- c.session[:seconds] = resource_name.classify.constantize.timeout_in.seconds.to_i
13
- # I18n.t devise.automaticlogout.message
14
- c.session[:message] = I18n.t 'devise.automaticlogout.message' || 'Session expired!'
15
- end
16
- end
6
+ DEFAULT_MESSAGE = 'Session expired! You will be redirect.'.freeze
17
7
 
18
- ::ApplicationController.send :define_method, :automatic_logout_status do
19
- Rails.logger.info 'Sessão atualizada'
20
- render json: {
21
- live: !current_user.nil?,
22
- message: session[:message],
23
- seconds: session[:seconds]
24
- }, status: :ok
25
- end
8
+ module ClassMethods
9
+ def devise_automatic_logout(options = {})
10
+ prepend_before_action do |c|
11
+ time = options.fetch(:time, nil)
12
+ message = options.fetch(:message, DEFAULT_MESSAGE)
13
+ scope = options.fetch(:scope, 'user')
26
14
 
27
- ::ApplicationController.send :define_method, :automatic_logout_destroy do
28
- Rails.logger.info 'Sessão destruída'
29
- session[:seconds] = ''
30
- session[:live] = !current_user.nil?
31
- reset_session
32
- redirect_to '/', notice: session[:message]
15
+ seconds = if time&.positive?
16
+ time
17
+ else
18
+ mapping = Devise.mappings[scope.to_sym]
19
+ return unless mapping
20
+
21
+ mapping.to.timeout_in.seconds.to_i
22
+ end
23
+
24
+ if seconds
25
+ c.session[:devise_autl_message] = message
26
+ c.session[:devise_autl_seconds] = seconds
27
+ end
28
+ end
33
29
  end
34
30
  end
35
31
  end
@@ -1,14 +1,14 @@
1
1
  module Devise
2
- module AutomaticLogout
2
+ module Automaticlogout
3
3
  class Engine < ::Rails::Engine
4
- require 'jquery-rails'
4
+ engine_name 'devise_automaticlogout'
5
5
 
6
6
  ActiveSupport.on_load :action_controller do
7
- include Devise::AutomaticLogout::Controllers
7
+ include Devise::Automaticlogout::Controllers
8
8
  end
9
9
 
10
10
  ActiveSupport.on_load :action_view do
11
- include Devise::AutomaticLogout::Helpers
11
+ include Devise::Automaticlogout::Helpers
12
12
  end
13
13
  end
14
14
  end
@@ -1,8 +1,8 @@
1
1
  module Devise
2
- module AutomaticLogout
2
+ module Automaticlogout
3
3
  module Helpers
4
- def regressive_timer
5
- render 'automatic_logout/timer'
4
+ def regressive_timer(visible: false, alert: false)
5
+ render 'automatic_logout/timer', visible: visible, alert: alert
6
6
  end
7
7
  end
8
8
  end
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module Automaticlogout
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '1.0.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,83 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-automaticlogout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thadeu Esteves Jr
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-24 00:00:00.000000000 Z
11
+ date: 2020-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4'
19
+ version: '5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4'
26
+ version: '5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: devise
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: jquery-rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
33
+ version: '4'
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - ">="
38
+ - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: '4'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rubocop
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ">="
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: sqlite3
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  description: Provides automatic session timeout in a Rails Devise application.
@@ -90,19 +76,24 @@ files:
90
76
  - MIT-LICENSE
91
77
  - README.md
92
78
  - Rakefile
79
+ - app/controllers/automaticlogout_controller.rb
93
80
  - app/views/automatic_logout/_timer.html.erb
94
81
  - config/routes.rb
95
82
  - lib/assets/javascripts/automatic_logout.js
83
+ - lib/assets/javascripts/automatic_logout/classic.js
84
+ - lib/assets/javascripts/automatic_logout/jquery.js
85
+ - lib/assets/javascripts/automatic_logout/turbolinks-classic.js
86
+ - lib/assets/javascripts/automatic_logout/turbolinks.js
96
87
  - lib/devise/automaticlogout.rb
97
88
  - lib/devise/automaticlogout/controllers.rb
98
89
  - lib/devise/automaticlogout/engine.rb
99
90
  - lib/devise/automaticlogout/helpers.rb
100
91
  - lib/devise/automaticlogout/version.rb
101
- homepage: https://github.com/Thadeu/devise-automaticlogout
92
+ homepage: https://github.com/thadeu/devise-automaticlogout
102
93
  licenses:
103
94
  - MIT
104
95
  metadata: {}
105
- post_install_message:
96
+ post_install_message:
106
97
  rdoc_options: []
107
98
  require_paths:
108
99
  - lib
@@ -117,9 +108,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
108
  - !ruby/object:Gem::Version
118
109
  version: '0'
119
110
  requirements: []
120
- rubyforge_project:
121
- rubygems_version: 2.5.1
122
- signing_key:
111
+ rubyforge_project:
112
+ rubygems_version: 2.7.6
113
+ signing_key:
123
114
  specification_version: 4
124
115
  summary: Provides automatic session timeout in a Rails Devise application.
125
116
  test_files: []