ITPub博客

首页 > 应用开发 > IT综合 > 快速实现创建用户账号的功能

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

原创 IT综合 作者:Roy155 时间:2021-03-23 15:07:11 0 删除 编辑

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

实现步骤:

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"],//account,field自行获取
        roleId,//role
        info["60580e24746bcb7068746e1b"],//pwq,field自行获取
        info["60580de44ae8b87062fdf6b0"],//name,field自行获取
    );
    //根据返回的_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
*/

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69981626/viewspace-2764447/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-08-14

  • 博文量
    41
  • 访问量
    32182