add user-project relation and role-based filtering

This commit is contained in:
2026-02-02 01:14:57 -06:00
parent 01aadcf2f3
commit 1d278936b1
5 changed files with 47 additions and 2 deletions

View File

@@ -55,9 +55,10 @@ export async function login(
password_hash: string;
avatar_url: string | null;
role_name: string;
project_id: string | null;
created_at: Date;
}>(
`SELECT u.id, u.email, u.name, u.password_hash, u.avatar_url, r.name as role_name, u.created_at
`SELECT u.id, u.email, u.name, u.password_hash, u.avatar_url, r.name as role_name, u.project_id, u.created_at
FROM users u
JOIN roles r ON u.role_id = r.id
WHERE LOWER(u.email) = LOWER($1) AND u.is_active = true
@@ -83,6 +84,7 @@ export async function login(
email: user.email,
roleId: user.id,
roleName: user.role_name,
projectId: user.project_id,
});
const refreshToken = generateRefreshToken({
@@ -170,8 +172,9 @@ export async function refresh(refreshToken: string): Promise<{ accessToken: stri
id: string;
email: string;
role_name: string;
project_id: string | null;
}>(
`SELECT u.id, u.email, r.name as role_name
`SELECT u.id, u.email, r.name as role_name, u.project_id
FROM users u
JOIN roles r ON u.role_id = r.id
WHERE u.id = $1 AND u.is_active = true
@@ -190,6 +193,7 @@ export async function refresh(refreshToken: string): Promise<{ accessToken: stri
email: user.email,
roleId: user.id,
roleName: user.role_name,
projectId: user.project_id,
});
return { accessToken };