def add_user_and_send_notifications(obj, groupname, template_name): current_user = api.user.get_current() portal = api.portal.get() grant_roles = False if 'Reviewer' not in portal.get_local_roles_for_userid( current_user.getId()): api.user.grant_roles(user=current_user, obj=portal, roles=[u'Reviewer']) grant_roles = True username, created = utils.create_key_user_if_not_exists(obj) group = utils.create_group_if_not_exists(groupname) group.addMember(username) if grant_roles: api.user.revoke_roles(user=current_user, obj=portal, roles=[u'Reviewer']) utils._send_notification(obj, template_name, username, created)
def render(self): cat = getToolByName(self.context, 'portal_catalog') gt = getToolByName(self.context, 'portal_groups') rt = getToolByName(self.context, 'portal_registration') properties = api.portal.get_tool('portal_properties') EMAIL_FILTER_FOP = getattr( properties.site_properties, 'EMAIL_FILTER_FOP', [] ) created_users = [] existed_users = [] failed = [] send_email = bool(self.request.get('send_email', False)) for fp in cat(portal_type=['osha.hwccontent.focalpoint']): obj = fp.getObject() if len(EMAIL_FILTER_FOP) and obj.key_email not in EMAIL_FILTER_FOP: continue username, created = utils.create_key_user_if_not_exists(obj) if username is not None: group = gt.getGroupById(FOP_GROUP_NAME) if group is None: gt.addGroup(FOP_GROUP_NAME) group = gt.getGroupById(FOP_GROUP_NAME) group.addMember(username) self.request.set('is_fop', True) self.request.set('name', obj.key_name.encode('utf-8').strip()) if send_email: rt.mailPassword(username, self.request) if created: created_users.append(u"{0} <a href='{1}'>{2}</a>".format( username, obj.absolute_url(), safe_unicode(obj.Title()))) else: existed_users.append(u"{0} <a href='{1}'>{2}</a>".format( username, obj.absolute_url(), safe_unicode(obj.Title()))) else: failed.append(u"<a href='{0}'>{1}</a>".format( obj.absolute_url(), safe_unicode(obj.Title()))) msg = ( u'<html><p>Send email (enable via send_email=1): {0}' u'<h2>Created users:</h2><p>{1}</p>' u'<h2>Existing users:</h2><p>{2}</p>' u'<h2>Failed profiles:</h2><p>{3}</p></html>' ).format( send_email, u'<br>'.join(created_users), u'<br>'.join(existed_users), u'<br>'.join(failed) ) return msg
def render(self): cat = getToolByName(self.context, 'portal_catalog') gt = getToolByName(self.context, 'portal_groups') rt = getToolByName(self.context, 'portal_registration') properties = api.portal.get_tool('portal_properties') EMAIL_FILTER_FOP = getattr(properties.site_properties, 'EMAIL_FILTER_FOP', []) created_users = [] existed_users = [] failed = [] send_email = bool(self.request.get('send_email', False)) for fp in cat(portal_type=['osha.hwccontent.focalpoint']): obj = fp.getObject() if len(EMAIL_FILTER_FOP) and obj.key_email not in EMAIL_FILTER_FOP: continue username, created = utils.create_key_user_if_not_exists(obj) if username is not None: group = gt.getGroupById(FOP_GROUP_NAME) if group is None: gt.addGroup(FOP_GROUP_NAME) group = gt.getGroupById(FOP_GROUP_NAME) group.addMember(username) self.request.set('is_fop', True) self.request.set('name', obj.key_name.encode('utf-8').strip()) if send_email: rt.mailPassword(username, self.request) if created: created_users.append(u"{0} <a href='{1}'>{2}</a>".format( username, obj.absolute_url(), safe_unicode(obj.Title()))) else: existed_users.append(u"{0} <a href='{1}'>{2}</a>".format( username, obj.absolute_url(), safe_unicode(obj.Title()))) else: failed.append(u"<a href='{0}'>{1}</a>".format( obj.absolute_url(), safe_unicode(obj.Title()))) msg = (u'<html><p>Send email (enable via send_email=1): {0}' u'<h2>Created users:</h2><p>{1}</p>' u'<h2>Existing users:</h2><p>{2}</p>' u'<h2>Failed profiles:</h2><p>{3}</p></html>').format( send_email, u'<br>'.join(created_users), u'<br>'.join(existed_users), u'<br>'.join(failed)) return msg
def add_user_and_send_notifications(obj, groupname, template_name): username, created = utils.create_key_user_if_not_exists(obj) group = utils.create_group_if_not_exists(groupname) group.addMember(username) utils._send_notification(obj, template_name, username, created)
def test_create_partners_group_adds_partner_users(self): helpers.login(self.app, SITE_OWNER_NAME) username, created = create_key_user_if_not_exists(self.org) group = create_and_populate_partners_group() self.assertIn(username, group.getGroupMemberIds())