<<>> <> <> <> DIRECTORY CHACLOpsP127V1 USING [AccessList], CHOpsP2V3 USING [all, Property], XNSCH USING [Conversation, ElementStreamProc], XNSCHName USING [Name]; XNSCHACL: CEDAR DEFINITIONS ~ { OPEN CHOps: CHOpsP2V3, CHACLOps: CHACLOpsP127V1; <> <> Name: TYPE ~ XNSCHName.Name; -- valid name (or alias) of object Pattern: TYPE ~ Name; -- may contain wildcards Element: TYPE ~ Name; -- element of a group, needn't name an object PropertyID: TYPE ~ CHOps.Property; unspecified: PropertyID ~ CHOps.all; AccessList: TYPE ~ CHACLOps.AccessList; Conversation: TYPE ~ XNSCH.Conversation; ElementStreamProc: TYPE ~ XNSCH.ElementStreamProc; <> ListMembersOfPropertyACL: PROC [c: Conversation, pattern: Pattern, pID: PropertyID, acl: AccessList, eachMember: ElementStreamProc] RETURNS [distingName: Name]; <> IsMemberOfPropertyACLClosure: PROC [c: Conversation, pattern: Pattern, pID: PropertyID, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified] RETURNS [distingName: Name, isMember: BOOL]; <> AddMemberToPropertyACL: PROC [c: Conversation, name: Name, pID: PropertyID, acl: AccessList, member: Element] RETURNS [distingName: Name]; <> DeleteMemberFromPropertyACL: PROC [c: Conversation, name: Name, pID: PropertyID, acl: AccessList, member: Element] RETURNS [distingName: Name]; <> <> ListMembersOfDomainACL: PROC [c: Conversation, domain: Name, acl: AccessList, eachMember: ElementStreamProc]; <> IsMemberOfDomainACLClosure: PROC [c: Conversation, domain: Name, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified] RETURNS [isMember: BOOL]; <> AddMemberToDomainACL: PROC [c: Conversation, domain: Name, acl: AccessList, member: Element]; <> DeleteMemberFromDomainACL: PROC [c: Conversation, domain: Name, acl: AccessList, member: Element]; <> <> ListMembersOfOrganizationACL: PROC [c: Conversation, organization: Name, acl: AccessList, eachMember: ElementStreamProc]; <> IsMemberOfOrganizationACLClosure: PROC [c: Conversation, organization: Name, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified] RETURNS [isMember: BOOL]; <> AddMemberToOrganizationACL: PROC [c: Conversation, organization: Name, acl: AccessList, member: Element]; <> DeleteMemberFromOrganizationACL: PROC [c: Conversation, organization: Name, acl: AccessList, member: Element]; <> }.