X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/959d888c17d1403d2eeecc19bc4b5e2c8d1debf6..c842e5e6424e39757c43950456c66e7bb14c32c8:/Products/Plinn/skins/custom_generic/join_form.py diff --git a/Products/Plinn/skins/custom_generic/join_form.py b/Products/Plinn/skins/custom_generic/join_form.py index 1513e25..0e07d03 100644 --- a/Products/Plinn/skins/custom_generic/join_form.py +++ b/Products/Plinn/skins/custom_generic/join_form.py @@ -1,8 +1,11 @@ -##parameters=b_start=0, member_id='', given_name='', name='', member_email='', password='', confirm='', send_password='', add='', cancel='', ajax='' +##parameters=member_id='', given_name='', name='', member_email='', email_as_login='', password='', confirm='', add='', ajax='' ## from Products.CMFCore.utils import getToolByName from Products.CMFDefault.permissions import ManageUsers from Products.Plinn.RegistrationTool import MODE_ANONYMOUS, MODE_REVIEWED +from Products.Plinn.utils import translate +def _(message) : return translate(message, context).encode('utf-8') + mtool = getToolByName(script, 'portal_membership') ptool = getToolByName(script, 'portal_properties') @@ -17,15 +20,31 @@ is_usermanager = mtool.checkPermission(ManageUsers, mtool) form = context.REQUEST.form -if add and \ - context.validatePassword(**form) and \ - context.members_add_control(**form) and \ - context.setRedirect(atool, 'user/join', b_start=b_start, ajax=ajax): - return -elif cancel and \ - context.setRedirect(mtool, 'global/manage_members', b_start=b_start, ajax=ajax): - return +if add : + if validate_email : + password = confirm = rtool.generatePassword() + else : + ok = context.validatePassword(**form) + try : + if email_as_login : + member_id = member_email + rtool.addMember(id=member_id, password=password, + properties={'username': member_id, + 'given_name' : given_name, + 'name' : name, + 'email': member_email}) + context.setStatus(True, _('Success!')) + except ValueError, errmsg: + context.setStatus(False, errmsg) + + + +# if add and \ +# context.validatePassword(**form) and \ +# context.members_add_control(**form) and \ +# context.setRedirect(atool, 'user/join', b_start=b_start, ajax=ajax): +# return options = {} @@ -33,18 +52,14 @@ if context.REQUEST.get('portal_status_message', '') == 'Success!': is_anon = False is_newmember = True -options['title'] = is_usermanager and 'Register Member' or 'Become a Member' options['member_id'] = member_id options['given_name'] = given_name options['name'] = name options['member_email'] = member_email options['password'] = is_newmember and context.REQUEST.get('password', '') or '' -options['send_password'] = send_password options['portal_url'] = portal_url options['isAnon'] = is_anon -options['isAnonOrUserManager'] = is_anon or is_usermanager options['isNewMember'] = is_newmember -options['isOrdinaryMember'] = not (is_anon or is_newmember or is_usermanager) options['validate_email'] = validate_email options['isAnonRegistration'] = rtool.getMode() == MODE_ANONYMOUS options['isReviewedRegistration'] = rtool.getMode() == MODE_REVIEWED @@ -55,8 +70,7 @@ if is_newmember: buttons.append( {'name': 'login', 'value': 'Log in'} ) else: target = atool.getActionInfo('user/join')['url'] - buttons.append( {'name': 'add', 'value': 'Register'} ) - buttons.append( {'name': 'cancel', 'value': 'Cancel'} ) + buttons.append( {'name': 'add', 'value': _('Join')} ) options['form'] = { 'action': target, 'listButtonInfos': tuple(buttons) } options['ajax']=ajax