1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | var
|
13 | auth = require('../lib/auth/manager'),
|
14 | router = require('./index'),
|
15 | utils = require('../lib/shared/utils');
|
16 |
|
17 | exports.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 |
|
39 | exports.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 |
|
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 |
|
72 | exports.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 |
|
93 | exports.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 |
|
114 | exports.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 | |
126 |
|
127 |
|
128 |
|
129 | router.responseSuccess(null, req, res);
|
130 | }
|
131 | };
|
132 |
|
133 | exports.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 |
|
156 | exports.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 |