sutty/app/policies/site_usuarie_policy.rb

61 lines
987 B
Ruby
Raw Permalink Normal View History

2019-07-04 16:23:43 +00:00
# frozen_string_literal: true
# Gestiona la relación entre sitios y usuaries
class SiteUsuariePolicy
attr_reader :usuarie, :site_usuarie
def initialize(usuarie, site_usuarie)
@usuarie = usuarie
@site_usuarie = site_usuarie
end
def index?
usuarie?
end
# Les usuaries pueden remover a otres usuaries e invitades del sitio
def destroy?
usuarie?
end
# Les usuaries pueden convertir a otres usuaries en invitades
def demote?
usuarie?
end
def promote?
usuarie?
end
2019-07-05 23:55:59 +00:00
def invite?
usuarie?
end
def send_invitations?
usuarie?
end
2019-07-08 17:55:19 +00:00
def accept_invitation?
su = site_usuarie
(usuarie? || invitade?) && su.usuarie.rol_for_site(su.site).temporal
end
def reject_invitation?
accept_invitation?
end
2019-07-04 16:23:43 +00:00
private
def invitades?
site_usuarie.site.invitades?
end
2019-07-04 16:23:43 +00:00
def usuarie?
invitades? && site_usuarie.site.usuarie?(usuarie)
2019-07-04 16:23:43 +00:00
end
2019-07-08 17:55:19 +00:00
def invitade?
site_usuarie.site.invitade? usuarie
end
2019-07-04 16:23:43 +00:00
end