[Checkins]
SVN: zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.
add a way to get a principal id based on the login
Fred L. Drake, Jr.
fdrake at gmail.com
Mon Aug 13 16:46:49 EDT 2007
Log message for revision 78799:
add a way to get a principal id based on the login
Changed:
U zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.py
U zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.txt
-=-
Modified: zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.py
===================================================================
--- zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.py 2007-08-13 19:13:38 UTC (rev 78798)
+++ zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.py 2007-08-13 20:46:48 UTC (rev 78799)
@@ -85,6 +85,16 @@
default=u'',
readonly=True)
+ def getIdByLogin(login):
+ """Return the principal id currently associated with login.
+
+ The return value includes the container prefix, but does not
+ include the PAU prefix.
+
+ KeyError is raised if no principal is associated with login.
+
+ """
+
contains(IInternalPrincipal)
@@ -289,6 +299,9 @@
return PrincipalInfo(id, internal.login, internal.title,
internal.description)
+ def getIdByLogin(self, login):
+ return self.prefix + self.__id_by_login[login]
+
def search(self, query, start=None, batch_size=None):
"""Search through this principal provider."""
search = query.get('search')
Modified: zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.txt
===================================================================
--- zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.txt 2007-08-13 19:13:38 UTC (rev 78798)
+++ zope.app.authentication/trunk/src/zope/app/authentication/principalfolder.txt 2007-08-13 20:46:48 UTC (rev 78799)
@@ -115,6 +115,19 @@
u'principal.16',
u'principal.17']
+There is an additional method that allows requesting the principal id
+associated with a login id. The method raises KeyError when there is
+no associated principal::
+
+ >>> principals.getIdByLogin("not-there")
+ Traceback (most recent call last):
+ KeyError: 'not-there'
+
+If there is a matching principal, the id is returned::
+
+ >>> principals.getIdByLogin("login1")
+ u'principal.p1'
+
Changing credentials
--------------------
Credentials can be changed by modifying principal-information objects:
More information about the Checkins
mailing list