mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-11-17 17:23:08 +02:00
😭
This commit is contained in:
parent
a190c1ac27
commit
975d30c261
@ -9,7 +9,6 @@ const fs = require('fs');
|
|||||||
const { join } = require('path');
|
const { join } = require('path');
|
||||||
const YAML = require('yaml');
|
const YAML = require('yaml');
|
||||||
const TicketManager = require('./lib/tickets/manager');
|
const TicketManager = require('./lib/tickets/manager');
|
||||||
const encryptionMiddleware = require('./lib/middleware/prisma-encryption');
|
|
||||||
const sqliteMiddleware = require('./lib/middleware/prisma-sqlite');
|
const sqliteMiddleware = require('./lib/middleware/prisma-sqlite');
|
||||||
|
|
||||||
module.exports = class Client extends FrameworkClient {
|
module.exports = class Client extends FrameworkClient {
|
||||||
@ -52,7 +51,6 @@ module.exports = class Client extends FrameworkClient {
|
|||||||
async login(token) {
|
async login(token) {
|
||||||
/** @type {PrismaClient} */
|
/** @type {PrismaClient} */
|
||||||
this.prisma = new PrismaClient();
|
this.prisma = new PrismaClient();
|
||||||
this.prisma.$use(encryptionMiddleware);
|
|
||||||
if (process.env.DB_PROVIDER === 'sqlite') this.prisma.$use(sqliteMiddleware);
|
if (process.env.DB_PROVIDER === 'sqlite') this.prisma.$use(sqliteMiddleware);
|
||||||
this.keyv = new Keyv();
|
this.keyv = new Keyv();
|
||||||
return super.login(token);
|
return super.login(token);
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
const Cryptr = require('cryptr');
|
|
||||||
const cryptr = new Cryptr(process.env.ENCRYPTION_KEY);
|
|
||||||
const encryptedFields = [
|
|
||||||
// 'name',
|
|
||||||
'content',
|
|
||||||
'username',
|
|
||||||
'displayName',
|
|
||||||
// 'channelName',
|
|
||||||
// 'openingMessage',
|
|
||||||
// 'description',
|
|
||||||
'value',
|
|
||||||
// 'placeholder',
|
|
||||||
'closedReason',
|
|
||||||
'topic',
|
|
||||||
'comment',
|
|
||||||
// 'label',
|
|
||||||
// 'regex',
|
|
||||||
];
|
|
||||||
|
|
||||||
const traverse = (obj, action) => {
|
|
||||||
for (const prop in obj) {
|
|
||||||
if (encryptedFields.includes(prop) && typeof obj[prop] === 'string' && obj[prop].length !== 0) {
|
|
||||||
try {
|
|
||||||
// prevent double encryption bug (from nested writes - notably upserting questions in category update).
|
|
||||||
// not sure why it happens
|
|
||||||
if (action === 'ENCRYPT' && cryptr.decrypt(obj[prop])) continue; // don't encrypt if it already encrypted
|
|
||||||
else obj[prop] = cryptr[action.toLowerCase()](obj[prop]);
|
|
||||||
} catch {
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
} else if (typeof obj[prop] === 'object') {
|
|
||||||
obj[prop] = traverse(obj[prop], action);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = async (params, next) => {
|
|
||||||
if (params.args.create) params.args.create = traverse(params.args.create, 'ENCRYPT');
|
|
||||||
if (params.args.data) params.args.data = traverse(params.args.data, 'ENCRYPT');
|
|
||||||
if (params.args.update) params.args.update = traverse(params.args.update, 'ENCRYPT');
|
|
||||||
let result = await next(params);
|
|
||||||
if (result) result = traverse(result, 'DECRYPT');
|
|
||||||
return result;
|
|
||||||
};
|
|
Loading…
Reference in New Issue
Block a user