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"
|
"Project-Id-Version: 0.13.0\n"
|
||||||
"POT-Creation-Date: 2007-05-22 12:00 CET\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"
|
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -86,6 +86,9 @@ msgstr "Thema bearbeiten..."
|
||||||
msgid "Modify topic."
|
msgid "Modify topic."
|
||||||
msgstr "Thema ändern"
|
msgstr "Thema ändern"
|
||||||
|
|
||||||
|
msgid "Please correct the indicated errors."
|
||||||
|
msgstr "Bitte berichtigen Sie die angezeigten Fehler."
|
||||||
|
|
||||||
# blog
|
# blog
|
||||||
|
|
||||||
msgid "Edit Blog Post..."
|
msgid "Edit Blog Post..."
|
||||||
|
@ -759,12 +762,18 @@ msgstr "Teilnehmerregistrierung"
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Benutzer registrieren"
|
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."
|
msgid "Your old password was not entered correctly."
|
||||||
msgstr "Sie haben Ihr altes Passwort nicht korrekt eingegeben."
|
msgstr "Sie haben Ihr altes Passwort nicht korrekt eingegeben."
|
||||||
|
|
||||||
msgid "Password and password confirmation do not match."
|
msgid "Password and password confirmation do not match."
|
||||||
msgstr "Die Passwort-Wiederholung stimmt nicht mit dem eingegebenen Passwort überein."
|
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."
|
msgid "Your password has been changed."
|
||||||
msgstr "Ihr Passwort wurde geändert."
|
msgstr "Ihr Passwort wurde geändert."
|
||||||
|
|
||||||
|
|
|
@ -111,6 +111,10 @@ class BaseMemberRegistration(NodeView):
|
||||||
def item(self):
|
def item(self):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def data(self):
|
||||||
|
return self.request.form
|
||||||
|
|
||||||
def getPrincipalAnnotation(self, principal):
|
def getPrincipalAnnotation(self, principal):
|
||||||
return annotations(principal).get(ANNOTATION_KEY, None)
|
return annotations(principal).get(ANNOTATION_KEY, None)
|
||||||
|
|
||||||
|
@ -201,12 +205,13 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
|
||||||
regMan = IMemberRegistrationManager(self.context.getLoopsRoot())
|
regMan = IMemberRegistrationManager(self.context.getLoopsRoot())
|
||||||
pw = generateName()
|
pw = generateName()
|
||||||
email = form.get('email')
|
email = form.get('email')
|
||||||
result = regMan.register(login, pw,
|
try:
|
||||||
form.get('lastName'), form.get('firstName'),
|
result = regMan.register(login, pw,
|
||||||
email=email,)
|
form.get('lastName'), form.get('firstName'),
|
||||||
if isinstance(result, dict):
|
email=email,)
|
||||||
fi = formState.fieldInstances[result['fieldName']]
|
except ValueError, e:
|
||||||
fi.setError(result['error'], self.formErrors)
|
fi = formState.fieldInstances['loginName']
|
||||||
|
fi.setError('duplicate_loginname', self.formErrors)
|
||||||
formState.severity = max(formState.severity, fi.severity)
|
formState.severity = max(formState.severity, fi.severity)
|
||||||
return True
|
return True
|
||||||
self.object = result
|
self.object = result
|
||||||
|
@ -225,11 +230,11 @@ class SecureMemberRegistration(BaseMemberRegistration, CreateForm):
|
||||||
url = u'%s/selfservice_confirmation.html?login=%s&id=%s' % (
|
url = u'%s/selfservice_confirmation.html?login=%s&id=%s' % (
|
||||||
baseUrl, userid, id,)
|
baseUrl, userid, id,)
|
||||||
recipients = [recipient]
|
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')
|
message = (message + url).encode('UTF-8')
|
||||||
sender = 'webmaster@zeitraum-bayern.de'
|
sender = 'helmutm@cy55.de'
|
||||||
msg = MIMEText(message, 'plain', 'utf-8')
|
msg = MIMEText(message, 'plain', 'utf-8')
|
||||||
msg['Subject'] = 'Benutzer-Registrierung'
|
msg['Subject'] = _(u'confirmation_mail_subject')
|
||||||
msg['From'] = sender
|
msg['From'] = sender
|
||||||
msg['To'] = ', '.join(recipients)
|
msg['To'] = ', '.join(recipients)
|
||||||
mailhost = component.getUtility(IMailDelivery, 'Mail')
|
mailhost = component.getUtility(IMailDelivery, 'Mail')
|
||||||
|
@ -263,12 +268,10 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
|
||||||
schema = super(ConfirmMemberRegistration, self).schema
|
schema = super(ConfirmMemberRegistration, self).schema
|
||||||
schema.fields.remove('birthDate')
|
schema.fields.remove('birthDate')
|
||||||
schema.fields.remove('phoneNumbers')
|
schema.fields.remove('phoneNumbers')
|
||||||
schema.fields.loginName.readonly = True
|
schema.fields.remove('loginName')
|
||||||
schema.fields.reorder(-2, 'loginName')
|
schema.fields.remove('firstName')
|
||||||
schema.fields.firstName.readonly = True
|
schema.fields.remove('lastName')
|
||||||
schema.fields.lastName.readonly = True
|
schema.fields.remove('email')
|
||||||
schema.fields.firstName.readonly = True
|
|
||||||
schema.fields.email.readonly = True
|
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
@ -285,11 +288,19 @@ class ConfirmMemberRegistration(BaseMemberRegistration, Form):
|
||||||
id = form.get('id')
|
id = form.get('id')
|
||||||
if not id or id != pa.get('id'):
|
if not id or id != pa.get('id'):
|
||||||
return True
|
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')
|
pw = form.get('password')
|
||||||
pwConfirm = form.get('passwordConfirm')
|
pwConfirm = form.get('passwordConfirm')
|
||||||
if pw != pwConfirm:
|
if pw != pwConfirm:
|
||||||
msg = self.errorMessages['confirm_nomatch']
|
fi = formState.fieldInstances['password']
|
||||||
self.request.form['message'] = msg
|
fi.setError('confirm_nomatch', self.formErrors)
|
||||||
|
formState.severity = max(formState.severity, fi.severity)
|
||||||
return True
|
return True
|
||||||
del pa['id']
|
del pa['id']
|
||||||
del pa['timestamp']
|
del pa['timestamp']
|
||||||
|
|
|
@ -79,7 +79,8 @@ class MemberRegistrationManager(object):
|
||||||
if pfName is None:
|
if pfName is None:
|
||||||
pfName = options(self.principalfolder_key,
|
pfName = options(self.principalfolder_key,
|
||||||
(self.default_principalfolder,))[0]
|
(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:
|
if len(groups)==0:
|
||||||
groups = options(self.groups_key, ())
|
groups = options(self.groups_key, ())
|
||||||
self.setGroupsForPrincipal(pfName, userId, groups=groups)
|
self.setGroupsForPrincipal(pfName, userId, groups=groups)
|
||||||
|
|
Loading…
Add table
Reference in a new issue