@ -23,23 +23,29 @@ class WelcomeController extends SiteController {
captcha . loadFont ( path . join ( this . dtp . config . root , 'client' , 'fonts' , 'Dirty Sweb.ttf' ) ) ;
function preventUserAccess ( req , res , next ) {
if ( req . user ) {
return res . redirect ( 301 , '/' ) ;
}
return next ( ) ;
}
const router = express . Router ( ) ;
this . dtp . app . use ( '/welcome' , welcomeLimiter , async ( req , res , next ) => {
res . locals . currentView = 'welcome' ;
return next ( ) ;
} , router ) ;
router . get ( '/core-member' , this . getWelcomeCoreMember . bind ( this ) ) ;
router . get ( '/core-member' , preventUserAccess , this . getWelcomeCoreMember . bind ( this ) ) ;
router . get ( '/signup/captcha' , this . getSignupCaptcha . bind ( this ) ) ;
router . get ( '/signup' , this . getSignupView . bind ( this ) ) ;
router . get ( '/login' , this . getLoginView . bind ( this ) ) ;
router . get ( '/' , this . getHomeView . bind ( this ) ) ;
router . get ( '/signup' , preventUserAccess , this . getSignupView . bind ( this ) ) ;
router . get ( '/login' , preventUserAccess , this . getLoginView . bind ( this ) ) ;
router . get ( '/' , preventUserAccess , this . getHomeView . bind ( this ) ) ;
return router ;
}
async getWelcomeCoreMember ( req , res ) {
await this . checkForUser ( req , res ) ;
res . render ( 'welcome/core-member' ) ;
}
@ -59,33 +65,19 @@ class WelcomeController extends SiteController {
}
async getSignupView ( req , res ) {
await this . checkForUser ( req , res ) ;
req . session . captcha = req . session . captcha || { } ;
req . session . captcha . signup = captcha . randomText ( 4 + Math . floor ( Math . random ( ) * 4 ) ) ;
res . render ( 'welcome/signup' ) ;
}
async getLoginView ( req , res ) {
await this . checkForUser ( req , res ) ;
res . locals . loginResult = req . session . loginResult ;
res . render ( 'welcome/login' ) ;
}
async getHomeView ( req , res , next ) {
try {
await this . checkForUser ( req , res ) ;
res . render ( 'welcome/index' ) ;
} catch ( error ) {
return next ( error ) ;
}
async getHomeView ( req , res ) {
res . render ( 'welcome/index' ) ;
}
async checkForUser ( req , res ) {
if ( req . user ) {
res . redirect ( 301 , '/' ) ;
}
}
}
module . exports = {