adds managers login via ManagerAuthenticators
This commit is contained in:
@@ -12,7 +12,7 @@ class Management::BaseController < ActionController::Base
|
||||
end
|
||||
|
||||
def current_manager
|
||||
@current_manager ||= Manager.find(session["manager_id"]) if session["manager_id"]
|
||||
session["manager"]
|
||||
end
|
||||
|
||||
def managed_user
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
require "manager_authenticator"
|
||||
|
||||
class Management::SessionsController < ActionController::Base
|
||||
|
||||
def create
|
||||
destroy_session
|
||||
if manager = Manager.valid_manager(params[:login], params[:clave_usuario])
|
||||
session["manager_id"] = manager.id
|
||||
if manager = ManagerAuthenticator.new(params).auth
|
||||
session["manager"] = manager
|
||||
redirect_to management_root_path
|
||||
else
|
||||
raise ActionController::RoutingError.new('Not Found')
|
||||
@@ -18,7 +20,7 @@ class Management::SessionsController < ActionController::Base
|
||||
private
|
||||
|
||||
def destroy_session
|
||||
session["manager_id"] = nil
|
||||
session["manager"] = nil
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,7 +1,7 @@
|
||||
class ManagerAuthenticator
|
||||
|
||||
def initialize(data={})
|
||||
@manager = {login: data[:login], user_key: data[:user_key], date: data[:date]}
|
||||
@manager = {login: data[:login], user_key: data[:clave_usuario], date: data[:fecha_conexion]}
|
||||
end
|
||||
|
||||
def auth
|
||||
|
||||
@@ -2,36 +2,28 @@ require 'rails_helper'
|
||||
|
||||
describe Management::SessionsController do
|
||||
|
||||
before(:all) do
|
||||
create(:manager, username: "supermanager" , password: "secret")
|
||||
end
|
||||
|
||||
describe 'Sign in' do
|
||||
it "should return 404 if not username/password" do
|
||||
expect { get :create }.to raise_error "Not Found"
|
||||
end
|
||||
|
||||
it "should return 404 if wrong username" do
|
||||
expect { get :create, login: "nonexistent" , clave_usuario: "secret" }.to raise_error "Not Found"
|
||||
end
|
||||
|
||||
it "should return 404 if wrong password" do
|
||||
expect { get :create, login: "supermanager" , clave_usuario: "wrong" }.to raise_error "Not Found"
|
||||
it "should return 404 if wrong credentials" do
|
||||
allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return(false)
|
||||
expect { get :create, login: "nonexistent" , clave_usuario: "wrong"}.to raise_error "Not Found"
|
||||
end
|
||||
|
||||
it "should redirect to management root path if right credentials" do
|
||||
get :create, login: "supermanager" , clave_usuario: "secret"
|
||||
manager = {login: "JJB033", user_key: "31415926" , date: "20151031135905"}
|
||||
allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return(manager)
|
||||
|
||||
get :create, login: "JJB033" , clave_usuario: "31415926", fecha_conexion: "20151031135905"
|
||||
expect(response).to be_redirect
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Sign out' do
|
||||
it "should destroy the session and redirect" do
|
||||
session[:manager_id] = 1
|
||||
session[:manager] = {user_key: "31415926" , date: "20151031135905", login: "JJB033"}
|
||||
|
||||
delete :destroy
|
||||
|
||||
expect(session[:manager_id]).to be_nil
|
||||
expect(session[:manager]).to be_nil
|
||||
expect(response).to be_redirect
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'rails_helper'
|
||||
feature 'DocumentVerifications' do
|
||||
|
||||
background do
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
end
|
||||
|
||||
scenario 'Verifying a level 3 user shows an "already verified" page' do
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'rails_helper'
|
||||
feature 'EmailVerifications' do
|
||||
|
||||
scenario 'Verifying a level 1 user via email' do
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
|
||||
user = create(:user)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'rails_helper'
|
||||
feature 'Managed User' do
|
||||
|
||||
background do
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
end
|
||||
|
||||
context "Currently managed user" do
|
||||
@@ -47,7 +47,7 @@ feature 'Managed User' do
|
||||
end
|
||||
|
||||
scenario "User becomes verified as level two (pending email confirmation for level three)" do
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
|
||||
user = create(:user)
|
||||
|
||||
@@ -71,7 +71,7 @@ feature 'Managed User' do
|
||||
end
|
||||
|
||||
scenario "User is created as level three from scratch" do
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
|
||||
visit management_document_verifications_path
|
||||
fill_in 'document_verification_document_number', with: '1234'
|
||||
|
||||
@@ -3,8 +3,7 @@ require 'rails_helper'
|
||||
feature 'Proposals' do
|
||||
|
||||
background do
|
||||
manager = create(:manager)
|
||||
login_as_manager(manager)
|
||||
login_as_manager
|
||||
end
|
||||
|
||||
context "Create" do
|
||||
|
||||
@@ -4,7 +4,7 @@ feature 'users' do
|
||||
|
||||
scenario 'Creating a level 3 user from scratch' do
|
||||
|
||||
login_as_manager(create(:manager))
|
||||
login_as_manager
|
||||
|
||||
visit management_document_verifications_path
|
||||
fill_in 'document_verification_document_number', with: '1234'
|
||||
|
||||
@@ -24,8 +24,10 @@ module CommonActions
|
||||
click_button 'Log in'
|
||||
end
|
||||
|
||||
def login_as_manager(manager)
|
||||
visit management_sign_in_path(login: manager.username, clave_usuario: manager.password)
|
||||
def login_as_manager
|
||||
login, user_key, date = "JJB042", "31415926", Time.now.strftime("%Y%m%d%H%M%S")
|
||||
allow_any_instance_of(ManagerAuthenticator).to receive(:auth).and_return({login: login, user_key: user_key, date: date})
|
||||
visit management_sign_in_path(login: login, clave_usuario: user_key, fecha_conexion: date)
|
||||
end
|
||||
|
||||
def login_managed_user(user)
|
||||
|
||||
Reference in New Issue
Block a user