# app/policies/application_policy.rb class ApplicationPolicy attr_reader :user, :record def initialize(user, record) raise Pundit::NotAuthorizedError, 'Você precisa estar logado.' unless user @user = user @record = record end def index? = false def show? = false def create? = false def new? = create? def update? = false def edit? = update? def destroy? = false protected def admin? user.admin? end def gerente? user.gerente? end def operador? user.operador? end def motorista? user.motorista? end def admin_ou_gerente? admin? || gerente? end def admin_gerente_ou_operador? admin? || gerente? || operador? end class Scope def initialize(user, scope) @user = user @scope = scope end def resolve raise NotImplementedError, "#{self.class}#resolve não implementado" end private attr_reader :user, :scope end end