Esempio n. 1
0
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)
Esempio n. 2
0
 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
Esempio n. 3
0
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)
Esempio n. 4
0
 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
Esempio n. 5
0
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)
Esempio n. 6
0
 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())
Esempio n. 7
0
 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())