8032-devToTest_2440 #3009
|
@ -0,0 +1,29 @@
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.remoteMethodCtx('killSession', {
|
||||||
|
description: 'Kill session',
|
||||||
|
accepts: [{
|
||||||
|
arg: 'userId',
|
||||||
|
type: 'integer',
|
||||||
|
description: 'The user id',
|
||||||
|
required: true,
|
||||||
|
}, {
|
||||||
|
arg: 'created',
|
||||||
|
type: 'date',
|
||||||
|
description: 'The created time',
|
||||||
|
required: true,
|
||||||
|
}],
|
||||||
|
accessType: 'WRITE',
|
||||||
|
http: {
|
||||||
|
path: `/killSession`,
|
||||||
|
verb: 'POST'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Self.killSession = async function(ctx, userId, created) {
|
||||||
|
await Self.app.models.VnUser.userSecurity(ctx, ctx.req.accessToken.userId);
|
||||||
|
const tokens = await Self.app.models.AccessToken.find({where: {userId, created}});
|
||||||
|
if (!tokens?.length) return;
|
||||||
|
for (const token of tokens)
|
||||||
|
await Self.app.models.AccessToken.deleteById(token.id);
|
||||||
|
};
|
||||||
|
};
|
|
@ -175,6 +175,9 @@
|
||||||
"ViaexpressConfig": {
|
"ViaexpressConfig": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
"VnToken": {
|
||||||
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
"VnUser": {
|
"VnUser": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
const vnModel = require('vn-loopback/common/models/vn-model');
|
||||||
|
module.exports = function(Self) {
|
||||||
|
vnModel(Self);
|
||||||
|
require('../methods/vn-token/killSession')(Self);
|
||||||
|
};
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "VnToken",
|
||||||
|
"base": "AccessToken",
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "salix.AccessToken"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"created": {
|
||||||
|
"type": "date"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"user": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "VnUser",
|
||||||
|
"foreignKey": "userId"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hidden": ["id"]
|
||||||
|
}
|
|
@ -25,6 +25,9 @@
|
||||||
"isManaged": {
|
"isManaged": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
|
"isDestiny": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"countryFk": {
|
"countryFk": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
UPDATE `salix`.`ACL`
|
||||||
|
SET accessType='READ'
|
||||||
|
WHERE model = 'ACL';
|
||||||
|
|
||||||
|
UPDATE `salix`.`ACL`
|
||||||
|
SET principalId='developerBoss'
|
||||||
|
WHERE model = 'AccessToken';
|
||||||
|
|
||||||
|
INSERT INTO `salix`.`ACL` (model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES
|
||||||
|
('VnToken', '*', 'READ', 'ALLOW', 'ROLE', 'developer'),
|
||||||
|
('VnToken', 'killSession', '*', 'ALLOW', 'ROLE', 'developer'),
|
||||||
|
('ACL', '*', 'WRITE', 'ALLOW', 'ROLE', 'developerBoss');
|
|
@ -128,6 +128,9 @@ module.exports = Self => {
|
||||||
return {[param]: value};
|
return {[param]: value};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (ctx.req.query?.showBadDates === 'true')
|
||||||
|
where['fp.started'] = {gte: Date.vnNew()};
|
||||||
|
|
||||||
filter = mergeFilters(filter, {where});
|
filter = mergeFilters(filter, {where});
|
||||||
|
|
||||||
const stmts = [];
|
const stmts = [];
|
||||||
|
@ -136,6 +139,7 @@ module.exports = Self => {
|
||||||
SELECT DISTINCT fp.id,
|
SELECT DISTINCT fp.id,
|
||||||
fp.itemFk,
|
fp.itemFk,
|
||||||
fp.warehouseFk,
|
fp.warehouseFk,
|
||||||
|
w.name warehouseName,
|
||||||
fp.rate2,
|
fp.rate2,
|
||||||
fp.rate3,
|
fp.rate3,
|
||||||
fp.started,
|
fp.started,
|
||||||
|
@ -159,6 +163,7 @@ module.exports = Self => {
|
||||||
FROM priceFixed fp
|
FROM priceFixed fp
|
||||||
JOIN item i ON i.id = fp.itemFk
|
JOIN item i ON i.id = fp.itemFk
|
||||||
JOIN itemType it ON it.id = i.typeFk
|
JOIN itemType it ON it.id = i.typeFk
|
||||||
|
JOIN warehouse w ON fp.warehouseFk = w.id
|
||||||
`);
|
`);
|
||||||
|
|
||||||
if (ctx.args.tags) {
|
if (ctx.args.tags) {
|
||||||
|
@ -184,7 +189,6 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt.merge(conn.makeSuffix(filter));
|
stmt.merge(conn.makeSuffix(filter));
|
||||||
|
|
||||||
const fixedPriceIndex = stmts.push(stmt) - 1;
|
const fixedPriceIndex = stmts.push(stmt) - 1;
|
||||||
const sql = ParameterizedSQL.join(stmts, ';');
|
const sql = ParameterizedSQL.join(stmts, ';');
|
||||||
const result = await conn.executeStmt(sql, myOptions);
|
const result = await conn.executeStmt(sql, myOptions);
|
||||||
|
|
Loading…
Reference in New Issue