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