shields update

This commit is contained in:
Emily
2025-03-20 16:04:00 +01:00
parent afda29997d
commit 87c9aca5c4
34 changed files with 793 additions and 12 deletions

View File

@@ -59,6 +59,13 @@ export default defineEventHandler(async event => {
const savedUser = await newUser.save();
setImmediate(() => {
const emailData = EmailService.getEmailServerInfo('brevolist_add', { email: payload.email as string });
EmailServiceHelper.sendEmail(emailData);
});
setImmediate(() => {
console.log('SENDING WELCOME EMAIL TO', payload.email);
if (!payload.email) return;

View File

@@ -34,6 +34,11 @@ export default defineEventHandler(async event => {
await RegisterModel.create({ email, password: hashedPassword });
setImmediate(() => {
const emailData = EmailService.getEmailServerInfo('brevolist_add', { email });
EmailServiceHelper.sendEmail(emailData);
});
setImmediate(() => {
const emailData = EmailService.getEmailServerInfo('confirm', { target: email, link: `https://dashboard.litlyx.com/api/auth/confirm_email?register_code=${jwt}` });
EmailServiceHelper.sendEmail(emailData);

View File

@@ -12,7 +12,12 @@ export default defineEventHandler(async event => {
console.log({ project_id, user_id: data.user.id });
const member = await TeamMemberModel.findOne({ project_id, user_id: data.user.id });
const member = await TeamMemberModel.findOne({
project_id, $or: [
{ user_id: data.user.id },
{ email: data.user.user.email }
]
});
if (!member) return setResponseStatus(event, 400, 'member not found');
member.pending = false;

View File

@@ -0,0 +1,21 @@
import { DomainWhitelistModel } from "~/shared/schema/shields/DomainWhitelistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const body = await readBody(event);
const { domain } = body;
if (domain.trim().length == 0) return setResponseStatus(event, 400, 'Domain is required');
const whitelist = await DomainWhitelistModel.updateOne({
project_id: data.project_id
},
{ $push: { domains: domain } },
{ upsert: true }
);
return { ok: true };
});

View File

@@ -0,0 +1,18 @@
import { DomainWhitelistModel } from "~/shared/schema/shields/DomainWhitelistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const body = await readBody(event);
const { domain } = body;
const removal = await DomainWhitelistModel.updateOne({
project_id: data.project_id
},
{ $pull: { domains: domain } },
);
return { ok: removal.modifiedCount == 1 };
});

View File

@@ -0,0 +1,10 @@
import { DomainWhitelistModel } from "~/shared/schema/shields/DomainWhitelistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const whitelist = await DomainWhitelistModel.findOne({ project_id: data.project_id });
if (!whitelist) return [];
const domains = whitelist.domains;
return domains;
});

View File

@@ -0,0 +1,11 @@
import { AddressBlacklistModel } from "~/shared/schema/shields/AddressBlacklistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const body = await readBody(event);
const { address, description } = body;
if (address.trim().length == 0) return setResponseStatus(event, 400, 'Address is required');
const result = await AddressBlacklistModel.updateOne({ project_id: data.project_id, address }, { description }, { upsert: true });
return { ok: result.acknowledged };
});

View File

@@ -0,0 +1,14 @@
import { AddressBlacklistModel } from "~/shared/schema/shields/AddressBlacklistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const body = await readBody(event);
const { address } = body;
const removal = await AddressBlacklistModel.deleteOne({ project_id: data.project_id, address });
return { ok: removal.deletedCount == 1 };
});

View File

@@ -0,0 +1,8 @@
import { AddressBlacklistModel } from "~/shared/schema/shields/AddressBlacklistSchema";
export default defineEventHandler(async event => {
const data = await getRequestData(event, [], ['OWNER']);
if (!data) return;
const blacklist = await AddressBlacklistModel.find({ project_id: data.project_id });
return blacklist.map(e => e.toJSON());
});