You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/app/policies/asciicast_policy.rb

42 lines
694 B
Ruby

class AsciicastPolicy < ApplicationPolicy
class Scope < Scope
def resolve
if user.admin?
scope.all
else
scope.non_private
end
end
end
def permitted_attributes
if user.admin? || record.owner?(user)
attrs = [:title, :description, :theme_name, :snapshot_at]
attrs << :featured if change_featured?
attrs << :private if change_visibility?
attrs
else
[]
end
end
def update?
user.admin? || record.owner?(user)
end
def destroy?
user.admin? || record.owner?(user)
end
def change_featured?
user.admin?
end
def change_visibility?
user.admin? || record.owner?(user)
end
end