chore: update src/lib/auth.ts

swadhinbiswas committed 8 months ago
127b348
1 parent d1173c4
commit 127b348
1 file changed
+18 -10
Showing 1 changed file+18-10
▼src/lib/auth.ts
+18-10
11
11
import { getDatabase, schema } from "@/db";
12
12
import { eq, and, or } from "drizzle-orm";
13
13
import { generateId, now } from "./utils";
14
-import { canReadRepo } from "@/lib/permissions";
14
+import { getRepoPermission } from "@/lib/permissions";
15
15
import { hashPersonalAccessToken, verifyPersonalAccessTokenValue } from "@/lib/personal-access-token";
16
16
17
17
// Types
358
358
repoName: string
359
359
) {
360
360
const db = getDatabase();
361
- const user = await getUserFromRequest(request);
362
- const userId = user?.userId;
361
+ const tokenUser = await getUserFromRequest(request);
362
+ const userId = tokenUser?.userId;
363
363
364
364
// 1. Get Repo Owner
365
365
const repoOwner = await db.query.users.findFirst({
374
374
eq(schema.repositories.ownerId, repoOwner.id),
375
375
eq(schema.repositories.name, repoName)
376
376
),
377
+ with: {
378
+ owner: true,
379
+ },
377
380
});
378
381
379
382
if (!repository) return null;
380
383
381
384
// 3. Check Permissions
382
- const permission = await canReadRepo(userId, repository);
383
- if (!permission) return null;
385
+ const permission = await getRepoPermission(userId, repository, {
386
+ isAdmin: tokenUser?.isAdmin,
387
+ });
388
+ if (permission === "none") return null;
389
+
390
+ const requester = userId
391
+ ? await db.query.users.findFirst({
392
+ where: eq(schema.users.id, userId),
393
+ })
394
+ : null;
384
395
385
396
return {
386
397
repository,
387
- user: repoOwner,
388
- permission: typeof permission === 'string' ? permission : 'read' // canReadRepo returns boolean or string? It usually returns boolean.
389
- // Wait, let's check canReadRepo signature if possible, but assuming boolean for now.
390
- // If canReadRepo returns boolean, we might want to fetch actual permission level if needed.
391
- // But for now, basic check is enough.
398
+ user: requester,
399
+ permission,
392
400
};
393
401
}
394
402