Rinat Sharipov
08/02/2023, 7:38 AMdefinition user {}
definition organization {
relation admin: user
relation doctor: user
}
definition documents/template {
relation org: organization
permission view = ???
permission request = ???
}
because:
1. different roles should be configured with different templates and I have no guess, how to do that in current schema
2. it will be awesome if template won't have a strict relation with a concrete organization, because I can have many organizations and would like to share templates between them
-----
this forced me to another one schema, where role is a relation, each user has relation with role and template has a relation with role also
definition role {}
definition user {
relation role: role
}
definition documents/template {
relation viewer: role
relation requester: role
permission view = viewer
permission request = requester
}
but I stuck with assertions, I expect that assert will work through graph and I can check whether a particular user has access to template, but it fails
assertTrue:
- documents/template:fv#request@user:rinat
but check through role works
assertTrue:
- documents/template:fv#request@role:admin
thx a lot for your help and recommendationsecordell
08/02/2023, 11:47 AMdefinition user {}
definition role {
relation member: user
}
definition documents/template {
relation viewer: role#member
relation requester: role#member
permission view = viewer
permission request = requester
}
and then when you assign a role to a template you include the member relation:
role/admin#member@user:rinat
documents/template:fv#requester@role:admin#member <-note the relation
then your assertion should work:
assertTrue:
- documents/template:fv#request@user:rinat
because you're going from document -> role#member -> userRinat Sharipov
08/13/2023, 11:04 AM