delore-crm-core 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/auth.control.js +69 -0
- package/auth/ret.js +401 -0
- package/auth/valid.request.js +51 -0
- package/db/models.js +959 -0
- package/db/sequelize_db.js +93 -0
- package/package.json +1 -8
- package/print/Regular.ttf +0 -0
- package/print/index.js +882 -0
- package/release.sh +23 -0
- package/sync/sync.access.js +173 -0
- package/utils/access.js +138 -0
- package/utils/logger.js +63 -0
- package/utils/memory.js +40 -0
- package/utils/util.js +827 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
const logger = require('../utils/logger');
|
|
2
|
+
const memory = require('../utils/memory');
|
|
3
|
+
|
|
4
|
+
exports.addSecret = async function (companyId, userId, lat, lng, ip) {
|
|
5
|
+
const SequelizeJS = require('../db/sequelize_db.js');
|
|
6
|
+
try {
|
|
7
|
+
var secret = 'secret_crm_v1_' + companyId + '_' + userId;
|
|
8
|
+
var id = parseInt(companyId) + '_' + parseInt(userId);
|
|
9
|
+
var updateFields = { companyId: companyId, userId: userId, secret: secret, lat: parseFloat(lat), lng: parseFloat(lng), ip: ip, last: new Date() };
|
|
10
|
+
await SequelizeJS.getMongoDB().collection('authControl').updateOne(
|
|
11
|
+
{ id: id },
|
|
12
|
+
{ $set: updateFields },
|
|
13
|
+
{ upsert: true }
|
|
14
|
+
);
|
|
15
|
+
memory.addMemory('authControl_' + id, secret);
|
|
16
|
+
return secret + "-" + process.env.SECRET_LOGIN_USER;
|
|
17
|
+
} catch (error) {
|
|
18
|
+
logger.error('Error addSecret: ' + error);
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.loadAllSecretToMemory = async function (db) {
|
|
24
|
+
try {
|
|
25
|
+
var result = await db.collection('authControl').find({}).toArray();
|
|
26
|
+
if (result) {
|
|
27
|
+
logger.info('loadAllSecretToMemory: ' + result.length + ' secrets loaded');
|
|
28
|
+
for (var i = 0; i < result.length; i++) {
|
|
29
|
+
memory.addMemory('authControl_' + result[i].id, result[i].secret);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
} catch (error) {
|
|
33
|
+
logger.error('Error loadAllSecretToMemory: ' + error.message);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.removeSecret = async function (companyId, userId) {
|
|
38
|
+
const SequelizeJS = require('../db/sequelize_db.js');
|
|
39
|
+
try {
|
|
40
|
+
var id = parseInt(companyId) + '_' + parseInt(userId);
|
|
41
|
+
await SequelizeJS.getMongoDB().collection('authControl').deleteOne({ id: id });
|
|
42
|
+
memory.delMemory('authControl_' + id);
|
|
43
|
+
return true;
|
|
44
|
+
} catch (error) {
|
|
45
|
+
logger.error('Error removeSecret: ' + error);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
exports.getSecret = async function (companyId, userId, lat, lng, ip) {
|
|
51
|
+
const SequelizeJS = require('../db/sequelize_db.js');
|
|
52
|
+
try {
|
|
53
|
+
var id = parseInt(companyId) + '_' + parseInt(userId);
|
|
54
|
+
|
|
55
|
+
var secreteInMemory = await memory.findMemory('authControl_' + id);
|
|
56
|
+
if (secreteInMemory) {
|
|
57
|
+
return secreteInMemory + "-" + process.env.SECRET_LOGIN_USER;
|
|
58
|
+
}
|
|
59
|
+
var resultGet = await SequelizeJS.getMongoDB().collection('authControl').findOne({ id: id });
|
|
60
|
+
if (resultGet) {
|
|
61
|
+
memory.addMemory('authControl_' + id, resultGet);
|
|
62
|
+
return resultGet.secret + "-" + process.env.SECRET_LOGIN_USER;
|
|
63
|
+
}
|
|
64
|
+
return '';
|
|
65
|
+
} catch (error) {
|
|
66
|
+
logger.error('Error getSecret: ' + error);
|
|
67
|
+
return '';
|
|
68
|
+
}
|
|
69
|
+
};
|
package/auth/ret.js
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
var jwt = require('jwt-simple');
|
|
2
|
+
const access = require('../utils/access');
|
|
3
|
+
const authControl = require('./auth.control.js');
|
|
4
|
+
|
|
5
|
+
exports.returnOK = function (res, msg) {
|
|
6
|
+
try {
|
|
7
|
+
res.status(200).send({ success: true, msg: msg, data: null, pages: -1 });
|
|
8
|
+
} catch (error) {
|
|
9
|
+
console.error(error);
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.returnOKRel = function (res, msg, data, tableName) {
|
|
15
|
+
res.status(200).send({ success: true, msg: msg, data: data, pages: -1, tableName: tableName });
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.returnOK = function (res, msg, data, pages) {
|
|
20
|
+
res.status(200).json({ success: true, msg: msg, data: data, pages: pages });
|
|
21
|
+
return false;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.returnOK = function (res, msg, data, pages, bof, eof) {
|
|
25
|
+
res.status(200).json({ success: true, msg: msg, data: data, pages: pages, bof: bof, eof: eof });
|
|
26
|
+
return false;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.returnOKPag = function (res, result) {
|
|
30
|
+
res.status(200).json({ success: true, msg: result.msg, data: result.rows, pages: result.pages, count: result.count });
|
|
31
|
+
return false;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
exports.returnNOKPag = function (res) {
|
|
35
|
+
var result = {};
|
|
36
|
+
result.rows = [];
|
|
37
|
+
result.count = 0;
|
|
38
|
+
result.msg = 'Sem registros';
|
|
39
|
+
res.status(200).json({ success: false, msg: result.msg, data: result.rows, pages: result.pages, count: result.count });
|
|
40
|
+
return false;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.returnNOK = function (res, msg) {
|
|
44
|
+
res.status(200).json({ success: false, msg: msg, data: null, pages: -1 });
|
|
45
|
+
return false;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.returnNOKBlob = function (res, msg) {
|
|
49
|
+
res.statusMessage = msg;
|
|
50
|
+
res.status(410).send();
|
|
51
|
+
return false;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.returnMobileNOKBlob = function (res, msg) {
|
|
55
|
+
res.statusMessage = msg;
|
|
56
|
+
res.statusCode = 200;
|
|
57
|
+
res.setHeader('Content-type', 'application/pdf');
|
|
58
|
+
res.setHeader('Content-Length', 0);
|
|
59
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
60
|
+
res.setHeader('Title', 'Apostila/Material');
|
|
61
|
+
res.setHeader('FileName', 'Arquivo Vazio');
|
|
62
|
+
res.setHeader('Content-disposition', 'attachment; filename=Arquivo Vazio');
|
|
63
|
+
res.send();
|
|
64
|
+
return false;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.returnHandleError = function (res, error) {
|
|
68
|
+
var errorMsg = error.message; //'Erro ao salvar';
|
|
69
|
+
|
|
70
|
+
if (error && error.original && error.original.code && error.original.code === 'ER_DUP_ENTRY') {
|
|
71
|
+
errorMsg = 'Registro duplicado';
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
res.status(200).json({ success: false, msg: errorMsg, data: null, pages: -1 });
|
|
75
|
+
return false;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.returnLogin = async function (dados, owner, user, board, exp, lat, lng, ip) {
|
|
79
|
+
try {
|
|
80
|
+
var tokenDados = {
|
|
81
|
+
exp: exp,
|
|
82
|
+
sub: dados.id,
|
|
83
|
+
userId: user ? user.id : null,
|
|
84
|
+
access: user.access,
|
|
85
|
+
};
|
|
86
|
+
var serialize = JSON.stringify(tokenDados);
|
|
87
|
+
var secret = await authControl.addSecret(dados.id, user.id, lat, lng, ip);
|
|
88
|
+
var token = jwt.encode(serialize, secret);
|
|
89
|
+
return {
|
|
90
|
+
token: token,
|
|
91
|
+
id: dados.id,
|
|
92
|
+
sysname: owner.sysname,
|
|
93
|
+
raz: dados.raz,
|
|
94
|
+
fan: dados.fan,
|
|
95
|
+
cpj: dados.cpj,
|
|
96
|
+
ema: dados.ema,
|
|
97
|
+
|
|
98
|
+
userId: user.id,
|
|
99
|
+
userName: user.name,
|
|
100
|
+
userEmail: user.user,
|
|
101
|
+
|
|
102
|
+
inst: user ? user.inst : null,
|
|
103
|
+
instView: user ? user.instView : null,
|
|
104
|
+
visLea: user.visLea,
|
|
105
|
+
access: user.access,
|
|
106
|
+
accessAll: access.makeAccessScopeAll(),
|
|
107
|
+
fChangePass: user.fChangePass,
|
|
108
|
+
datePass: user.datePass,
|
|
109
|
+
qtdreg: user.qtdreg,
|
|
110
|
+
ordKanban: user.ordKanban,
|
|
111
|
+
boards: user.boards || [],
|
|
112
|
+
boardId: board ? board.id : null,
|
|
113
|
+
boardDes: board ? board.des : null,
|
|
114
|
+
};
|
|
115
|
+
} catch (e) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
exports.validToken = async function (req) {
|
|
121
|
+
try {
|
|
122
|
+
if (!req.headers.token || req.headers.token === 'undefined' || req.headers.token == '') {
|
|
123
|
+
return { status: 401, message: 'Não foi informado token' };
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
var secret = await authControl.getSecret(req.headers.id, req.headers.userid, req.headers.lat, req.headers.lng, req.headers.ip);
|
|
127
|
+
if (secret == '') {
|
|
128
|
+
return { status: 401, message: 'Código 001 - Token expirado, por favor faça o login novamente' };
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var resource = access.getResourceFromReq(req);
|
|
132
|
+
var token = JSON.parse(jwt.decode(req.headers.token, secret));
|
|
133
|
+
var now = Date.now();
|
|
134
|
+
var id = req.headers.id;
|
|
135
|
+
var userId = req.headers.userid;
|
|
136
|
+
var tokenAccess = token.access;
|
|
137
|
+
|
|
138
|
+
if (now > token.exp) {
|
|
139
|
+
return { status: 401, message: 'Código 002 - Token expirado! por favor faça o login novamente.' };
|
|
140
|
+
} else if (id == '') {
|
|
141
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
142
|
+
} else if (token.userId != userId) {
|
|
143
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
144
|
+
} else if (token.sub != id) {
|
|
145
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
146
|
+
} else {
|
|
147
|
+
if (tokenAccess.includes(resource.id) || !resource.accessControl) {
|
|
148
|
+
|
|
149
|
+
return { status: 200, message: 'Token válido' };
|
|
150
|
+
|
|
151
|
+
} else {
|
|
152
|
+
return {
|
|
153
|
+
status: 401,
|
|
154
|
+
message: 'Acesso ao recurso não permitido! por favor, entre em contato com seu administrador.' + '\n - Grupo: ' + resource.group + '\n - Recurso: ' + resource.name + '\n - Descrição: ' + resource.desc,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
} catch (error) {
|
|
159
|
+
console.error(error);
|
|
160
|
+
return { status: 500, message: 'Token inválido!' };
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
exports.makeTokenSocketIo = function (id) {
|
|
165
|
+
try {
|
|
166
|
+
var tokenDados = {
|
|
167
|
+
sub: id,
|
|
168
|
+
exp: new Date().getTime() + 1000 * 60 * 60 * 24 * 30, // 30 dias
|
|
169
|
+
};
|
|
170
|
+
var serialize = JSON.stringify(tokenDados);
|
|
171
|
+
var token = jwt.encode(serialize, 'socketIoCrm23');
|
|
172
|
+
return token;
|
|
173
|
+
} catch (e) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
exports.validTokenSocketIo = function (tokenSend, idSend) {
|
|
179
|
+
try {
|
|
180
|
+
if (tokenSend == 'undefined' || tokenSend == '') {
|
|
181
|
+
return { status: 401, message: 'Não foi informado token' };
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var token = JSON.parse(jwt.decode(tokenSend, 'socketIoCrm23'));
|
|
185
|
+
var now = Date.now();
|
|
186
|
+
var id = idSend;
|
|
187
|
+
|
|
188
|
+
if (now > token.exp) {
|
|
189
|
+
return { status: 400, message: 'Token expirado' };
|
|
190
|
+
} else if (id == '') {
|
|
191
|
+
return { status: 401, message: 'Não foi informado userid no header' };
|
|
192
|
+
} else if (token.sub != id) {
|
|
193
|
+
return { status: 402, message: 'Usuário informado não pertence ao token informado' };
|
|
194
|
+
} else {
|
|
195
|
+
return { status: 200, message: 'Token válido' };
|
|
196
|
+
}
|
|
197
|
+
} catch (e) {
|
|
198
|
+
return { status: 500, message: 'Token inválido' };
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
exports.returnLoginADM = function (dados, exp) {
|
|
203
|
+
try {
|
|
204
|
+
var tokenDados = {
|
|
205
|
+
exp: exp,
|
|
206
|
+
sub: dados.id,
|
|
207
|
+
};
|
|
208
|
+
var serialize = JSON.stringify(tokenDados);
|
|
209
|
+
var token = jwt.encode(serialize, 'owner23');
|
|
210
|
+
return {
|
|
211
|
+
tokenadm: token,
|
|
212
|
+
id: dados.id,
|
|
213
|
+
raz: dados.raz,
|
|
214
|
+
fan: dados.fan,
|
|
215
|
+
cpj: dados.cpj,
|
|
216
|
+
ema: dados.ema,
|
|
217
|
+
domain: dados.domain,
|
|
218
|
+
|
|
219
|
+
sysname: dados.sysname,
|
|
220
|
+
logo: dados.logo,
|
|
221
|
+
favicon: dados.favicon,
|
|
222
|
+
corbtnbg: dados.corbtnbg,
|
|
223
|
+
corbtnfg: dados.corbtnfg,
|
|
224
|
+
};
|
|
225
|
+
} catch (e) {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
exports.validTokenADM = function (req) {
|
|
231
|
+
try {
|
|
232
|
+
if (!req.headers.tokenadm || req.headers.tokenadm === 'undefined' || req.headers.tokenadm == '') {
|
|
233
|
+
return { status: 401, message: 'Não foi informado tokenadm' };
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
var token = JSON.parse(jwt.decode(req.headers.tokenadm, 'owner23'));
|
|
237
|
+
var now = Date.now();
|
|
238
|
+
var id = req.headers.id;
|
|
239
|
+
|
|
240
|
+
if (now > token.exp) {
|
|
241
|
+
return { status: 401, message: 'Código 002 - Token expirado! por favor faça o login novamente.' };
|
|
242
|
+
} else if (id == '') {
|
|
243
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
244
|
+
} else if (token.sub != id) {
|
|
245
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
246
|
+
} else {
|
|
247
|
+
return { status: 200, message: 'Token válido' };
|
|
248
|
+
}
|
|
249
|
+
} catch (error) {
|
|
250
|
+
console.error(error);
|
|
251
|
+
return { status: 500, message: 'Token inválido!' };
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
exports.returnTokenMsg = function (autoMsgId, companyId) {
|
|
256
|
+
try {
|
|
257
|
+
var payload = {
|
|
258
|
+
autoMsgId: autoMsgId,
|
|
259
|
+
companyId: companyId,
|
|
260
|
+
};
|
|
261
|
+
var serialize = JSON.stringify(payload);
|
|
262
|
+
var token = jwt.encode(serialize, 'msgToken23');
|
|
263
|
+
return token;
|
|
264
|
+
} catch (e) {
|
|
265
|
+
return '';
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
exports.validTokenMSG = function (req) {
|
|
270
|
+
try {
|
|
271
|
+
if (!req.query.token) {
|
|
272
|
+
return { status: 401, message: 'NOK - Não foi informado token' };
|
|
273
|
+
}
|
|
274
|
+
var tokenDecoded = JSON.parse(jwt.decode(req.query.token, 'msgToken23'));
|
|
275
|
+
req.headers.id = parseInt(tokenDecoded.companyId);
|
|
276
|
+
req.headers.automsgid = parseInt(tokenDecoded.autoMsgId);
|
|
277
|
+
return { status: 200, message: 'Token válido' };
|
|
278
|
+
} catch (error) {
|
|
279
|
+
console.error(error);
|
|
280
|
+
return { status: 500, message: 'NOK - Token inválido!' };
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
exports.returnLoginMASTER = function (dados, exp) {
|
|
285
|
+
try {
|
|
286
|
+
var tokenDados = {
|
|
287
|
+
exp: exp,
|
|
288
|
+
sub: dados.id,
|
|
289
|
+
};
|
|
290
|
+
var serialize = JSON.stringify(tokenDados);
|
|
291
|
+
var secret = 'master23';
|
|
292
|
+
var token = jwt.encode(serialize, secret);
|
|
293
|
+
return {
|
|
294
|
+
tokenmaster: token,
|
|
295
|
+
id: dados.id,
|
|
296
|
+
nam: dados.nam,
|
|
297
|
+
ema: dados.ema,
|
|
298
|
+
};
|
|
299
|
+
} catch (e) {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
exports.validTokenMASTER = function (req) {
|
|
305
|
+
try {
|
|
306
|
+
if (!req.headers.tokenmaster || req.headers.tokenmaster === 'undefined' || req.headers.tokenmaster == '') {
|
|
307
|
+
return { status: 401, message: 'Não foi informado token' };
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
var token = JSON.parse(jwt.decode(req.headers.tokenmaster, 'master23'));
|
|
311
|
+
var now = Date.now();
|
|
312
|
+
var id = req.headers.id;
|
|
313
|
+
|
|
314
|
+
if (now > token.exp) {
|
|
315
|
+
return { status: 401, message: 'Código 002 - Token expirado! por favor faça o login novamente.' };
|
|
316
|
+
} else if (id == '') {
|
|
317
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
318
|
+
} else if (token.sub != id) {
|
|
319
|
+
return { status: 401, message: 'Acesso indevido!' };
|
|
320
|
+
} else {
|
|
321
|
+
return { status: 200, message: 'Token válido' };
|
|
322
|
+
}
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.error(error);
|
|
325
|
+
return { status: 500, message: 'Token inválido!' };
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
exports.returnLoginDEVELOPER = function (dados, exp) {
|
|
330
|
+
try {
|
|
331
|
+
var tokenDados = {
|
|
332
|
+
exp: exp,
|
|
333
|
+
sub: dados.id,
|
|
334
|
+
};
|
|
335
|
+
var serialize = JSON.stringify(tokenDados);
|
|
336
|
+
var secret = 'developer23';
|
|
337
|
+
var token = jwt.encode(serialize, secret);
|
|
338
|
+
return {
|
|
339
|
+
token: token,
|
|
340
|
+
id: dados.id,
|
|
341
|
+
raz: dados.raz,
|
|
342
|
+
ema: dados.ema,
|
|
343
|
+
sysname: dados.sysname,
|
|
344
|
+
};
|
|
345
|
+
} catch (e) {
|
|
346
|
+
return null;
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
exports.validTokenDEVELOPER = function (req) {
|
|
351
|
+
try {
|
|
352
|
+
if (!req.headers.token || req.headers.token === 'undefined' || req.headers.token == '') {
|
|
353
|
+
return { status: 401, message: 'Não foi informado token. Por favor, entre em contato com o administrador.' };
|
|
354
|
+
}
|
|
355
|
+
var token = JSON.parse(jwt.decode(req.headers.token, 'developer23'));
|
|
356
|
+
var now = Date.now();
|
|
357
|
+
|
|
358
|
+
if (now > token.exp) {
|
|
359
|
+
return { status: 401, message: 'Token expirado! Por favor, entre em contato com o administrador.' };
|
|
360
|
+
} else {
|
|
361
|
+
req.headers.id = parseInt(token.sub);
|
|
362
|
+
return { status: 200, message: 'Token válido.' };
|
|
363
|
+
}
|
|
364
|
+
} catch (error) {
|
|
365
|
+
console.error(error);
|
|
366
|
+
return { status: 500, message: 'Token inválido. Por favor, entre em contato com o administrador.' };
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
exports.makeTokenForRememberUser = function (company, user, exp) {
|
|
371
|
+
try {
|
|
372
|
+
var tokenDados = {
|
|
373
|
+
"sub": company.id,
|
|
374
|
+
"usr": user.id,
|
|
375
|
+
"exp": exp
|
|
376
|
+
}
|
|
377
|
+
var serialize = JSON.stringify(tokenDados);
|
|
378
|
+
var secret = process.env.SECRET_REMEMBER_USER;
|
|
379
|
+
var token = jwt.encode(serialize, secret);
|
|
380
|
+
return token;
|
|
381
|
+
} catch (e) {
|
|
382
|
+
return "";
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
exports.validTokenForRememberUser = function (token) {
|
|
387
|
+
try {
|
|
388
|
+
if (token == "undefined" || token == "") {
|
|
389
|
+
return { "success": false, "message": "Não foi informado o Token de Acesso para troca de senha", companyId: -1, userId: -1 };
|
|
390
|
+
};
|
|
391
|
+
var token = JSON.parse(jwt.decode(token, process.env.SECRET_REMEMBER_USER));
|
|
392
|
+
var now = Date.now();
|
|
393
|
+
if (now > token.exp) {
|
|
394
|
+
return { "success": false, "message": "Token expirado, solicite novamente a troca de senha ", companyId: -1, userId: -1 };
|
|
395
|
+
} else {
|
|
396
|
+
return { "success": true, "message": "Valid Token", companyId: token.sub, userId: token.usr };
|
|
397
|
+
}
|
|
398
|
+
} catch (e) {
|
|
399
|
+
return { "success": false, "message": "Erro desconhecido ao validar o token, solicite novamente o link para troca de senha", companyId: -1, userId: -1 };
|
|
400
|
+
}
|
|
401
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const ret = require('./ret.js');
|
|
2
|
+
|
|
3
|
+
exports.validaRequestSystem = async function (req, res, next) {
|
|
4
|
+
var token = await ret.validToken(req);
|
|
5
|
+
if (token.status == 200) {
|
|
6
|
+
next();
|
|
7
|
+
} else {
|
|
8
|
+
res.status(token.status).json({ msg: token.message });
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.validaRequestADM = function (req, res, next) {
|
|
14
|
+
var token = ret.validTokenADM(req);
|
|
15
|
+
if (token.status == 200) {
|
|
16
|
+
next();
|
|
17
|
+
} else {
|
|
18
|
+
res.status(token.status).json({ msg: token.message });
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.validaRequestMASTER = function (req, res, next) {
|
|
24
|
+
var token = ret.validTokenMASTER(req);
|
|
25
|
+
if (token.status == 200) {
|
|
26
|
+
next();
|
|
27
|
+
} else {
|
|
28
|
+
res.status(token.status).json({ msg: token.message });
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.validaRequestMSG = function (req, res, next) {
|
|
34
|
+
var token = ret.validTokenMSG(req);
|
|
35
|
+
if (token.status == 200) {
|
|
36
|
+
next();
|
|
37
|
+
} else {
|
|
38
|
+
res.status(token.status).send(token.message);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.validaRequestDEVELOPER = function (req, res, next) {
|
|
44
|
+
var token = ret.validTokenDEVELOPER(req);
|
|
45
|
+
if (token.status == 200) {
|
|
46
|
+
next();
|
|
47
|
+
} else {
|
|
48
|
+
res.status(token.status).send(token.message);
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
};
|