cmpa_auth 1.0.4 → 1.0.5
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.
- data/CHANGELOG.rdoc +8 -3
- data/app/controllers/sessions_controller.rb +16 -23
- data/app/helpers/sessions_helper.rb +9 -1
- data/app/views/application/{_footer.html.erb → _footer.erb} +1 -1
- data/app/views/application/_login.erb +11 -0
- data/app/views/layouts/{sessions.html.erb → sessions.erb} +14 -15
- data/app/views/sessions/lotacoes_temporarias.erb +8 -0
- data/app/views/sessions/new.erb +67 -0
- data/config/routes.rb +1 -1
- data/lib/cmpa_auth/models/pessoa.rb +1 -1
- metadata +9 -9
- data/app/views/application/_login.html.erb +0 -10
- data/app/views/sessions/new.html.erb +0 -18
- data/app/views/sessions/selecao_lotacao_temporaria.html.erb +0 -6
- /data/app/views/rescues/{403.html.erb → 403.erb} +0 -0
- /data/app/views/sessions/{index.html.erb → index.erb} +0 -0
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
== 1.0.5 released 2010-04-03
|
2
|
+
|
3
|
+
* Atualiza��o de layout. Agora as telas de autentica��o, sele��o de lota��es tempor�rias e de sistemas s�o independentes do projeto em uso.
|
4
|
+
* Trocado <tt>all</tt> por <tt>scoped</tt> em <tt>Pessoa#lotacoes_temporarias_ativas</tt>.
|
5
|
+
* Refatora��es no controller de <tt>sessions</tt>.
|
6
|
+
* Tela de login e sele��o de lota��es tempor�rias utilizam AJAX para agilizar a entrada no sistema.
|
7
|
+
|
1
8
|
== 1.0.4 released 2009-12-16
|
2
9
|
|
3
10
|
* Renomeado o before_filter de autentica��o <tt>check_authentication</tt> para <tt>cmpa_authenticate</tt>.
|
@@ -13,9 +20,7 @@
|
|
13
20
|
== 1.0.2 released 2009-11-08
|
14
21
|
|
15
22
|
* Documenta��o melhorada.
|
16
|
-
* Atualiza��o do m�todo <tt>LotacaoTemporaria#method_missing</tt> para que ele
|
17
|
-
defina os m�todos que n�o existirem e que comecem por <i>in_groups_of</i> ou
|
18
|
-
<i>role_of</i>.
|
23
|
+
* Atualiza��o do m�todo <tt>LotacaoTemporaria#method_missing</tt> para que ele defina os m�todos que n�o existirem e que comecem por <i>in_groups_of</i> ou <i>role_of</i>.
|
19
24
|
|
20
25
|
== 1.0.1 released 2009-11-05
|
21
26
|
|
@@ -11,38 +11,31 @@ class SessionsController < ApplicationController
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def create
|
14
|
-
user = CmpaAuth::Authentication.authenticate(params[:login], params[:password])
|
15
|
-
if user
|
14
|
+
if user = CmpaAuth::Authentication.authenticate(params[:login], params[:password])
|
16
15
|
session[:current_user_id] = user.id
|
17
|
-
|
18
|
-
if
|
19
|
-
session[:lotacao_temporaria_id] =
|
20
|
-
|
21
|
-
elsif
|
22
|
-
|
16
|
+
@lotacoes_temporarias = current_user.lotacoes_temporarias_ativas
|
17
|
+
if @lotacoes_temporarias.size == 1
|
18
|
+
session[:lotacao_temporaria_id] = @lotacoes_temporarias.first.id
|
19
|
+
head :ok, :location => root_url
|
20
|
+
elsif @lotacoes_temporarias.many?
|
21
|
+
render :lotacoes_temporarias, :layout => false
|
23
22
|
else
|
24
|
-
|
25
|
-
render :new
|
23
|
+
render :text => "Você não possui lotacões temporárias. Por favor, entre em contato com a Assessoria de Informática", :status => :forbidden
|
26
24
|
end
|
27
25
|
else
|
28
|
-
|
29
|
-
render :new
|
26
|
+
render :text => 'Usuário e/ou senha incorretos', :status => :forbidden
|
30
27
|
end
|
31
28
|
end
|
32
29
|
|
33
30
|
def destroy
|
34
|
-
|
35
|
-
flash[:notice] = "Logout efetuado
|
36
|
-
redirect_to
|
31
|
+
session[:current_user_id] = session[:lotacao_temporaria_id] = nil
|
32
|
+
flash[:notice] = "Logout efetuado"
|
33
|
+
redirect_to root_url
|
37
34
|
end
|
38
35
|
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
else
|
44
|
-
user = Pessoa.find(params[:pessoa_id])
|
45
|
-
@lotacoes_temporarias = user.lotacoes_temporarias_ativas
|
46
|
-
end
|
36
|
+
def set_lotacao_temporaria
|
37
|
+
lotacao_temporaria = current_user.lotacoes_temporarias_ativas.find(params[:lotacao_temporaria_id])
|
38
|
+
session[:lotacao_temporaria_id] = lotacao_temporaria.id
|
39
|
+
redirect_to root_url
|
47
40
|
end
|
48
41
|
end
|
@@ -13,4 +13,12 @@ module SessionsHelper
|
|
13
13
|
|
14
14
|
link_to sistema.nome.capitalize, "http://#{url_options[:host]}:#{url_options[:port]}#{url_options[:controller]}", options, html_options
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
|
+
def flash_message
|
18
|
+
if key = flash.keys.first
|
19
|
+
content_tag :div, :id => 'flash', :class => key do
|
20
|
+
flash[key] + link_to('Fechar ×', '#', :id => 'close-flash')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% if logged_in? %>
|
2
|
+
<% link_to session_path, :method => :delete do %>
|
3
|
+
<%= image_tag 'icons/16x16/door_out.png' %>
|
4
|
+
Sair
|
5
|
+
<% end %>
|
6
|
+
<% else %>
|
7
|
+
<% link_to new_session_path do %>
|
8
|
+
<%= image_tag 'icons/16x16/door_in.png' %>
|
9
|
+
Entrar
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
@@ -2,17 +2,10 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>PortalCMPA - Gerenciamento de Acesso</title>
|
5
|
-
<%= stylesheet_link_tag 'application' %>
|
6
|
-
<%= javascript_include_tag 'jquery' %>
|
7
|
-
|
8
|
-
<script type="text/javascript">
|
9
|
-
jQuery(function($) {
|
10
|
-
$('#focus').focus();
|
11
|
-
$('#menu > li:first-child a').addClass('selected');
|
12
|
-
});
|
13
|
-
</script>
|
5
|
+
<%= stylesheet_link_tag 'jqueryui', 'application' %>
|
6
|
+
<%= javascript_include_tag 'jquery', 'jqueryui' %>
|
14
7
|
</head>
|
15
|
-
<body>
|
8
|
+
<body id='cmpa-auth'>
|
16
9
|
<% if logged_in? %>
|
17
10
|
<div id='header'>
|
18
11
|
<ul id='menu'>
|
@@ -23,17 +16,23 @@
|
|
23
16
|
</div>
|
24
17
|
</div>
|
25
18
|
<% end %>
|
19
|
+
<%= flash_message %>
|
26
20
|
<div id='container'>
|
27
21
|
<div id='main'>
|
28
|
-
<% flash.each_pair do |k, v| %>
|
29
|
-
<%= content_tag :div, v, :class => "flash #{k}" %>
|
30
|
-
<% end %>
|
31
|
-
|
32
22
|
<%= yield %>
|
33
23
|
</div>
|
34
24
|
</div>
|
35
25
|
<div id='footer'>
|
36
26
|
<%= render 'application/footer' %>
|
37
27
|
</div>
|
28
|
+
|
29
|
+
<script type='text/javascript'>
|
30
|
+
// Exibe e anima mensagens de flash.
|
31
|
+
$flash = $('#flash');
|
32
|
+
$flash.hide().fadeIn('slow').delay(10000).fadeOut('slow');
|
33
|
+
$('a#close-flash').click(function() {
|
34
|
+
$flash.stop().fadeOut('slow');
|
35
|
+
});
|
36
|
+
</script>
|
38
37
|
</body>
|
39
|
-
</html>
|
38
|
+
</html>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div id='lotacoes'>
|
2
|
+
<h2>Olá <em><%= current_user.usuario %></em>, selecione um setor para operar o sistema</h2>
|
3
|
+
<ul>
|
4
|
+
<% @lotacoes_temporarias.each do |lt| %>
|
5
|
+
<li><%= link_to lt.setor.nome, set_lotacao_temporaria_path(lt.id) %></li>
|
6
|
+
<% end %>
|
7
|
+
</ul>
|
8
|
+
</div>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<% form_tag session_path, :class => 'login' do %>
|
2
|
+
<h2>Área restrita. Por favor, efetue login.</h2>
|
3
|
+
<p>
|
4
|
+
<%= label_tag :login, 'Usuário:' %>
|
5
|
+
<%= text_field_tag :login, params[:login], :size => 30, :class => 'focus' %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<%= label_tag :password, 'Senha:' %>
|
9
|
+
<%= password_field_tag :password, params[:password], :size => 30 %>
|
10
|
+
</p>
|
11
|
+
<%= submit_tag 'Entrar' %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<script type='text/javascript'>
|
15
|
+
jQuery(function($) {
|
16
|
+
$('form .focus').focus();
|
17
|
+
|
18
|
+
$dialog = $('<div>');
|
19
|
+
$dialog.dialog({
|
20
|
+
title: 'Seleção de Lotação Temporária',
|
21
|
+
autoOpen: false,
|
22
|
+
minHeight: 200,
|
23
|
+
minWidth: 300,
|
24
|
+
maxWidth: 800,
|
25
|
+
maxHeight: 500,
|
26
|
+
width: 600,
|
27
|
+
modal: true
|
28
|
+
});
|
29
|
+
|
30
|
+
var flash = $('<div id="flash" class="error">');
|
31
|
+
|
32
|
+
// Muda o texto do botão de submit e depois desabilita.
|
33
|
+
// Quando a chamada ajax for completada restaura o botão às suas condições originais.
|
34
|
+
var submitButtonVal = $('form.login :submit').val();
|
35
|
+
$('form.login')
|
36
|
+
.ajaxSend(function() { $(this).find(':submit').val('Aguarde...').attr('disabled', true); })
|
37
|
+
.ajaxComplete(function() { $(this).find(':submit').val(submitButtonVal).attr('disabled', false); });
|
38
|
+
|
39
|
+
$('form.login').submit(function() {
|
40
|
+
$.ajax({
|
41
|
+
url: '/session',
|
42
|
+
type: 'post',
|
43
|
+
data: $(this).serialize(),
|
44
|
+
success: function(data, status, request) {
|
45
|
+
var location = request.getResponseHeader('location');
|
46
|
+
if (location) {
|
47
|
+
window.location = location;
|
48
|
+
} else {
|
49
|
+
$dialog.html(data).dialog('open');
|
50
|
+
$('#flash').remove();
|
51
|
+
}
|
52
|
+
},
|
53
|
+
error: function(request) {
|
54
|
+
$('#flash').remove();
|
55
|
+
$('#container').prepend(flash.html(request.responseText)
|
56
|
+
.fadeIn('slow').delay(10000).fadeOut('slow')); // Anima a mensagem.
|
57
|
+
}
|
58
|
+
});
|
59
|
+
return false;
|
60
|
+
});
|
61
|
+
|
62
|
+
$('#lotacoes ul a').live('click', function() {
|
63
|
+
$dialog.dialog('close');
|
64
|
+
window.location = this.href;
|
65
|
+
});
|
66
|
+
});
|
67
|
+
</script>
|
data/config/routes.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
ActionController::Routing::Routes.draw do |map|
|
2
2
|
|
3
3
|
map.resource :session, :path_names => { :new => 'entrar' }
|
4
|
-
map.
|
4
|
+
map.set_lotacao_temporaria '/session/set_lotacao_temporaria/:lotacao_temporaria_id', :controller => 'sessions', :action => 'set_lotacao_temporaria'
|
5
5
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmpa_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "CMPA Assessoria de Inform\xC3\xA1tica"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-04-04 00:00:00 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -43,13 +43,13 @@ files:
|
|
43
43
|
- lib/cmpa_auth.rb
|
44
44
|
- app/controllers/sessions_controller.rb
|
45
45
|
- app/helpers/sessions_helper.rb
|
46
|
-
- app/views/application/_footer.
|
47
|
-
- app/views/application/_login.
|
48
|
-
- app/views/layouts/sessions.
|
49
|
-
- app/views/rescues/403.
|
50
|
-
- app/views/sessions/index.
|
51
|
-
- app/views/sessions/
|
52
|
-
- app/views/sessions/
|
46
|
+
- app/views/application/_footer.erb
|
47
|
+
- app/views/application/_login.erb
|
48
|
+
- app/views/layouts/sessions.erb
|
49
|
+
- app/views/rescues/403.erb
|
50
|
+
- app/views/sessions/index.erb
|
51
|
+
- app/views/sessions/lotacoes_temporarias.erb
|
52
|
+
- app/views/sessions/new.erb
|
53
53
|
- config/routes.rb
|
54
54
|
- public/images/sistemas/administrativo.png
|
55
55
|
- public/images/sistemas/agenda.png
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<% if logged_in? %>
|
2
|
-
<p>
|
3
|
-
<strong><%= current_user.usuario %></strong>
|
4
|
-
|
|
5
|
-
<%= link_to "sair", session_url, :method => :delete, :class => 'icon icon-door-out' %>
|
6
|
-
</p>
|
7
|
-
<em><%= current_lotacao.setor.nome %></em>
|
8
|
-
<% else %>
|
9
|
-
<%= link_to 'Login', new_session_url, :class => 'icon icon-door-in' %>
|
10
|
-
<% end %>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<div class='form' style='width:40em'>
|
2
|
-
<h3>Área restrita. Por favor, efetue login.</h3>
|
3
|
-
<% form_tag session_path, :id => 'login' do %>
|
4
|
-
<p>
|
5
|
-
<%= label_tag :login, 'Usuário:' %>
|
6
|
-
<%= text_field_tag :login, params[:login], :size => 20, :id => 'focus' %>
|
7
|
-
</p>
|
8
|
-
|
9
|
-
<p>
|
10
|
-
<%= label_tag :password, 'Senha:' %>
|
11
|
-
<%= password_field_tag :password, params[:password], :size => 20 %>
|
12
|
-
</p>
|
13
|
-
|
14
|
-
<ul>
|
15
|
-
<li><%= submit_tag 'Entrar' %></li>
|
16
|
-
</ul>
|
17
|
-
<% end %>
|
18
|
-
</div>
|
@@ -1,6 +0,0 @@
|
|
1
|
-
<h2 class='title'>Olá <%= current_user.usuario %>, selecione o setor pelo qual você deseja operar o sistema</h2>
|
2
|
-
<ul class='list'>
|
3
|
-
<% @lotacoes_temporarias.each do |lt| %>
|
4
|
-
<li><%= link_to lt.setor.nome, selecao_lotacao_temporaria_path(lt.id, :lotacao_selecionada => :sim) %></li>
|
5
|
-
<% end %>
|
6
|
-
</ul>
|
File without changes
|
File without changes
|