Skip to content

Commit bfd8a2c

Browse files
committed
Fix token revoking flow scope check
1 parent 48f1f00 commit bfd8a2c

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

apps/webapp/app/routes/account.tokens/route.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { parse } from "@conform-to/zod";
33
import { BookOpenIcon, ShieldCheckIcon, TrashIcon } from "@heroicons/react/20/solid";
44
import { ShieldExclamationIcon } from "@heroicons/react/24/solid";
55
import { DialogClose } from "@radix-ui/react-dialog";
6-
import { Form, MetaFunction, useActionData, useFetcher } from "@remix-run/react";
7-
import { ActionFunction, LoaderFunctionArgs, json } from "@remix-run/server-runtime";
6+
import { Form, type MetaFunction, useActionData, useFetcher } from "@remix-run/react";
7+
import { type ActionFunction, type LoaderFunctionArgs, json } from "@remix-run/server-runtime";
88
import { typedjson, useTypedLoaderData } from "remix-typedjson";
99
import { z } from "zod";
1010
import { PageBody, PageContainer } from "~/components/layout/AppLayout";
@@ -16,7 +16,6 @@ import { Dialog, DialogContent, DialogHeader, DialogTrigger } from "~/components
1616
import { Fieldset } from "~/components/primitives/Fieldset";
1717
import { FormButtons } from "~/components/primitives/FormButtons";
1818
import { FormError } from "~/components/primitives/FormError";
19-
import { Header2 } from "~/components/primitives/Headers";
2019
import { Hint } from "~/components/primitives/Hint";
2120
import { Input } from "~/components/primitives/Input";
2221
import { InputGroup } from "~/components/primitives/InputGroup";
@@ -36,8 +35,8 @@ import {
3635
import { SimpleTooltip } from "~/components/primitives/Tooltip";
3736
import { redirectWithSuccessMessage } from "~/models/message.server";
3837
import {
39-
CreatedPersonalAccessToken,
40-
ObfuscatedPersonalAccessToken,
38+
type CreatedPersonalAccessToken,
39+
type ObfuscatedPersonalAccessToken,
4140
createPersonalAccessToken,
4241
getValidPersonalAccessTokens,
4342
revokePersonalAccessToken,
@@ -53,7 +52,7 @@ export const meta: MetaFunction = () => {
5352
];
5453
};
5554

56-
export const loader = async ({ request, params }: LoaderFunctionArgs) => {
55+
export const loader = async ({ request }: LoaderFunctionArgs) => {
5756
const userId = await requireUserId(request);
5857

5958
try {
@@ -113,7 +112,7 @@ export const action: ActionFunction = async ({ request }) => {
113112
}
114113
case "revoke": {
115114
try {
116-
await revokePersonalAccessToken(submission.value.tokenId);
115+
await revokePersonalAccessToken(submission.value.tokenId, userId);
117116

118117
return redirectWithSuccessMessage(
119118
personalAccessTokensPath(),
@@ -125,6 +124,7 @@ export const action: ActionFunction = async ({ request }) => {
125124
}
126125
}
127126
default: {
127+
submission.value satisfies never;
128128
return json({ errors: { body: "Invalid action" } }, { status: 400 });
129129
}
130130
}

apps/webapp/app/services/personalAccessToken.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,11 @@ export async function getPersonalAccessTokenFromAuthorizationCode(authorizationC
7979
};
8080
}
8181

82-
export async function revokePersonalAccessToken(tokenId: string) {
82+
export async function revokePersonalAccessToken(tokenId: string, userId: string) {
8383
await prisma.personalAccessToken.update({
8484
where: {
8585
id: tokenId,
86+
userId,
8687
},
8788
data: {
8889
revokedAt: new Date(),

0 commit comments

Comments
 (0)