stale-engineer-10188
03/06/2023, 5:14 AMimport { Context, Namespace, SubjectSet } from "@ory/keto-namespace-types"
class User implements Namespace {}
class Organisation implements Namespace {
related: {
administrators: User[]
managers: User[]
users: (User | SubjectSet<Organisation, "managers"> | SubjectSet<Organisation, "administrators">)[]
}
permits = {
view: (ctx: Context): boolean => this.related.users.includes(ctx.subject),
}
}
With this model, attempting to use Subject Sets, I assume I would only be required to add an "administrators" relation between an admin User and an Organisation, along with the SubjectSet relations being set up once. This does not appear to work.
When creating the relations, I run this js.
await Promise.all([
this.relations.createRelationship({
createRelationshipBody: {
namespace: "Organisation",
object: organisationId,
relation: "administrators",
subject_id: subjectId,
},
}),
this.relations.createRelationship({
createRelationshipBody: {
namespace: "Organisation",
object: organisationId,
relation: "users",
subject_set: {
namespace: "Organisation",
object: organisationId,
relation: "administrators"
},
},
}),
this.relations.createRelationship({
createRelationshipBody: {
namespace: "Organisation",
object: organisationId,
relation: "users",
subject_set: {
namespace: "Organisation",
object: organisationId,
relation: "managers"
},
},
}),
])
And querying via this doesn't get me any results.
this.relations.getRelationships({
namespace: "Organisation",
relation: "users",
subjectId,
}),
I'm hoping I'm just missing something really obvious here.