module Curupira::Authorizer

Public Instance Methods

authorize() click to toggle source
# File lib/curupira/authorizer.rb, line 11
def authorize
  unless has_authorization?
    deny_access
  end
end
authorize_for_group() click to toggle source
# File lib/curupira/authorizer.rb, line 5
def authorize_for_group
  unless has_authorization_for_group?
    deny_access
  end
end
has_authorization?() click to toggle source
# File lib/curupira/authorizer.rb, line 17
def has_authorization?
  has_authorization_for(params)
end
has_authorization_for(params) click to toggle source
# File lib/curupira/authorizer.rb, line 21
def has_authorization_for(params)
  return true if current_user.admin?
  query(params).present?
end

Private Instance Methods

deny_access() click to toggle source
# File lib/curupira/authorizer.rb, line 28
def deny_access
  redirect_to "/", notice: "Sem autorização"
end
query(params) click to toggle source
# File lib/curupira/authorizer.rb, line 32
def query(params)
  User.joins(
    role_group_users: { role: { features: [:action_labels] } }
  )
  .where(
    features: { controller: params[:controller] },
    action_labels: { name: [params[:action], 'manage'] },
    id: current_user
  )
end