dawarich/app/policies/family/membership_policy.rb
2025-10-11 14:17:48 +02:00

29 lines
600 B
Ruby

# frozen_string_literal: true
class Family::MembershipPolicy < ApplicationPolicy
def show?
return false unless user
user.family == record.family
end
def update?
return false unless user
# Users can update their own settings
return true if user == record.user
# Family owners can update any member's settings
show? && user.family_owner?
end
def destroy?
return false unless user
# Users can remove themselves (handled by family leave logic)
return true if user == record.user
# Family owners can remove other members
update?
end
end