add right to resend verification emails

This commit is contained in:
Puyodead1 2023-01-31 09:23:59 -05:00 committed by Puyodead1
parent 1aba7d591c
commit ada821070b
3 changed files with 28 additions and 23 deletions

View File

@ -22,28 +22,32 @@ import { Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
const router = Router();
router.post("/", route({}), async (req: Request, res: Response) => {
const user = await User.findOneOrFail({
where: { id: req.user_id },
select: ["username", "email"],
});
if (!user.email) {
// TODO: whats the proper error response for this?
throw new HTTPError("User does not have an email address", 400);
}
await Email.sendVerificationEmail(user, user.email)
.then((info) => {
console.log("Message sent: %s", info.messageId);
return res.sendStatus(204);
})
.catch((e) => {
console.error(
`Failed to send verification email to ${user.username}#${user.discriminator}: ${e}`,
);
throw new HTTPError("Failed to send verification email", 500);
router.post(
"/",
route({ right: "RESEND_VERIFICATION_EMAIL" }),
async (req: Request, res: Response) => {
const user = await User.findOneOrFail({
where: { id: req.user_id },
select: ["username", "email"],
});
});
if (!user.email) {
// TODO: whats the proper error response for this?
throw new HTTPError("User does not have an email address", 400);
}
await Email.sendVerificationEmail(user, user.email)
.then((info) => {
console.log("Message sent: %s", info.messageId);
return res.sendStatus(204);
})
.catch((e) => {
console.error(
`Failed to send verification email to ${user.username}#${user.discriminator}: ${e}`,
);
throw new HTTPError("Failed to send verification email", 500);
});
},
);
export default router;

View File

@ -35,5 +35,5 @@ export class RegisterConfiguration {
allowMultipleAccounts: boolean = true;
blockProxies: boolean = true;
incrementingDiscriminators: boolean = false; // random otherwise
defaultRights: string = "312119568366592"; // See `npm run generate:rights`
defaultRights: string = "875069521787904"; // See `npm run generate:rights`
}

View File

@ -93,6 +93,7 @@ export class Rights extends BitField {
EDIT_FLAGS: BitFlag(46), // can set others' flags
MANAGE_GROUPS: BitFlag(47), // can manage others' groups
VIEW_SERVER_STATS: BitFlag(48), // added per @chrischrome's request — can view server stats)
RESEND_VERIFICATION_EMAIL: BitFlag(49), // can resend verification emails (/auth/verify/resend)
};
any(permission: RightResolvable, checkOperator = true) {