https://authzed.com logo
Title
p

pdow

01/31/2023, 4:44 PM
Okay, if that is legal then this ends up being an elegant solution I think:
definition parent {
    relation direct_editor: user | team#member
    relation direct_creator: user | team#member

    permission editor = direct_editor
    permission creator = direct_creator

    permission associated_with_org = editor + creator

}

definition resource {
    relation parent: parent
    relation direct_editor: user | team#member
    relation direct_creator: user | team#member
    relation feature_flag: parent#associated_with_org
    
    permission editor = (direct_editor + parent->editor) & feature_flag
    permission creator = (direct_creator + parent->creator) & feature_flag
}
It just requires 1 relationship to the parent to be set or deleted to toggle the feature flag