--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -139,6 +139,20 @@
},
]
+ def project_url(self, user):
+ '''
+ :param user: a :class:`User <allura.model.auth.User>`
+ :rtype: str
+ '''
+ raise NotImplementedError, 'project_url'
+
+ def user_by_project_url(self, shortname):
+ '''
+ :param str: shortname
+ :rtype: user: a :class:`User <allura.model.auth.User>`
+ '''
+ raise NotImplementedError, 'user_by_project_url'
+
class LocalAuthenticationProvider(AuthenticationProvider):
'''
Stores user passwords on the User model, in mongo. Uses per-user salt and
@@ -184,6 +198,13 @@
for i in xrange(M.User.SALT_LEN))
hashpass = sha256(salt + password.encode('utf-8')).digest()
return 'sha256' + salt + b64encode(hashpass)
+
+ def project_url(self, user):
+ return '/u/' + user.username.replace('_', '-') + '/'
+
+ def user_by_project_url(self, shortname):
+ from allura import model as M
+ return M.User.query.get(username=shortname)
class LdapAuthenticationProvider(AuthenticationProvider):