skill-assessment-app/app/policies/user_policy.rb
2016-09-22 13:30:30 -05:00

36 lines
726 B
Ruby

# frozen_string_literal: true
class UserPolicy < ApplicationPolicy
# User Access Policy
#
# Only Admins can view, create, or update, users
# All other users can only access themselves (profile interface)
def index?
user.acts_as_admin?
end
def view?
user.acts_as_admin? || user == record
end
def create?
user.acts_as_admin?
end
def update?
user.acts_as_admin? || user == record
end
def permitted_attributes
return [:name, :email, :role, :password, quiz_ids: []] if user.acts_as_admin?
[:name, :email, :password, :password_confirmation]
end
class Scope < Scope
def resolve
return scope if user.acts_as_admin?
scope.where(id: user.id)
end
end
end