Compare View

switch
from
...
to
 
Commits (2)

Changes

Showing 2 changed files Inline Diff

control-panel/lib/router-login.js
1 "use strict"; 1 "use strict";
2 2
3 const module_name = 'CONTROL_PANEL_' + require('path').basename(__filename); 3 const module_name = 'CONTROL_PANEL_' + require('path').basename(__filename);
4 4
5 const querystring = require('querystring'); 5 const querystring = require('querystring');
6 const express = require('express'); 6 const express = require('express');
7 const bodyParser = require('body-parser'); 7 const bodyParser = require('body-parser');
8 const router = express.Router(); 8 const router = express.Router();
9 9
10 const config = require('komodo-sdk/config'); 10 const config = require('komodo-sdk/config');
11 const logger = require('komodo-sdk/logger'); 11 const logger = require('komodo-sdk/logger');
12 12
13 const requestToCore = require('./request-to-core'); 13 const requestToCore = require('./request-to-core');
14 14
15 function pageLogin(req, res, next) { 15 function pageLogin(req, res, next) {
16 if (req.session && req.session.username && req.session.terminal) { 16 if (req.session && req.session.username && req.session.terminal) {
17 res.redirect('/'); 17 res.redirect('/');
18 return; 18 return;
19 } 19 }
20 20
21 res.render( 21 res.render(
22 req.app.locals.cp_views_dir + '/login.html', 22 req.app.locals.cp_views_dir + '/login.html',
23 { 23 {
24 ref: req.query.referer, 24 ref: req.query.referer,
25 msg: req.query.msg 25 msg: req.query.msg
26 } 26 }
27 ) 27 )
28 } 28 }
29 29
30 function pageLoginSubmitted(req, res, next) { 30 function pageLoginSubmitted(req, res, next) {
31 const method_name = 'pageLoginSubmitted'; 31 const method_name = 'pageLoginSubmitted';
32 32
33 if (!req || !req.body || !req.body.terminal_name || !req.body.password) { 33 if (!req || !req.body || !req.body.terminal_name || !req.body.password) {
34 const qs = { 34 const qs = {
35 msg: 'Nama terminal dan password harus diisi', 35 msg: 'Nama terminal dan password harus diisi',
36 ref: req.query.ref 36 ref: req.query.ref
37 }; 37 };
38 38
39 res.redirect('/login?' + querystring.stringify(qs)); 39 res.redirect('/login?' + querystring.stringify(qs));
40 return; 40 return;
41 } 41 }
42 42
43 const qs = { 43 const qs = {
44 terminal_name: req.body.terminal_name, 44 terminal_name: req.body.terminal_name,
45 web_password: req.body.password, 45 web_password: req.body.password,
46 request_by: config.handler_name || config.username || config.origin
46 request_by: config.handler_name || config.username || config.origin 47 }
47 } 48
48 49 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) {
49 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) { 50 if (err) {
50 if (err) { 51 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err});
51 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err}); 52 res.end('SOMETHING WRONG');
52 res.end('SOMETHING WRONG'); 53 return;
53 return; 54 }
54 } 55
55 56 const redirectQs = {
56 const redirectQs = { 57 terminal_name: req.body.terminal_name,
57 terminal_name: req.body.terminal_name, 58 ref: req.query.ref
58 ref: req.query.ref 59 }
59 } 60
60 61 if (coreResponse.message) {
61 if (coreResponse.message) { 62 redirectQs.msg = coreResponse.message;
62 redirectQs.msg = coreResponse.message; 63 }
63 } 64
64 65 if (coreResponse.error) {
65 if (coreResponse.error) { 66 res.redirect('/login?' + querystring.stringify(redirectQs));
66 res.redirect('/login?' + querystring.stringify(redirectQs)); 67 return;
67 return; 68 }
68 } 69
69 70 if (!coreResponse.terminal) {
70 if (!coreResponse.terminal) { 71 redirectQs.msg = 'Terminal tidak terdefinisi';
71 redirectQs.msg = 'Terminal tidak terdefinisi'; 72 res.redirect('/login?' + querystring.stringify(redirectQs));
72 res.redirect('/login?' + querystring.stringify(redirectQs)); 73 return;
73 return; 74 }
74 } 75
75 76 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) {
76 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) { 77 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.';
77 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.'; 78 res.redirect('/login?' + querystring.stringify(redirectQs));
78 res.redirect('/login?' + querystring.stringify(redirectQs)); 79 return;
79 return; 80 }
80 } 81
81 82 req.session.username = req.body.terminal_name;
82 req.session.username = req.body.terminal_name; 83 req.session.terminal = coreResponse.terminal;
83 req.session.terminal = coreResponse.terminal; 84
84 85 let redirectUrl = req.query.ref || '/';
85 let redirectUrl = req.query.ref || '/'; 86 res.redirect(redirectUrl);
86 res.redirect(redirectUrl); 87 });
87 }); 88 }
88 } 89
89 90 function pageLogout(req, res, next) {
90 function pageLogout(req, res, next) { 91 req.session.username = null;
91 req.session.username = null; 92 req.session.terminal = null;
92 req.session.terminal = null; 93
93 94 res.redirect('/login');
94 res.redirect('/login'); 95 }
95 } 96
96 97 router.get('/', pageLogin);
97 router.get('/', pageLogin); 98 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted);
98 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted); 99 router.get('/out', pageLogout);
99 router.get('/out', pageLogout); 100
100 101 module.exports = router;
101 module.exports = router; 102
1 { 1 {
2 "name": "komodo-sdk", 2 "name": "komodo-sdk",
3 "version": "1.10.3", 3 "version": "1.10.4",
4 "description": "SDK for Komodo", 4 "description": "SDK for Komodo",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "mocha", 7 "test": "mocha",
8 "postversion": "git push && git push --tags" 8 "postversion": "git push && git push --tags"
9 }, 9 },
10 "repository": { 10 "repository": {
11 "type": "git", 11 "type": "git",
12 "url": "git@gitlab.kodesumber.com:komodo/komodo-sdk.git" 12 "url": "git@gitlab.kodesumber.com:komodo/komodo-sdk.git"
13 }, 13 },
14 "keywords": [ 14 "keywords": [
15 "ppob", 15 "ppob",
16 "payment", 16 "payment",
17 "komodo" 17 "komodo"
18 ], 18 ],
19 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>", 19 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>",
20 "license": "ISC", 20 "license": "ISC",
21 "dependencies": { 21 "dependencies": {
22 "basic-auth": "^2.0.0", 22 "basic-auth": "^2.0.0",
23 "body-parser": "^1.18.2", 23 "body-parser": "^1.18.2",
24 "express": "^4.16.2", 24 "express": "^4.16.2",
25 "express-session": "^1.15.6", 25 "express-session": "^1.15.6",
26 "lru-cache": "^4.1.1", 26 "lru-cache": "^4.1.1",
27 "moment": "^2.19.1", 27 "moment": "^2.19.1",
28 "numeral": "^2.0.6", 28 "numeral": "^2.0.6",
29 "nunjucks": "^3.0.1", 29 "nunjucks": "^3.0.1",
30 "request": "^2.81.0", 30 "request": "^2.81.0",
31 "simple-git": "^1.80.1", 31 "simple-git": "^1.80.1",
32 "strftime": "^0.10.0", 32 "strftime": "^0.10.0",
33 "uniqid": "^4.1.1", 33 "uniqid": "^4.1.1",
34 "uuid": "^3.1.0", 34 "uuid": "^3.1.0",
35 "winston": "^2.3.1", 35 "winston": "^2.3.1",
36 "winston-circular-buffer": "^1.0.0", 36 "winston-circular-buffer": "^1.0.0",
37 "winston-daily-rotate-file": "^1.4.6" 37 "winston-daily-rotate-file": "^1.4.6"
38 } 38 }
39 } 39 }
40 40