Sha256: 12b2d96ad0776926e428d3eecfb9d88ed4aedd46ccb579d9e6916ab76c7f9aba
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
module LsOmniauth::OmniauthHelper def require_authentication when_not_in_dev_mode { sessions = LsOmniauth::AuthSessions.new(session) if sessions.auth.get.blank? sessions.origin.set("#{request.protocol}#{request.host_with_port}#{request.fullpath}") redirect_to ls_omniauth.sign_in_url and return false end true } end def require_authorization(options = {}) when_not_in_dev_mode { return unless require_authentication sessions = LsOmniauth::AuthSessions.new(session) email = sessions.auth.get options.symbolize_keys! if options[:domains].respond_to? :include? email_domain = email.match(/[\w]+\.com/)[0] unless options[:domains].map(&:upcase).include? email_domain.upcase render_access_denied and return end end if options.has_key? :group if !email_in_group(email, options[:group]) render_access_denied and return end end } end def current_user_in_group(group) email_in_group(email_for_current_user, group) end def when_not_in_dev_mode(&block) if !running_in_dev_mode? yield end end module_function def running_in_dev_mode? LS_OMNIAUTH.config.running_in_dev_mode? end def authorized_users @authorized_users ||= (LS_OMNIAUTH.config[:authorized_users] || {}) end def authorized_group_users(group) authorized_users[group] || [] end def email_for_current_user LsOmniauth::AuthSessions.new(session).auth.get end def email_in_group(email, group) authorized_group_users(group).map(&:upcase).include?(email.to_s.upcase) end def render_access_denied render :text => "<div class='notification error'>You are not authorized to view this resource. Sorry!</div>", :status => 401 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ls-omniauth-3.0.3 | app/helpers/ls_omniauth/omniauth_helper.rb |