大数跨境

场景应用:创建用户账号遇到问题了怎么办?

场景应用:创建用户账号遇到问题了怎么办? 白码
2022-01-14
1

点击蓝字


关注我们


最近有用户提了一些关于创建用户时的小需求:比如在创建账号的同时添加一些别的字段,而不是在创建完后再创建一个表来添加;又比如可不可以让除了超级管理员以外的普通管理员也可以创建子账号呢?

那其实这两个需求都可以通过用户管理拓展来实现,一起来看看怎么操作吧!


用户管理拓展

Function Description

场景描述

使用功能流程搭建用户管理功能,可实现以下两个应用场景。

  1. 除超级管理员外的普通管理员也可创建子账号供员工使用系统

    一般情况下只有系统超级管理员才可进入系统设置进行用户管理,除系统超级管理员以外的管理员无法创建子账号给他人使用。而实现用户管理功能后,拥有此功能权限的普通管理员便可在用户端直接创建账号并修改账号信息。

  2. 在创建账号的同时填写除系统字段外的信息:用户管理页面在添加子用户时无法配置除账号、密码、昵称、角色以外的其他附加信息。使用功能流程搭建实现用户管理的功能后,可以实现在创建账号的同时添加其他需要的用户信息,例如部门、职务等,无需再创建一个用户信息表进行记录。


实现效果

创建用户:

修改用户:


实现步骤

优化用户表字段

为用户表添加所需的额外字段,例如部门、职务、联系方式、状态、入职离职时间等。


创建员工(用户)信息数据集

创建数据集用于在用户端查看数据。


新增用户功能

1.创建一个新增用户的功能,设置各个字段的必填选项以及填写规则。

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

密码:必填,需要以6~16位数字/字母组成,正则表达式:^[a-zA-Z0-9!@#]{6,16}$


2.添加编程步骤,代码如下:


向上滑动阅览


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


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

    let userEntity = "619afd0a280dbaf7840d328a";//自行获取用户表entity

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

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

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

    let roleEntity = "619afd0a280dbaf7840d3284";//自行获取角色表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["61dd49e68c147132ae74d970"],//account,field自行获取

        roleId,//role

        info["61dd49eac6f28c32b5a9f985"],//pwq,field自行获取

        info["61dd47a08c147132ae74bd15"],//name,field自行获取

    );

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

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

    if (userQuery.length > 0) {

        let user = userQuery[0];

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

        //更新额外添加的属性

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

    } else {

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

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

    }

}




修改用户功能

可以对子账号进行修改操作,可对用户的昵称、密码以及角色进行修改。

1.添加一个选择用户数据步骤。

2.添加一个关联获取用户数据步骤,配置相关字段的必填选项以及正则表达式。

密码与角色是必填项,密码的正则校验与上方新增功能相同。

3.添加编程步骤,代码如下:


向上滑动阅览


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

    let info = $params.info;


    let userEntity = "619afd0a280dbaf7840d328a";//自行获取用户表entity

    let account = info["61dd49e68c147132ae74d970"]; //用户表的账号属性

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

    let roleEntity = "619afd0a280dbaf7840d3284";//自行获取角色表id

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

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

    let pwd =  info["61dd49eac6f28c32b5a9f985"];

    let name = info["61dd47a08c147132ae74bd15"];

     

    let _user = await $plugin.admin.updateUser(

        account,

        {

            role,

            pwd ,

            name,

        }

    );

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

    if (userQuery.length > 0) {

        let user = userQuery[0];

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

        //更新额外添加的属性

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

    }

}




权限分配

绑定权限后,拥有此功能权限的用户便可在用户端使用用户管理功能。


有任何建议或者需求都可以扫描下方的二维码添加客服来跟我们说哦~


白码科技 · BAIMA

扫描二维码添加客服微信

有任何问题都可以询问客服哦~

点击“阅读原文”了解更多白码资讯!

【声明】内容源于网络
0
0
白码
白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
内容 125
粉丝 0
白码 白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
总阅读39
粉丝0
内容125