Sha256: a3c3a58af0203543b3d3e7afd40304bc2b31bccf3169ca5c141cca9288d0cc8c
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
class SwitchUserController < ApplicationController unless Rails.version =~ /^3/ unloadable end before_filter :developer_modes_only def set_current_user send("#{SwitchUser.provider}_handle", params) redirect_to(SwitchUser.redirect_path.call(request, params)) end private def developer_modes_only render :text => "Permission Denied", :status => 403 unless available? end def available? user = nil if params[:scope_id].present? scope, id = params[:scope_id].split('_') SwitchUser.available_users.keys.each do |s| if scope == s.to_s user = scope.classify.constantize.find(id) break end end end SwitchUser.controller_guard.call(user, request) end def devise_handle(params) if params[:scope_id].blank? SwitchUser.available_users.keys.each do |s| warden.logout(s) end else scope, id = params[:scope_id].split('_') SwitchUser.available_users.keys.each do |s| if scope == s.to_s user = scope.classify.constantize.find(id) warden.set_user(user, :scope => scope) else warden.logout(s) end end end end def authlogic_handle(params) if params[:scope_id].blank? current_user_session.destroy else scope, id = params[:scope_id].split('_') SwitchUser.available_users.keys.each do |s| if scope == s.to_s user = scope.classify.constantize.find(id) UserSession.create(user) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
switch_user-0.5.1 | app/controllers/switch_user_controller.rb |
switch_user-0.5.0 | app/controllers/switch_user_controller.rb |