thirteen-tien-len/app/policies/canister_policy.rb

59 lines
907 B
Ruby

class CanisterPolicy
attr_reader :current_user, :model
def initialize(current_user, model)
@current_user = current_user || User.new
@model = model
end
class Scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
if user.admin?
scope.all
else
scope.where(user: user)
end
end
private
attr_reader :user, :scope
end
def index?
@current_user.admin?
end
def show?
@current_user.admin? || @current_user == @model.user
end
def create?
@current_user.admin?
end
def new?
# @current_user.present?
@current_user.admin?
end
def edit?
@current_user.admin? || @current_user == @model.user
end
def update?
@current_user.admin? || @current_user == @model.user
end
def destroy?
@current_user.admin? || @current_user == @model.user
end
end