fix: add check for already used slug (#13076)
* add check for already used slug * Update _patch.ts Removed comment that added no value based on the code. Renamed const --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com>
This commit is contained in:
parent
d8ba783369
commit
65d9704f2b
|
@ -58,6 +58,7 @@ export async function patchHandler(req: NextApiRequest) {
|
||||||
const { prisma, body, userId } = req;
|
const { prisma, body, userId } = req;
|
||||||
const data = schemaTeamUpdateBodyParams.parse(body);
|
const data = schemaTeamUpdateBodyParams.parse(body);
|
||||||
const { teamId } = schemaQueryTeamId.parse(req.query);
|
const { teamId } = schemaQueryTeamId.parse(req.query);
|
||||||
|
|
||||||
/** Only OWNERS and ADMINS can edit teams */
|
/** Only OWNERS and ADMINS can edit teams */
|
||||||
const _team = await prisma.team.findFirst({
|
const _team = await prisma.team.findFirst({
|
||||||
include: { members: true },
|
include: { members: true },
|
||||||
|
@ -65,6 +66,18 @@ export async function patchHandler(req: NextApiRequest) {
|
||||||
});
|
});
|
||||||
if (!_team) throw new HttpError({ statusCode: 401, message: "Unauthorized: OWNER or ADMIN required" });
|
if (!_team) throw new HttpError({ statusCode: 401, message: "Unauthorized: OWNER or ADMIN required" });
|
||||||
|
|
||||||
|
const slugAlreadyExists = await prisma.team.findFirst({
|
||||||
|
where: {
|
||||||
|
slug: {
|
||||||
|
mode: "insensitive",
|
||||||
|
equals: data.slug,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (slugAlreadyExists && data.slug !== _team.slug)
|
||||||
|
throw new HttpError({ statusCode: 409, message: "Team slug already exists" });
|
||||||
|
|
||||||
// Check if parentId is related to this user
|
// Check if parentId is related to this user
|
||||||
if (data.parentId && data.parentId === teamId) {
|
if (data.parentId && data.parentId === teamId) {
|
||||||
throw new HttpError({
|
throw new HttpError({
|
||||||
|
|
Loading…
Reference in New Issue
Block a user