dawarich/app/policies/family_policy.rb

46 lines
896 B
Ruby

# frozen_string_literal: true
class FamilyPolicy < ApplicationPolicy
def show?
user.family == record
end
def create?
return false if user.in_family?
return true if DawarichSettings.self_hosted?
# Add cloud subscription checks here when implemented
# For now, allow all users to create families
true
end
def update?
user.family == record && user.family_owner?
end
def destroy?
user.family == record && user.family_owner?
end
def leave?
user.family == record && !family_owner_with_members?
end
def invite?
user.family == record && user.family_owner?
end
def manage_invitations?
user.family == record && user.family_owner?
end
def update_location_sharing?
user.family == record && user.family_owner?
end
private
def family_owner_with_members?
user.family_owner? && record.members.count > 1
end
end