self registration with confirmation working (needs still improvements: sender email, info messages)
This commit is contained in:
parent
7b9a85a586
commit
9427b8ccbd
4 changed files with 40 additions and 19 deletions
Binary file not shown.
|
@ -3,7 +3,7 @@ msgstr ""
|
|||
|
||||
"Project-Id-Version: 0.13.0\n"
|
||||
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
|
||||
"PO-Revision-Date: 2013-04-06 12:00 CET\n"
|
||||
"PO-Revision-Date: 2013-05-05 12:00 CET\n"
|
||||
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -86,6 +86,9 @@ msgstr "Thema bearbeiten..."
|
|||
msgid "Modify topic."
|
||||
msgstr "Thema ändern"
|
||||
|
||||
msgid "Please correct the indicated errors."
|
||||
msgstr "Bitte berichtigen Sie die angezeigten Fehler."
|
||||
|
||||
# blog
|
||||
|
||||
msgid "Edit Blog Post..."
|
||||
|
@ -759,12 +762,18 @@ msgstr "Teilnehmerregistrierung"
|
|||
msgid "Register"
|
||||
msgstr "Benutzer registrieren"
|
||||
|
||||
msgid "Login name already taken."
|
||||
msgstr "Die von Ihnen eingegebene Benutzerkennung ist schon vergeben."
|
||||
|
||||
msgid "Your old password was not entered correctly."
|
||||
msgstr "Sie haben Ihr altes Passwort nicht korrekt eingegeben."
|
||||
|
||||
msgid "Password and password confirmation do not match."
|
||||
msgstr "Die Passwort-Wiederholung stimmt nicht mit dem eingegebenen Passwort überein."
|
||||
|
||||
msgid "The user account has been created."
|
||||
msgstr "Ihr Benutzerkonto wurde eingerichtet."
|
||||
|
||||
msgid "Your password has been changed."
|
||||
msgstr "Ihr Passwort wurde geändert."
|
||||
|
||||
|
|
|
@ -111,6 +111,10 @@ class BaseMemberRegistration(NodeView):
|
|||
def item(self):
|
||||
return self
|
||||
|
||||
@Lazy
|
||||
def data(self):
|
||||
return self.request.form
|
||||
|
||||
def getPrincipalAnnotation(self, principal):
|
||||
return annotations(principal).get(ANNOTATION_KEY, None)
|
||||
|
||||
|
@ -201,12 +205,13 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
|
|||
regMan = IMemberRegistrationManager(self.context.getLoopsRoot())
|
||||
pw = generateName()
|
||||
email = form.get('email')
|
||||
result = regMan.register(login, pw,
|
||||
form.get('lastName'), form.get('firstName'),
|
||||
email=email,)
|
||||
if isinstance(result, dict):
|
||||
fi = formState.fieldInstances[result['fieldName']]
|
||||
fi.setError(result['error'], self.formErrors)
|
||||
try:
|
||||
result = regMan.register(login, pw,
|
||||
form.get('lastName'), form.get('firstName'),
|
||||
email=email,)
|
||||
except ValueError, e:
|
||||
fi = formState.fieldInstances['loginName']
|
||||
fi.setError('duplicate_loginname', self.formErrors)
|
||||
formState.severity = max(formState.severity, fi.severity)
|
||||
return True
|
||||
self.object = result
|
||||
|
@ -225,11 +230,11 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
|
|||
url = u'%s/selfservice_confirmation.html?login=%s&id=%s' % (
|
||||
baseUrl, userid, id,)
|
||||
recipients = [recipient]
|
||||
message = u'Um die Anmeldung abzuschliessen muessen Sie folgenden Link betaetigen:\n\n'
|
||||
message = _(u'confirmation_mail_text') + u':\n\n'
|
||||
message = (message + url).encode('UTF-8')
|
||||
sender = 'webmaster@zeitraum-bayern.de'
|
||||
sender = 'helmutm@cy55.de'
|
||||
msg = MIMEText(message, 'plain', 'utf-8')
|
||||
msg['Subject'] = 'Benutzer-Registrierung'
|
||||
msg['Subject'] = _(u'confirmation_mail_subject')
|
||||
msg['From'] = sender
|
||||
msg['To'] = ', '.join(recipients)
|
||||
mailhost = component.getUtility(IMailDelivery, 'Mail')
|
||||
|
@ -263,12 +268,10 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
|
|||
schema = super(ConfirmMemberRegistration, self).schema
|
||||
schema.fields.remove('birthDate')
|
||||
schema.fields.remove('phoneNumbers')
|
||||
schema.fields.loginName.readonly = True
|
||||
schema.fields.reorder(-2, 'loginName')
|
||||
schema.fields.firstName.readonly = True
|
||||
schema.fields.lastName.readonly = True
|
||||
schema.fields.firstName.readonly = True
|
||||
schema.fields.email.readonly = True
|
||||
schema.fields.remove('loginName')
|
||||
schema.fields.remove('firstName')
|
||||
schema.fields.remove('lastName')
|
||||
schema.fields.remove('email')
|
||||
return schema
|
||||
|
||||
def update(self):
|
||||
|
@ -285,11 +288,19 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
|
|||
id = form.get('id')
|
||||
if not id or id != pa.get('id'):
|
||||
return True
|
||||
instance = component.getAdapter(self.object, IInstance, name='editor')
|
||||
instance.template = self.schema
|
||||
self.formState = formState = instance.applyTemplate(data=form,
|
||||
fieldHandlers=self.fieldHandlers)
|
||||
#formState = self.formState = self.validate(form)
|
||||
if formState.severity > 0:
|
||||
return True
|
||||
pw = form.get('password')
|
||||
pwConfirm = form.get('passwordConfirm')
|
||||
if pw != pwConfirm:
|
||||
msg = self.errorMessages['confirm_nomatch']
|
||||
self.request.form['message'] = msg
|
||||
fi = formState.fieldInstances['password']
|
||||
fi.setError('confirm_nomatch', self.formErrors)
|
||||
formState.severity = max(formState.severity, fi.severity)
|
||||
return True
|
||||
del pa['id']
|
||||
del pa['timestamp']
|
||||
|
|
|
@ -79,7 +79,8 @@ class MemberRegistrationManager(object):
|
|||
if pfName is None:
|
||||
pfName = options(self.principalfolder_key,
|
||||
(self.default_principalfolder,))[0]
|
||||
self.createPrincipal(pfName, userId, password, lastName, firstName, useExisting=useExisting)
|
||||
self.createPrincipal(pfName, userId, password, lastName, firstName,
|
||||
useExisting=useExisting)
|
||||
if len(groups)==0:
|
||||
groups = options(self.groups_key, ())
|
||||
self.setGroupsForPrincipal(pfName, userId, groups=groups)
|
||||
|
|
Loading…
Add table
Reference in a new issue