fix #73 - add migration to docs
This commit is contained in:
@@ -5,6 +5,7 @@ const mail = require('../mail')
|
||||
const { user: User } = require('../models')
|
||||
const settingsController = require('./settings')
|
||||
const debug = require('debug')('user:controller')
|
||||
const linkify = require('linkifyjs')
|
||||
|
||||
const userController = {
|
||||
|
||||
@@ -79,14 +80,22 @@ const userController = {
|
||||
if (!settingsController.settings.allow_registration) { return res.sendStatus(404) }
|
||||
const n_users = await User.count()
|
||||
try {
|
||||
req.body.recover_code = crypto.randomBytes(16).toString('hex')
|
||||
|
||||
// the first registered user will be an active admin
|
||||
if (n_users === 0) {
|
||||
req.body.is_active = req.body.is_admin = true
|
||||
} else {
|
||||
req.body.is_active = false
|
||||
const user = await User.create(req.body)
|
||||
return res.json(user)
|
||||
}
|
||||
|
||||
req.body.is_active = false
|
||||
|
||||
// check email
|
||||
if (!linkify.test(req.body.email, 'email')) {
|
||||
return res.status(404).json('Invalid email')
|
||||
}
|
||||
|
||||
req.body.recover_code = crypto.randomBytes(16).toString('hex')
|
||||
debug('Register user ', req.body.email)
|
||||
const user = await User.create(req.body)
|
||||
debug(`Sending registration email to ${user.email}`)
|
||||
|
||||
@@ -10,7 +10,6 @@ module.exports = (sequelize, DataTypes) => {
|
||||
type: DataTypes.STRING,
|
||||
unique: { msg: 'error.email_taken' },
|
||||
validate: {
|
||||
isEmail: true,
|
||||
notEmpty: true
|
||||
},
|
||||
index: true,
|
||||
|
||||
@@ -145,7 +145,7 @@ async function setupQuestionnaire (is_docker, db) {
|
||||
}
|
||||
questions.push({
|
||||
name: 'admin.email',
|
||||
message: 'Admin email (a first user with this username will be created, also used as sender address)',
|
||||
message: 'Admin email',
|
||||
default: options => {
|
||||
const baseurl = new url.URL(options.baseurl)
|
||||
return (
|
||||
|
||||
@@ -43,7 +43,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
// create admin user
|
||||
consola.info('Create admin user', admin)
|
||||
consola.info(`Create admin with email: ${admin.email}`)
|
||||
await db.user.create({
|
||||
email: admin.email,
|
||||
password: admin.password,
|
||||
|
||||
Reference in New Issue
Block a user