Exemple #1
0
 def createUsers(result):
     if not result:
         return False
     if not member_jids:
         return True
     deferred_list = []
     roster_jids = []
     for member_jid in member_jids:
         d = setupPrincipal(client, member_jid,
                            member_passwords[member_jid], roster_jids)
         roster_jids.append(member_jid)
         deferred_list.append(d)
     if deferred_list:
         d = defer.DeferredList(deferred_list, consumeErrors=True)
         return d
     return True
Exemple #2
0
 def createUsers(result):
     if not result:
         return False
     if not member_jids:
         return True
     deferred_list = []
     roster_jids = []
     for member_jid in member_jids:
         d = setupPrincipal(client,
                            member_jid,
                            member_passwords[member_jid],
                            roster_jids)
         roster_jids.append(member_jid)
         deferred_list.append(d)
     if deferred_list:
         d = defer.DeferredList(deferred_list, consumeErrors=True)
         return d
     return True
def onUserCreation(event):
    """Create a jabber account for new user.
    """

    client = getUtility(IAdminClient)
    xmpp_users = getUtility(IXMPPUsers)
    storage = getUtility(IPubSubStorage)
    principal = event.principal
    mtool = getToolByName(principal, 'portal_membership')

    principal_id = principal.getUserId()
    principal_jid = xmpp_users.getUserJID(principal_id)
    members_jids = [xmpp_users.getUserJID(member.getUserId())
                    for member in mtool.listMembers()]
    pass_storage = getUtility(IXMPPPasswordStorage)
    principal_pass = pass_storage.set(principal_id)

    storage.leaf_nodes.append(principal_id)
    storage.node_items[principal_id] = []
    storage.collections['people'].append(principal_id)
    storage.publishers[principal_id] = [principal_id]

    d = setupPrincipal(client, principal_jid, principal_pass, members_jids)
    return d