Refactored to use abilites for login

This commit is contained in:
Priit Tamboom 2014-10-08 15:09:50 +03:00
parent f0b46469c8
commit 61e2ea9823
3 changed files with 25 additions and 12 deletions

View file

@ -10,10 +10,12 @@ class ApplicationController < ActionController::Base
end
def after_sign_in_path_for(resource)
if REGISTRY_ENV == :admin && resource.admin?
(session[:user_return_to].nil?) ? admin_root_path : session[:user_return_to].to_s
return session[:user_return_to].to_s if session[:user_return_to]
if resource.admin? && can?(:create, :admin_session)
admin_root_path
else
(session[:user_return_to].nil?) ? client_root_path : session[:user_return_to].to_s
client_root_path
end
end
end

View file

@ -7,14 +7,22 @@ class Ability
user ||= User.new
# public user abilites
if Rails.env.production?
case REGISTRY_ENV
when :client
can :create, :session
if REGISTRY_ENV == :admin
admin = false
when :admin
can :create, :admin_session
admin = user.admin?
end
else
can :create, :session
can :create, :admin_session
admin = user.admin?
end
if (Rails.env.production? ? REGISTRY_ENV == :admin && user.admin? : user.admin?)
if admin
can :manage, Domain
can :switch, :registrar
can :crud, DomainTransfer

View file

@ -21,8 +21,11 @@
%h2.form-signin-heading.text-center Eesti Interneti SA
%hr
/ TODO: Refactor this when ID card login is done
- if Rails.env.development? || (can? :create, :admin_session)
= button_to 'ID card (gitlab)', 'sessions', class: 'btn btn-lg btn-primary btn-block', name: 'gitlab'
- if can? :create, :admin_session
= button_to 'ID card (gitlab)', 'sessions',
class: 'btn btn-lg btn-primary btn-block', name: 'gitlab'
- if can? :create, :session
= button_to 'ID card (zone)', 'sessions', class: 'btn btn-lg btn-primary btn-block', name: 'zone'
= button_to 'ID card (elkdata)', 'sessions', class: 'btn btn-lg btn-primary btn-block', name: 'elkdata'
= button_to 'ID card (zone)', 'sessions',
class: 'btn btn-lg btn-primary btn-block', name: 'zone'
= button_to 'ID card (elkdata)', 'sessions',
class: 'btn btn-lg btn-primary btn-block', name: 'elkdata'