Compare View
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 |
package.json
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 |