Add user tagging for logged-in staff users

This commit is contained in:
2026-03-12 02:20:16 -04:00
parent 97d84bdc17
commit f5e2110ff4
4 changed files with 70 additions and 4 deletions

View File

@@ -31,8 +31,21 @@ async function generateTokenHash(token: string) {
async function refreshAuth(context: RequestContext) {
const { current_user: currentUser } = context.data;
if (!currentUser || currentUser.refresh_at > Date.now())
return await context.next();
if (!currentUser) return await context.next();
if (currentUser.refresh_at > Date.now()) {
if (
[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].find(
(p) => currentUser.permissions & (1 << p),
)
)
Sentry.setUser({
email: currentUser.email,
id: currentUser.id,
ip_address: context.request.headers.get("cf-connecting-ip"),
username: currentUser.username,
});
}
const oauthData = await context.env.DATA.get(
`oauthcredentials_${currentUser.id}`,
@@ -95,6 +108,18 @@ async function refreshAuth(context: RequestContext) {
: undefined,
);
if (
[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].find(
(p) => currentUser.permissions & (1 << p),
)
)
Sentry.setUser({
email: currentUser.email,
id: currentUser.id,
ip_address: context.request.headers.get("cf-connecting-ip"),
username: currentUser.username,
});
const tokenHash = await generateTokenHash(context.data.sid);
await context.env.DATA.put(`auth_${tokenHash}`, JSON.stringify(userData), {
@@ -273,7 +298,8 @@ async function setAuth(context: RequestContext) {
async function setBody(context: RequestContext) {
if (
["PATCH", "POST", "PUT"].includes(context.request.method) &&
!context.request.url.endsWith("/api/infractions/new")
!context.request.url.endsWith("/api/infractions/new") &&
!context.request.url.endsWith("/api/st")
) {
if (
!context.request.headers