Module: Guachiman::Permissible

Extended by:
ActiveSupport::Concern
Defined in:
lib/guachiman/rails/permissible.rb

Instance Method Summary collapse

Instance Method Details

#authorizeObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/guachiman/rails/permissible.rb', line 24

def authorize
  if current_permission.allow? controller_name, action_name, current_resource
    current_permission.permit_params! params
  else
    if request.get? && !request.xhr?
      current_user ? not_authorized : not_signed_in
    else
      render_unauthorized
    end
  end
end

#current_permissionObject



16
17
18
# File 'lib/guachiman/rails/permissible.rb', line 16

def current_permission
  @current_permission ||= Permission.new current_user, request
end

#current_resourceObject



20
21
22
# File 'lib/guachiman/rails/permissible.rb', line 20

def current_resource
  nil
end

#current_userObject



12
13
14
# File 'lib/guachiman/rails/permissible.rb', line 12

def current_user
  raise 'This method must be implemented'
end

#not_authorizedObject



36
37
38
# File 'lib/guachiman/rails/permissible.rb', line 36

def not_authorized
  redirect_to root_path, alert: t('flashes.not_authorized')
end

#not_signed_inObject



40
41
42
43
# File 'lib/guachiman/rails/permissible.rb', line 40

def not_signed_in
  session[:next] = request.url
  redirect_to , alert: t('flashes.please_sign_in')
end

#render_unauthorizedObject



45
46
47
# File 'lib/guachiman/rails/permissible.rb', line 45

def render_unauthorized
  render text: "NO", status: :unauthorized
end