--- /dev/null
+##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!')