UNPKG

4.39 kBJavaScriptView Raw
1/**
2 * joola.io
3 *
4 * Copyright Joola Smart Solutions, Ltd. <info@joo.la>
5 *
6 * Licensed under GNU General Public License 3.0 or later.
7 * Some rights reserved. See LICENSE, AUTHORS.
8 *
9 * @license GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
10 */
11
12var
13 auth = require('../lib/auth/manager'),
14 router = require('./index'),
15 utils = require('../lib/shared/utils');
16
17exports.login = {
18 name: "login",
19 description: "Login to Joola Analytics",
20 inputs: {
21 "required": ["username", "password"],
22 "optional": ["redirect"]
23 },
24 blockedConnectionTypes: [],
25
26 outputExample: {},
27 permission: ['access_system'],
28 run: function (req, res) {
29 var response = {};
30 response.auth = false;
31 var user = auth.login(req.params.username, req.params.password);
32 if (user)
33 response.auth = true;
34
35 return router.responseSuccess(response, req, res);
36 }
37};
38
39exports.loginSSO = {
40 name: "loginSSO",
41 description: "SSO Login to Joola Analytics",
42 inputs: {
43 "required": ["authToken", "username"],
44 "optional": [ "password"]
45 },
46 blockedConnectionTypes: [],
47
48 outputExample: {},
49 permission: ['access_system'],
50 run: function (req, res) {
51 var response = {};
52 response.auth = false;
53
54 //TODO: Chceck correct remoteIP prop name
55 auth.login(req.params.authToken, req.remoteIP, req.params.username, req.params.password, function (user, token) {
56 if (user) {
57 response.auth = true;
58 response.user = utils.cleanObject(user);
59 response['joola-token'] = token;
60
61 router.responseSuccess(response, req, res);
62 }
63 else {
64 connection.error = 'Failed to authenticate request.';
65 connection.rawConnection.responseHttpCode = 401;
66 router.responseError(new router.AuthErrorTemplate('Failed to authenticate request'), req, res);
67 }
68 });
69 }
70};
71
72exports.loginNeeded = {
73 name: "loginNeeded",
74 description: "Does the instance of Joola Analytics require login.",
75 inputs: {
76 "required": [],
77 "optional": []
78 },
79 blockedConnectionTypes: [],
80
81 outputExample: {},
82 permission: ['access_system'],
83 run: function (req, res) {
84 var response = {};
85 response.needed = joola.config.auth.store != 'none';
86
87 console.log('test');
88
89 router.responseSuccess(response, req, res);
90 }
91};
92
93exports.getUser = {
94 name: "auth.getUser",
95 description: "Get the current user assosciated with the session/connection.",
96 inputs: {
97 "required": [],
98 "optional": []
99 },
100 blockedConnectionTypes: [],
101 outputExample: {},
102 permission: ['access_system'],
103 run: function (req, res) {
104 var response = {};
105 response.user = null;
106 var user = req.user;
107 if (user)
108 response.user = utils.cleanObject(user);
109
110 router.responseSuccess(response, req, res);
111 }
112};
113
114exports.logout = {
115 name: "logout",
116 description: "Logout from Joola Analytics",
117 inputs: {
118 "required": [],
119 "optional": []
120 },
121 blockedConnectionTypes: [],
122 outputExample: {},
123 permission: ['access_system'],
124 run: function (req, res) {
125 /*auth.logout(connection, function () {
126
127 });*/
128
129 router.responseSuccess(null, req, res);
130 }
131};
132
133exports.checkLogin = {
134 name: "checkLogin",
135 description: "Check if the session is authenticated.",
136 inputs: {
137 required: [],
138 optional: []
139 },
140 blockedConnectionTypes: [],
141 permission: ['access_system'],
142 outputExample: {},
143 run: function (req, res) {
144 var response = {};
145 response.authenticated = false;
146 auth.checkLoggedIn(connection, function (session, success) {
147 if (success) {
148 response.authenticated = true;
149 response.session = session;
150 }
151 router.responseSuccess(response, req, res);
152 });
153 }
154};
155
156exports.checkToken = {
157 name: "auth/checkToken",
158 description: "Check if the token is valid.",
159 inputs: {
160 required: ['token'],
161 optional: []
162 },
163 blockedConnectionTypes: [],
164 permission: ['access_system'],
165 outputExample: {},
166 run: function (req, res) {
167 var response = {};
168 response.authenticated = false;
169 auth.checkTokenExist(req.params.token, function (token) {
170 if (token) {
171 response.authenticated = true;
172 }
173 router.responseSuccess(response, req, res);
174 });
175 }
176};
\No newline at end of file