Keep a blank line before and after private Keep a blank line before and after protected Remove extra empty line at class body end Remove extra blank line Add final newline Use 2 (not 3) spaces for indentation Use 2 (not 4) spaces for indentation Remove space before comma Add space after comma Remove trailing whitespaces Remove unnecessary spacing Use snake_case for variable names Do not use then for multi-line if Remove unused block argument - i Use the new Ruby 1.9 hash syntax Remove unused assignment to variable Indent when as deep as case Align attributes Align end with def
45 lines
975 B
Ruby
45 lines
975 B
Ruby
require "manager_authenticator"
|
|
|
|
class Management::SessionsController < ActionController::Base
|
|
|
|
def create
|
|
destroy_session
|
|
if admin? || manager? || authenticated_manager?
|
|
redirect_to management_root_path
|
|
else
|
|
raise CanCan::AccessDenied
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
destroy_session
|
|
redirect_to root_path, notice: t("management.sessions.signed_out")
|
|
end
|
|
|
|
private
|
|
|
|
def destroy_session
|
|
session[:manager] = nil
|
|
session[:document_type] = nil
|
|
session[:document_number] = nil
|
|
end
|
|
|
|
def admin?
|
|
if current_user.try(:administrator?)
|
|
session[:manager] = {login: "admin_user_#{current_user.id}"}
|
|
end
|
|
end
|
|
|
|
def manager?
|
|
if current_user.try(:manager?)
|
|
session[:manager] = {login: "manager_user_#{current_user.id}"}
|
|
end
|
|
end
|
|
|
|
def authenticated_manager?
|
|
if manager = ManagerAuthenticator.new(params).auth
|
|
session[:manager] = manager
|
|
end
|
|
end
|
|
|
|
end |