CHACLOps: PROGRAM 127 VERSION 1 = BEGIN DEPENDS UPON BulkData (0) VERSION 1, CHName (2) VERSION 0, CHOps (2) VERSION 3, Authentication (14) VERSION 2; OrganizationName: TYPE = CHName.OrganizationName; DomainName: TYPE = CHName.DomainName; ObjectName: TYPE = CHName.ObjectName; ThreePartName: TYPE = CHName.ThreePartName; Property: TYPE = CHOps.Property; Authenticator: TYPE = CHOps.Authenticator; AccessList: TYPE = { readAccess(0), administrators(2), selfControl(3) }; RetrievePropertyACL: PROCEDURE [name: ObjectName, property: Property, acl: AccessList, membership: BulkData.Sink, agent: Authenticator] RETURNS [distinguishedObject: ObjectName] REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError, WrongServer, ListNotFound] = 30; AddMemberToPropertyACL: PROCEDURE [name: ObjectName, property: Property, acl: AccessList, newMember: ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: ObjectName] REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError, UpdateError, WrongServer, ListNotFound] = 31; DeleteMemberFromPropertyACL: PROCEDURE [name: ObjectName, property: Property, acl: AccessList, member: ThreePartName, agent: Authenticator] RETURNS [distinguishedObject: ObjectName] REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError, UpdateError, WrongServer, ListNotFound] = 32; IsInPropertyACL: PROCEDURE [name: ObjectName, property: Property, acl: AccessList, secondaryProperty: Property, member: ThreePartName, agent: Authenticator] RETURNS [inACL: BOOLEAN, distinguishedObject: ObjectName] REPORTS [ArgumentError, AuthenticationError, CallError, PropertyError, WrongServer, ListNotFound] = 33; RetrieveDomainACL: PROCEDURE [domain: DomainName, acl: AccessList, membership: BulkData.Sink, agent: Authenticator] RETURNS [distinguishedObject: ObjectName] -- how can this be? REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer, ListNotFound] = 34; AddMemberToDomainACL: PROCEDURE [domain: DomainName, acl: AccessList, newMember: ThreePartName, agent: Authenticator] REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError, WrongServer, ListNotFound] = 35; DeleteMemberFromDomainACL: PROCEDURE [domain: DomainName, acl: AccessList, member: ThreePartName, agent: Authenticator] REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError, WrongServer, ListNotFound] = 36; IsInDomainACL: PROCEDURE [domain: DomainName, acl: AccessList, secondaryProperty: Property, member: ThreePartName, agent: Authenticator] RETURNS [inACL: BOOLEAN] REPORTS [ArgumentError, AuthenticationError, CallError, WrongServer, ListNotFound] = 37; RetrieveOrganizationACL: PROCEDURE [organization: OrganizationName, acl: AccessList, membership: BulkData.Sink, agent: Authenticator] REPORTS [ArgumentError, AuthenticationError, CallError, ListNotFound] = 38; AddMemberToOrganizationACL: PROCEDURE [organization: OrganizationName, acl: AccessList, newMember: ThreePartName, agent: Authenticator] REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError, ListNotFound] = 39; DeleteMemberFromOrganizationACL: PROCEDURE [organization: OrganizationName, acl: AccessList, member: ThreePartName, agent: Authenticator] REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError, ListNotFound] = 40; IsInOrganizationACL: PROCEDURE [organization: OrganizationName, acl: AccessList, secondaryProperty: Property, member: ThreePartName, agent: Authenticator] RETURNS [inACL: BOOLEAN] REPORTS [ArgumentError, AuthenticationError, CallError, UpdateError, ListNotFound] = 41; WhichArgument: TYPE = CHOps.WhichArgument; ArgumentError: ERROR [problem: ArgumentProblem, which: WhichArgument] = CHOps.ArgumentError; ArgumentProblem: TYPE = CHOps.ArgumentProblem; AuthenticationError: ERROR [problem: Authentication.Problem] = CHOps.AuthenticationError; CallError: ERROR [problem: CallProblem] = CHOps.CallError; CallProblem: TYPE = CHOps.CallProblem; PropertyError: ERROR [problem: PropertyProblem, distinguishedObject: ObjectName] = CHOps.PropertyError; PropertyProblem: TYPE = CHOps.PropertyProblem; UpdateError: ERROR [problem: UpdateProblem, found: BOOLEAN, which: WhichArgument, distinguishedObject: ObjectName] = CHOps.UpdateError; UpdateProblem: TYPE = CHOps.UpdateProblem; WrongServer: ERROR [hint: ObjectName] = CHOps.WrongServer; ListNotFound: ERROR = 7; -- This is a guess! (?) END. ζ CHACLOps1.cr Copyright Σ 1986, 1991 by Xerox Corporation. All rights reserved. Demers, February 11, 1987 5:12:47 pm PST Access Control List operations for Clearinghouse maintenance. Types Remote procedures Remote Errors Κq•NewlineDelimiter –(cedarcode) style™šœ ™ Icodešœ Οeœ6™BK™(K™K™=—J˜šΟnœΟkœŸœŸ˜'šŸœŸ˜ Kšœ Ÿœ˜Kšœ Ÿœ˜Kšœ Ÿœ˜KšœŸœ˜—headšœ™KšœŸœ˜1Kšœ Ÿœ˜%Kšœ Ÿœ˜%KšœŸœ˜+K˜Kšœ Ÿœ˜ KšœŸœ˜*K˜Kšœ Ÿœ8˜H—šœ™˜šžœŸ œi˜‡KšŸœ"˜)KšŸœ`˜g—K˜šžœŸ œh˜‰KšŸœ"˜)KšŸœm˜tK˜—šžœŸ œe˜‹KšŸœ"˜)KšŸœm˜t—K˜šžœŸ œ‚˜œKšŸœ Ÿœ"˜9KšŸœ`˜g—K˜šžœŸ œW˜sKšŸœ#Οc˜=KšŸœQ˜X—K˜šžœŸ œV˜uKšŸœ^˜eK˜—šžœŸ œS˜wKšŸœ^˜eK˜—šž œŸ œp˜ˆKšŸœ Ÿœ˜KšŸœQ˜X—K˜šžœŸ œc˜…KšŸœD˜K—K˜šžœŸ œb˜‡KšŸœQ˜XK˜—šžœŸ œ_˜‰KšŸœQ˜XK˜—šžœŸ œ|˜šKšŸœ Ÿœ˜KšŸœQ˜X———™ KšœŸœ˜*K˜Kšž œŸœH˜\KšœŸœ˜.K˜KšžœŸœ?˜YK˜Kšž œŸœ*˜:Kšœ Ÿœ˜&K˜Kšž œŸœS˜gKšœŸœ˜.K˜Kšž œŸœ!ŸœM˜‡KšœŸœ˜*K˜Kšž œŸœ(˜:K˜Kšž œŸœ ˜0K˜—KšŸœ˜—K˜K˜—…—.