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.
CHACLOps: PROGRAM 127 VERSION 1 = BEGIN
DEPENDS UPON
BulkData (0) VERSION 1,
CHName (2) VERSION 0,
CHOps (2) VERSION 3,
Authentication (14) VERSION 2;
Types
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) };
Remote procedures
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;
Remote Errors
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.