CoreID/app/controllers/auth/Forms.controller.js

54 lines
1.6 KiB
JavaScript
Raw Normal View History

2020-04-17 00:59:48 +00:00
const FormController = require('flitter-auth/controllers/Forms')
/*
* Handles views and processing for auth registration/login/logout/etc.
* Most handlers are inherited from the default flitter-auth/controllers/Forms
* controller, however you can override them here as you need.
*/
class Forms extends FormController {
static get services() {
2020-05-20 14:56:03 +00:00
return [...super.services, 'Vue', 'models']
}
async registration_provider_get(req, res, next) {
if ( req.session.auth.flow ) {
req.session.registrant_flow = req.session.auth.flow
}
2020-05-20 14:56:03 +00:00
return res.page('auth:register', {
...this.Vue.data({})
})
}
2020-04-17 00:59:48 +00:00
async finish_registration(req, res, next) {
if ( req.trap.has_trap() && req.trap.get_trap() === 'registrant_flow' ) await req.trap.end()
const dest = req.session.registrant_flow || '/dash/profile'
return res.redirect(dest)
}
async login_provider_get(req, res, next) {
2020-05-20 14:56:03 +00:00
const Setting = this.models.get('Setting')
return res.page('auth:login', {
...this.Vue.data({
login_message: req.session?.auth?.message || req.T('auth.sign_in_to_continue'),
2020-05-20 14:56:03 +00:00
registration_enabled: await Setting.get('auth.allow_registration')
}),
})
}
2020-04-22 21:56:39 +00:00
async logout_provider_present_success(req, res, next) {
return this.Vue.auth_message(res, {
message: req.T('auth.logged_out'),
2020-04-22 21:56:39 +00:00
next_destination: '/',
})
}
async logout_provider_clean_session(req, res, next) {
await req.user.logout(req)
return next()
}
2020-04-17 00:59:48 +00:00
}
module.exports = exports = Forms