Files
ctms-client/uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/module/register/register-admin.js
fm453 c62d15b288 首次完整推送,
V:1.20240808.006
2024-08-13 18:32:37 +08:00

73 lines
1.6 KiB
JavaScript

const {
userCollection
} = require('../../common/constants')
const {
ERROR
} = require('../../common/error')
const {
preRegisterWithPassword,
postRegister
} = require('../../lib/utils/register')
/**
* 注册管理员
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#register-admin
* @param {Object} params
* @param {String} params.username 用户名
* @param {String} params.password 密码
* @param {String} params.nickname 昵称
* @returns
*/
module.exports = async function (params = {}) {
const schema = {
username: 'username',
password: 'password',
nickname: {
type: 'nickname',
required: false
}
}
this.middleware.validate(params, schema)
const {
username,
password,
nickname
} = params
const getAdminRes = await userCollection.where({
role: 'admin'
}).limit(1).get()
if (getAdminRes.data.length > 0) {
const [admin] = getAdminRes.data
const appId = this.getUniversalClientInfo().appId
if (!admin.dcloud_appid || (admin.dcloud_appid && admin.dcloud_appid.includes(appId))) {
return {
errCode: ERROR.ADMIN_EXISTS,
errMsg: this.t('uni-id-admin-exists')
}
} else {
return {
errCode: ERROR.ADMIN_EXISTS,
errMsg: this.t('uni-id-admin-exist-in-other-apps')
}
}
}
const {
user,
extraData
} = await preRegisterWithPassword.call(this, {
user: {
username
},
password
})
return postRegister.call(this, {
user,
extraData: {
...extraData,
nickname,
role: ['admin']
}
})
}