mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-13 12:55:19 +00:00
prevent self invite
This commit is contained in:
parent
6caed350d3
commit
8ad6ba7ab0
3 changed files with 12 additions and 1 deletions
|
|
@ -287,6 +287,15 @@ export const createInvite = async (email: string, userId: string, domain: string
|
|||
withOrgMembership(session, domain, async (orgId) => {
|
||||
console.log("Creating invite for", email, userId, orgId);
|
||||
|
||||
if (email === session.user.email) {
|
||||
console.error("User tried to invite themselves");
|
||||
return {
|
||||
statusCode: StatusCodes.BAD_REQUEST,
|
||||
errorCode: ErrorCode.SELF_INVITE,
|
||||
message: "❌ You can't invite yourself to an org",
|
||||
} satisfies ServiceError;
|
||||
}
|
||||
|
||||
try {
|
||||
await prisma.invite.create({
|
||||
data: {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { useToast } from "@/components/hooks/use-toast";
|
|||
import { createInvite } from "@/actions"
|
||||
import { isServiceError } from "@/lib/utils";
|
||||
import { useDomain } from "@/hooks/useDomain";
|
||||
import { ErrorCode } from "@/lib/errorCodes";
|
||||
|
||||
const formSchema = z.object({
|
||||
email: z.string().min(2).max(40),
|
||||
|
|
@ -29,7 +30,7 @@ export const MemberInviteForm = ({ userId }: { userId: string }) => {
|
|||
const res = await createInvite(values.email, userId, domain);
|
||||
if (isServiceError(res)) {
|
||||
toast({
|
||||
description: `❌ Failed to create invite`
|
||||
description: res.errorCode == ErrorCode.SELF_INVITE ? res.message :`❌ Failed to create invite`
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ export enum ErrorCode {
|
|||
REPOSITORY_NOT_FOUND = 'REPOSITORY_NOT_FOUND',
|
||||
FILE_NOT_FOUND = 'FILE_NOT_FOUND',
|
||||
INVALID_REQUEST_BODY = 'INVALID_REQUEST_BODY',
|
||||
SELF_INVITE = 'SELF_INVITE',
|
||||
NOT_AUTHENTICATED = 'NOT_AUTHENTICATED',
|
||||
NOT_FOUND = 'NOT_FOUND',
|
||||
CONNECTION_SYNC_ALREADY_SCHEDULED = 'CONNECTION_SYNC_ALREADY_SCHEDULED',
|
||||
|
|
|
|||
Loading…
Reference in a new issue