mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-13 07:01:41 +00:00
49 lines
841 B
Ruby
49 lines
841 B
Ruby
|
class PostPolicy < SuttyPolicy
|
||
|
attr_reader :post
|
||
|
|
||
|
def initialize(usuarix, post)
|
||
|
@usuarix = usuarix
|
||
|
@post = post
|
||
|
end
|
||
|
|
||
|
def index?
|
||
|
true
|
||
|
end
|
||
|
|
||
|
# Lxs invitadxs solo pueden ver sus propios posts
|
||
|
def show?
|
||
|
usuaria? || post.author == usuarix.email
|
||
|
end
|
||
|
|
||
|
def new?
|
||
|
create?
|
||
|
end
|
||
|
|
||
|
def create?
|
||
|
true
|
||
|
end
|
||
|
|
||
|
def edit?
|
||
|
update?
|
||
|
end
|
||
|
|
||
|
# Lxs invitadxs solo pueden modificar sus propios artículos
|
||
|
def update?
|
||
|
usuaria? || post.author == usuarix.email
|
||
|
end
|
||
|
|
||
|
class Scope < SuttyPolicy::Scope
|
||
|
# Las usuarias pueden ver todos los posts
|
||
|
#
|
||
|
# Lxs invitadxs solo pueden ver sus propios posts
|
||
|
def resolve
|
||
|
return scope if usuaria?
|
||
|
|
||
|
# Asegurarse que al menos devolvemos []
|
||
|
[scope.find do |post|
|
||
|
post.author == usuarix.email
|
||
|
end].flatten.compact
|
||
|
end
|
||
|
end
|
||
|
end
|