通常情況下,使用者賬號的新增是平臺自帶的,管理員只需切換到“使用者管理”介面即可新增,如果使用者表額外新增了一些欄位,白碼低程式碼平臺自帶的使用者新增功能就無法滿足需求,這種情況下可以另行設計一個使用者新增的功能。
實現步驟:
1、為使用者表新增賬號、密碼等額外屬性。
2、建立“新增使用者”的功能,新增新增使用者表步驟
姓名:必填
賬號:必填,正則表示式(^[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*/