forked from saurabh/orbit4-5
update login redirect to referer url and fix check_user_can_use method
This commit is contained in:
parent
fb8d36fc35
commit
3435a7bfd3
|
@ -12,9 +12,9 @@ class SessionsController < ApplicationController
|
|||
if (user && user.authenticate(params[:password]) && user.is_confirmed?.eql?(true))
|
||||
if user.is_approved? || user.is_admin?
|
||||
session[:user_id] = user.id
|
||||
if session[:login_referer]
|
||||
redirect_to session[:login_referer]
|
||||
session[:login_referer] = nil
|
||||
session[:login_referer] = nil
|
||||
if params[:referer_url]
|
||||
redirect_to params[:referer_url]
|
||||
else
|
||||
redirect_to admin_dashboards_path
|
||||
end
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
</div>
|
||||
<div class="login-body">
|
||||
<%= form_tag "/sessions?locale=#{locale.to_s}", method: "post", :class => "container" do |f| %>
|
||||
<input type="hidden" name="referer_url" value="<%= request.original_url %>">
|
||||
<div class="prepend">
|
||||
<span class="add"><i class="icon-user"></i></span>
|
||||
<input class="input" id="user_user_id" name="user_name" placeholder="<%= t("users.user_id") %>" size="30" type="text">
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
<label class="checkbox">
|
||||
<%= check_box_tag :remember_me %><small><%= label_tag :remember_me %></small>
|
||||
</label>
|
||||
<input type="hidden" name="referer_url" value="<%= session[:login_referer] %>">
|
||||
<button class="btn btn-primary" name="button" type="submit"><%= t(:login) %></button>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -78,27 +78,31 @@ module OrbitCoreLib
|
|||
end
|
||||
if !permissions.empty?
|
||||
if !allow?(permissions["available_for"] || ["admin"])
|
||||
render "public/401" , layout: "back_end"
|
||||
render "public/401" , layout: "back_end" if !current_user.nil?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def allow?(af)
|
||||
status = "users"
|
||||
if current_user.is_admin?
|
||||
status = "admin"
|
||||
elsif current_user.is_manager?(@module_app)
|
||||
status = "managers"
|
||||
elsif current_user.is_manager_with_role?(@module_app)
|
||||
status = "managers"
|
||||
elsif current_user.is_sub_manager?(@module_app)
|
||||
status = "sub_managers"
|
||||
elsif current_user.is_sub_manager_with_role?(@module_app)
|
||||
status = "sub_managers"
|
||||
elsif current_user.is_normal_user?
|
||||
if !current_user.nil?
|
||||
status = "users"
|
||||
if current_user.is_admin?
|
||||
status = "admin"
|
||||
elsif current_user.is_manager?(@module_app)
|
||||
status = "managers"
|
||||
elsif current_user.is_manager_with_role?(@module_app)
|
||||
status = "managers"
|
||||
elsif current_user.is_sub_manager?(@module_app)
|
||||
status = "sub_managers"
|
||||
elsif current_user.is_sub_manager_with_role?(@module_app)
|
||||
status = "sub_managers"
|
||||
elsif current_user.is_normal_user?
|
||||
status = "users"
|
||||
end
|
||||
return af.include?status
|
||||
else
|
||||
return false
|
||||
end
|
||||
return af.include?status
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue