X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/blobdiff_plain/76b00ab5bf3750a131294674c402ee17930b4309..7a3774dc788a78b27755a915b646fcc26404bf20:/afs/pts.py diff --git a/afs/pts.py b/afs/pts.py index 4d3e17c..95c6d4a 100644 --- a/afs/pts.py +++ b/afs/pts.py @@ -1,7 +1,12 @@ import collections from afs import _pts -class PTRelationSet(collections.MutableSet): +try: + SetMixin = collections.MutableSet +except AttributeError: + SetMixin = object + +class PTRelationSet(SetMixin): """Collection class for the groups/members of a PTEntry. This class, which acts like a set, is actually a view of the @@ -167,6 +172,16 @@ class PTRelationSet(collections.MutableSet): self._discard(elt) + def remove(self, elt): + """Remove an entity from a group; it must already be a member. + + If the entity is not a member, raise a KeyError. + """ + if elt not in self: + raise KeyError(elt) + + self.discard(elt) + class PTEntry(object): """An entry in the AFS protection database. @@ -200,7 +215,7 @@ class PTEntry(object): groups: For users, this contains a collection class representing the set of groups the user is a member of. - users: For groups, this contains a collection class representing + members: For groups, this contains a collection class representing the members of this group. """ _attrs = ('id', 'name', 'count', 'flags', 'ngroups', 'nusers') @@ -306,6 +321,13 @@ class PTEntry(object): for field in self._entry_attrs: setattr(self, '_%s' % field, self._pts.getEntry(getattr(info, field))) + +PTS_UNAUTH = 0 +PTS_AUTH = 1 +PTS_FORCEAUTH = 2 +PTS_ENCRYPT = 3 + + class PTS(_pts.PTS): """A connection to an AFS protection database. @@ -323,12 +345,14 @@ class PTS(_pts.PTS): Args: cell: The cell to connect to. If None (the default), PTS connects to the workstations home cell. - sec: The security level to connect with, an integer from 0 to 3: - - 0: unauthenticated connection - - 1: try authenticated, then fall back to unauthenticated - - 2: fail if an authenticated connection can't be established - - 3: same as 2, plus encrypt all traffic to the protection - server + sec: The security level to connect with: + - PTS_UNAUTH: unauthenticated connection + - PTS_AUTH: try authenticated, then fall back to + unauthenticated + - PTS_FORCEAUTH: fail if an authenticated connection can't be + established + - PTS_ENCRYPT: same as PTS_FORCEAUTH, plus encrypt all traffic + to the protection server Attributes: realm: The Kerberos realm against which this cell authenticates