Modernisation de l'inscription (suite).
[Plinn.git] / Products / Plinn / skins / custom_generic / join_form.py
index 1513e25..0e07d03 100644 (file)
@@ -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