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 }
46 } 47
47 48 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) {
48 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) { 49 if (err) {
49 if (err) { 50 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err});
50 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err}); 51 res.end('SOMETHING WRONG');
51 res.end('SOMETHING WRONG'); 52 return;
52 return; 53 }
53 } 54
54 55 const redirectQs = {
55 const redirectQs = { 56 terminal_name: req.body.terminal_name,
56 terminal_name: req.body.terminal_name, 57 ref: req.query.ref
57 ref: req.query.ref 58 }
58 } 59
59 60 if (coreResponse.message) {
60 if (coreResponse.message) { 61 redirectQs.msg = coreResponse.message;
61 redirectQs.msg = coreResponse.message; 62 }
62 } 63
63 64 if (coreResponse.error) {
64 if (coreResponse.error) { 65 res.redirect('/login?' + querystring.stringify(redirectQs));
65 res.redirect('/login?' + querystring.stringify(redirectQs)); 66 return;
66 return; 67 }
67 } 68
68 69 if (!coreResponse.terminal) {
69 if (!coreResponse.terminal) { 70 redirectQs.msg = 'Terminal tidak terdefinisi';
70 redirectQs.msg = 'Terminal tidak terdefinisi'; 71 res.redirect('/login?' + querystring.stringify(redirectQs));
71 res.redirect('/login?' + querystring.stringify(redirectQs)); 72 return;
72 return; 73 }
73 } 74
74 75 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) {
75 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) { 76 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.';
76 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.'; 77 res.redirect('/login?' + querystring.stringify(redirectQs));
77 res.redirect('/login?' + querystring.stringify(redirectQs)); 78 return;
78 return; 79 }
79 } 80
80 81 req.session.username = req.body.terminal_name;
81 req.session.username = req.body.terminal_name; 82 req.session.terminal = coreResponse.terminal;
82 req.session.terminal = coreResponse.terminal; 83
83 84 let redirectUrl = req.query.ref || '/';
84 let redirectUrl = req.query.ref || '/'; 85 res.redirect(redirectUrl);
85 res.redirect(redirectUrl); 86 });
86 }); 87 }
87 } 88
88 89 function pageLogout(req, res, next) {
89 function pageLogout(req, res, next) { 90 req.session.username = null;
90 req.session.username = null; 91 req.session.terminal = null;
91 req.session.terminal = null; 92
92 93 res.redirect('/login');
93 res.redirect('/login'); 94 }
94 } 95
95 96 router.get('/', pageLogin);
96 router.get('/', pageLogin); 97 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted);
97 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted); 98 router.get('/out', pageLogout);
98 router.get('/out', pageLogout); 99
99 100 module.exports = router;
100 module.exports = router; 101
1 { 1 {
2 "name": "komodo-sdk", 2 "name": "komodo-sdk",
3 "version": "1.10.2", 3 "version": "1.10.3",
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