update patch

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@873 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one
2009-03-15 07:07:09 +00:00
parent 68e5304cca
commit 9417763d39
2 changed files with 42 additions and 63 deletions

View File

@@ -1,15 +1,15 @@
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
Date: 2009-02-18
Initial Package Version: unknown
Date: 2009-03-15
Initial Package Version: 0.2.1
Origin: http://trac-hacks.org/wiki/RegistrationConfirmationPatch
Upstream Status: unknown
Description: This is a patch for AccountManagerPlugin that adds an
IRegistrationConfirmation extension point that enables pluggable
verifications for new user registration.
Description: This is a patch for AccountManagerPlugin that adds an
IRegistrationConfirmation extension point that enables pluggable
verifications for new user registration.
diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/api.py trac-acct_mgr-0.2.1/acct_mgr/api.py
--- trac-acct_mgr-0.2.1.orig/acct_mgr/api.py 2009-02-18 09:10:33.000000000 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/api.py 2009-02-18 09:42:33.254276668 +0000
--- trac-acct_mgr-0.2.1.orig/acct_mgr/api.py 2009-03-15 06:40:44.875670135 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/api.py 2009-03-15 06:41:38.225188601 +0000
@@ -77,6 +77,19 @@
"""User deleted
"""
@@ -31,8 +31,8 @@ diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/api.py trac-acct_mgr-0.2.1/acct_mgr
"""The AccountManager component handles all user account management methods
provided by the IPasswordStore interface.
diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/templates/register.html trac-acct_mgr-0.2.1/acct_mgr/templates/register.html
--- trac-acct_mgr-0.2.1.orig/acct_mgr/templates/register.html 2009-02-18 09:10:33.000000000 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/templates/register.html 2009-02-18 09:42:33.256586814 +0000
--- trac-acct_mgr-0.2.1.orig/acct_mgr/templates/register.html 2009-03-15 06:40:44.873359012 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/templates/register.html 2009-03-15 06:41:38.227503636 +0000
@@ -43,6 +43,11 @@
class="textwidget" size="20" />
</label>
@@ -46,30 +46,13 @@ diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/templates/register.html trac-acct_m
<fieldset>
<legend>Optional</legend>
diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/web_ui.py trac-acct_mgr-0.2.1/acct_mgr/web_ui.py
--- trac-acct_mgr-0.2.1.orig/acct_mgr/web_ui.py 2009-02-18 09:10:33.000000000 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/web_ui.py 2009-02-18 09:45:45.904094348 +0000
@@ -27,6 +27,7 @@
from genshi.builder import tag
from api import AccountManager
+from api import IRegistrationConfirmation
from acct_mgr.util import urandom
def _create_user(req, env, check_permissions=True):
@@ -351,6 +352,8 @@
implements(INavigationContributor, IRequestHandler, ITemplateProvider)
+ listeners = ExtensionPoint(IRegistrationConfirmation)
+
def __init__(self):
self._enable_check(log=True)
@@ -394,26 +397,42 @@
--- trac-acct_mgr-0.2.1.orig/acct_mgr/web_ui.py 2009-03-15 06:40:44.875670135 +0000
+++ trac-acct_mgr-0.2.1/acct_mgr/web_ui.py 2009-03-15 06:59:06.581876742 +0000
@@ -394,19 +394,28 @@
'name' : None,
'email' : None,
},
+ 'extra_required_content' : self._get_extra_content(req)
+ 'extra_required_content' : self._get_extra_content(req),
}
+ error = None
if req.method == 'POST' and action == 'create':
@@ -77,50 +60,46 @@ diff -Naur trac-acct_mgr-0.2.1.orig/acct_mgr/web_ui.py trac-acct_mgr-0.2.1/acct_
- _create_user(req, self.env)
- except TracError, e:
- data['registration_error'] = e.message
- formdata = getattr(e, 'acctmgr', None)
- if formdata:
- data['acctmgr'] = formdata
- else:
- raise e
- else:
- req.redirect(req.href.login())
+ for listener in self.listeners:
+ error = listener.verify_registration(req)
+ if error is not None:
+ break
+ data['registration_error'] = error
+ if error is None:
+ try:
+ _create_user(req, self.env)
+ except TracError, e:
+ data['registration_error'] = e.message
formdata = getattr(e, 'acctmgr', None)
if formdata:
data['acctmgr'] = formdata
else:
raise e
- else:
- req.redirect(req.href.login())
+ else:
+ req.redirect(req.href.login())
+ try:
+ _create_user(req, self.env)
+ except TracError, e:
+ data['registration_error'] = e.message
+ formdata = getattr(e, 'acctmgr', None)
+ if formdata:
+ data['acctmgr'] = formdata
+ else:
+ raise e
+ else:
+ req.redirect(req.href.login())
+
data['reset_password_enabled'] = \
(self.env.is_component_enabled(AccountModule)
and NotificationSystem(self.env).smtp_enabled)
@@ -414,6 +423,14 @@
return 'register.html', data, None
-
+ def _get_extra_content(self, req):
+ ret = ""
+ for listener in self.listeners:
+ response = listener.pre_registration(req)
+ if response is not None:
+ ret += response
+ return ret
+
+ def _get_extra_content(self, req):
+ ret = ""
+ for listener in self.listeners:
+ response = listener.pre_registration(req)
+ if response is not None:
+ ret += response
+ return ret
+
# ITemplateProvider
def get_htdocs_dirs(self):
@@ -427,7 +446,7 @@
ClearSilver templates.
"""
from pkg_resources import resource_filename
- return [resource_filename(__name__, 'templates')]
+ return [resource_filename(__name__, 'templates')]
def if_enabled(func):