如何添加许多已知密码的用户

时间:2018-03-13 01:32:53

标签: rocket.chat

我在一个空气密封的测试平台中设置一个火箭聊天服务器,我会让成千上万的自动用户互相交谈以产生网络流量。我看到用户通过CSV导入了here。这让我可以创建我的用户,但不能使用预先指定的密码。查看programs/server/packages/rocketchat_importer-csv.js我看到它将密码设置为包含当前日期的公式字符串。

这与我的需求的随机密码一样好。

有没有办法在CSV中包含另一列我可以为每个用户分配密码?

我在Ubuntu 16.04.4上通过快照安装它,如果这会影响任何东西。

1 个答案:

答案 0 :(得分:1)

最后,我编写了一个python脚本来完成对CSV每行的Web请求。这是我想出的:

import csv
import json
import requests

def main(csv_path, admin_user, admin_pass, base_url):
    """
    Read the given CSV of the format:
        loginname, email, real name, password

    and create all the users described in it in the Rocket.Chat server
    available at `base_url`
    """
    login_json = json.dumps({'username': admin_user, 'password': admin_pass})
    response = requests.post(base_url + '/api/v1/login', data=login_json)
    data = response.json()['data']
    token = data['authToken']
    userid = data['userId']
    headers = {
        'X-Auth-Token': token,
        'X-User-Id': userid,
        'Content-type': 'application/json',
    }

    with open(csv_path) as raw:
        reader = csv.reader(raw)
        for user in reader:
            request = {
                'username': user[0],
                'email': user[1],
                'name': user[2],
                'password': user[3],
            }
        ret = requests.post(base_url + '/api/v1/users.create',
            data=json.dumps(request), headers=headers)