UNPKG

2.76 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = routes;
7
8var _koaRouter = require('koa-router');
9
10var _koaRouter2 = _interopRequireDefault(_koaRouter);
11
12var _oauth = require('./oauth');
13
14var _oauth2 = _interopRequireDefault(_oauth);
15
16var _user = require('./controllers/user');
17
18var user = _interopRequireWildcard(_user);
19
20var _admin = require('./controllers/admin');
21
22var admin = _interopRequireWildcard(_admin);
23
24function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
25
26function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
28function* csrf(next) {
29 this.assertCSRF(this.request.body);
30 yield next;
31}
32
33function routes(app, config) {
34 const R = config.routes;
35 const oauth = (0, _oauth2.default)(config);
36 const router = (0, _koaRouter2.default)();
37
38 router.get(R.home, user.checkLogin, user.home);
39
40 // Login & Logout
41 router.get(R.login, user.login);
42 router.get(R.logout, user.logout);
43 router.post(R.send_token, user.sendToken);
44 router.post(R.session, csrf, user.session);
45
46 // Reset password
47 router.get(R.password_reset, user.passwordResetPage);
48 router.post(R.password_reset, csrf, user.passwordReset);
49
50 // Change password
51 router.get(R.password_change, user.passwordChangePage);
52 router.post(R.password_change, csrf, user.passwordChange);
53
54 // API: get user info
55 router.get(R.user, oauth.authenticate, user.getInfo);
56
57 // OAuth
58 router.get(R.authorize, user.checkLogin, oauth.authorize);
59 router.post(R.access_token, oauth.accessToken);
60
61 // Admin
62 router.get(R.admin.users, admin.checkLogin, admin.userList);
63 router.post(R.admin.search_user, admin.checkLogin, admin.searchUser);
64 router.get(R.admin.clients, admin.checkLogin, admin.clientList);
65 router.post(R.admin.send_totp, csrf, admin.checkLogin, admin.sendTotp);
66 router.post(R.admin.add_client, csrf, admin.checkLogin, admin.addClient);
67 router.post(R.admin.generate_secret, csrf, admin.checkLogin, admin.generateSecret);
68 router.get(R.admin.roles, admin.checkLogin, admin.roleList);
69 router.post(R.admin.add_role, csrf, admin.checkLogin, admin.addRole);
70 router.post(R.admin.delete_role, csrf, admin.checkLogin, admin.deleteRole);
71
72 app.use(function* injectParams(next) {
73 this.state._csrf = this.csrf;
74 this.state.logo = config.logo;
75 this.state.favicon = config.favicon;
76 this._routes = this.state._routes = R;
77 yield* next;
78 });
79 app.use(router.routes());
80 app.use(router.allowedMethods());
81}
82module.exports = exports['default'];
\No newline at end of file