+++ /dev/null
-##parameters=**kw
-from Products.CMFCore.utils import getToolByName
-from Products.photoprint.utils import translate
-from Products.CMFDefault.utils import translate as cmf_translate
-from Products.CMFCore.exceptions import AccessControl_Unauthorized
-from Products.Plinn.RegistrationTool import MODE_PASS_ANONYMOUS
-rtool = getToolByName(context, 'portal_registration')
-ptool = getToolByName(context, 'portal_properties')
-_ = lambda msg : translate(msg, context)
-
-kg = lambda name : kw.get(name, '').strip()
-
-cmfprops = {'username' : kg('member_id')
- ,'email' : kg('member_email')}
-
-failMessage = rtool.testPropertiesValidity(cmfprops)
-if failMessage is not None :
- return context.setStatus(False, cmf_translate(failMessage, context))
-
-mandatoryFields = [
- ('given_name', _('Please enter a given name.'))
- , ('name', _('Please enter a name.'))
- , ('member_email', _('Please enter an email.'))
- , ('member_id', _('Please enter a member id.'))
- , ('billing_address', _('Please enter a billing address.'))
- , ('billing_city', _('Please enter a city.'))
- , ('billing_zipcode', _('Please enter zip code.'))
- , ('country', _('Please enter a country.'))
- , ('phone', _('Please enter a phone.'))
- ]
-
-for name, failMessage in mandatoryFields :
- value = kg(name)
- if not value :
- return context.setStatus(False, failMessage)
-
-
-try:
- rtool.addMember( id=kg('member_id'),
- password=kg('password'),
- properties={'username' : kg('member_id')
- ,'given_name' : kg('given_name')
- ,'name' : kg('name')
- ,'email' : kg('member_email')
- ,'billing_address' : kg('billing_address')
- ,'billing_city' : kg('billing_city')
- ,'billing_zipcode' : kg('billing_zipcode')
- ,'country' : kg('country')
- ,'phone' : kg('phone')
- ,'collection_id' : kg('collection_id')
- ,'collection_password': kg('collection_password')} )
-except ValueError, errmsg:
- return context.setStatus(False, _(errmsg))
-except AccessControl_Unauthorized :
- if rtool.getMode() == MODE_PASS_ANONYMOUS :
- return context.setStatus(False, _('Wrong private collection credentials.'))
- raise
-
-
-if kg('send_password') or ptool.getProperty('validate_email') :
- rtool.registeredNotify(kg('member_id'))
-
-return context.setStatus(True, 'Success!')