package rbac2 import "github.com/bluesky-social/indigo/atproto/syntax" func (e *Enforcer) SetKnotOwner(user syntax.DID, knot syntax.DID) error { return e.setRoleForUser(user.String(), "server:owner", intoKnot(knot)) } func (e *Enforcer) IsKnotMember(user syntax.DID, knot syntax.DID) (bool, error) { return e.hasImplicitRoleForUser(user.String(), "server:member", intoKnot(knot)) } func (e *Enforcer) AddKnotMember(user syntax.DID, knot syntax.DID) error { _, err := e.e.AddRoleForUser(user.String(), "server:member", intoKnot(knot)) return err } func (e *Enforcer) RemoveKnotMember(user syntax.DID, knot syntax.DID) error { _, err := e.e.DeleteRoleForUser(user.String(), "server:member", intoKnot(knot)) return err } func (e *Enforcer) IsKnotMemberInviteAllowed(user syntax.DID, knot syntax.DID) (bool, error) { return e.e.Enforce(user.String(), intoKnot(knot), "/member", "write") } func intoKnot(did syntax.DID) string { return "/knot/" + did.String() }