X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/skins/custom_control/members_add_control.py diff --git a/Products/Plinn/skins/custom_control/members_add_control.py b/Products/Plinn/skins/custom_control/members_add_control.py new file mode 100644 index 0000000..7216bd2 --- /dev/null +++ b/Products/Plinn/skins/custom_control/members_add_control.py @@ -0,0 +1,26 @@ +##parameters=member_id, given_name, name, password, member_email, send_password=False, **kw +##title=Add a member +## +from Products.CMFCore.utils import getToolByName +from Products.CMFDefault.permissions import ManageUsers +from Products.Plinn.RegistrationTool import MODE_REVIEWED + +mtool = getToolByName(script, 'portal_membership') +ptool = getToolByName(script, 'portal_properties') +rtool = getToolByName(script, 'portal_registration') + +try: + rtool.addMember( id=member_id, password=password, + properties={'username': member_id, + 'given_name' : given_name, + 'name' : name, + 'email': member_email} ) +except ValueError, errmsg: + return context.setStatus(False, errmsg) +else: + if send_password or (ptool.getProperty('validate_email') and rtool.getMode() != MODE_REVIEWED): + rtool.registeredNotify(member_id) + if mtool.checkPermission(ManageUsers, mtool): + return context.setStatus(True, 'Member registered.') + else: + return context.setStatus(True, 'Success!')