| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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']
- }
- })
- }
|