快速实现创建用户账号的功能
Roy
• 发表于:2022-07-27 18:12:32 • 更新于:2023-12-26 10:46:03
950

目标:

通常情况下,用户账号的新增是平台自带的,管理员只需切换到“用户管理”界面即可新增,如果用户表额外新增了一些字段,平台自带的用户新增功能就无法满足需求,这种情况下可以另行设计一个用户新增的功能。

实现步骤:

1、为用户表添加账号、密码等额外属性。

快速实现创建用户账号的功能

2、创建“新增用户”的功能,添加新增用户表步骤

快速实现创建用户账号的功能

3、点击“设置”进入属性选择项卡,设置属性填写规则

姓名:必填

快速实现创建用户账号的功能

账号:必填,正则表达式(^[a-zA-Z][0-9a-zA-Z#!*.@_]{5,15}$),正则提示(账号以英文开头,6到16位的数字/字母/下划线),输入提示(以英文开头,6到16位的数字/字母/下划线)

快速实现创建用户账号的功能

密码:必填,正则表达式(^[a-zA-Z0-9!@#]{6,16}$),正则提示(6~16位数字/字母),输入提示(6~16位数字/字母)

快速实现创建用户账号的功能

角色:必填

快速实现创建用户账号的功能

其他属性根据需求设置。

 

4、添加编程步骤,编写以下代码

async function runProcess($model = model, $plugin = plugin, $params) {

    let info = $params.info; //新增用户表步骤数据

    let userEntity = "5fa4cf9e996d7677664eae25";//自行获取用户表entity

    //将创建的用户数据删除(此数据没有_user属性,为无效用户,使用接口创建用户后会新建一条有效记录)

    await $plugin.data.removeData(userEntity, info._id);

 

    let roleField = info["5fa4cf9e996d7677664eae27"]; //用户表的角色属性field自行获取

    let roleEntity = "5fa4cf9e996d7677664eae22";//自行获取角色表id

    let role = await $plugin.data.getData(roleEntity, roleField); //查询角色信息

    let roleId = role._role; //角色id,注意:此id非角色表的数据_id

    /**

     * $plugin.admin.createUser(account,pwd,name,phone)

     * 创建用户接口

     * 此接口仅管理员有权限调用

     * @params account 账号 必填

     * @params pwd 密码 必填

     * @params name 昵称 非必填

     * @params phone 手机 非必填

     * @return  成功返回用户_user 

    */

    let _user = await $plugin.admin.createUser(

        info["60580e1f746bcb7068746e1a"],//accountfield自行获取

        roleId,//role

        info["60580e24746bcb7068746e1b"],//pwqfield自行获取

        info["60580de44ae8b87062fdf6b0"],//namefield自行获取

    );

    //根据返回的_user 查询接口创建的用户数据

    let userQuery = await $plugin.data.queryData(userEntity, { _user });

    if (userQuery.length > 0) {

        let user = userQuery[0];

        info["60580e24746bcb7068746e1b"] = "";//密码属性清空,一般不显示出来field自行获取

        //更新额外添加的属性

        await $plugin.data.updateData(userEntity, user._id, info);

    } else {

        //创建失败,抛出错误提示

        await $model.error(-1, "账号或手机号已存在!");

    }

}

 

5、保存代码,将功能发布上线即可,需要特别注意的是:此功能只能由系统管理员账号使用,否则无法创建用户。

 

效果:

快速实现创建用户账号的功能

 

有兴趣的可以研究更新用户接口,同理仅管理员可调用

$plugin.admin.createUser(account, updated)

 /**

 * 更新用户接口

 * 此接口仅管理员有权限调用

 * @params account 账号 必填

 * @params updated  更新数据json {account,pwd,name,phone}

 * @return  成功返回 true

*/


本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~