Déplacement pour eggification.
[Plinn.git] / 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 (file)
index 0000000..7216bd2
--- /dev/null
@@ -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!')