39 lines
856 B
JavaScript
39 lines
856 B
JavaScript
'use strict'
|
|
|
|
/** @type {import('@adonisjs/framework/src/Hash')} */
|
|
const Hash = use('Hash')
|
|
|
|
/** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */
|
|
const Model = use('Model')
|
|
|
|
class User extends Model {
|
|
static boot () {
|
|
super.boot()
|
|
|
|
/**
|
|
* A hook to hash the user password before saving
|
|
* it to the database.
|
|
*/
|
|
this.addHook('beforeSave', async (userInstance) => {
|
|
if (userInstance.dirty.password) {
|
|
userInstance.password = await Hash.make(userInstance.password)
|
|
}
|
|
})
|
|
}
|
|
|
|
/**
|
|
* A relationship on tokens is required for auth to
|
|
* work. Since features like `refreshTokens` or
|
|
* `rememberToken` will be saved inside the
|
|
* tokens table.
|
|
*
|
|
* @method tokens
|
|
*
|
|
* @return {Object}
|
|
*/
|
|
tokens () {
|
|
return this.hasMany('App/Models/Token')
|
|
}
|
|
}
|
|
|
|
module.exports = User
|