made the email field case-insensitive
This commit is contained in:
parent
ae1682ad55
commit
ddc0675d2e
|
@ -42,7 +42,7 @@ export default async function postCollection(
|
||||||
color: collection.color,
|
color: collection.color,
|
||||||
members: {
|
members: {
|
||||||
create: collection.members.map((e) => ({
|
create: collection.members.map((e) => ({
|
||||||
user: { connect: { email: e.user.email } },
|
user: { connect: { email: e.user.email.toLowerCase() } },
|
||||||
canCreate: e.canCreate,
|
canCreate: e.canCreate,
|
||||||
canUpdate: e.canUpdate,
|
canUpdate: e.canUpdate,
|
||||||
canDelete: e.canDelete,
|
canDelete: e.canDelete,
|
||||||
|
|
|
@ -43,7 +43,7 @@ export default async function updateCollection(
|
||||||
isPublic: collection.isPublic,
|
isPublic: collection.isPublic,
|
||||||
members: {
|
members: {
|
||||||
create: collection.members.map((e) => ({
|
create: collection.members.map((e) => ({
|
||||||
user: { connect: { email: e.user.email } },
|
user: { connect: { email: e.user.email.toLowerCase() } },
|
||||||
canCreate: e.canCreate,
|
canCreate: e.canCreate,
|
||||||
canUpdate: e.canUpdate,
|
canUpdate: e.canUpdate,
|
||||||
canDelete: e.canDelete,
|
canDelete: e.canDelete,
|
||||||
|
|
|
@ -7,7 +7,7 @@ export default async function getUser(
|
||||||
) {
|
) {
|
||||||
const user = await prisma.user.findUnique({
|
const user = await prisma.user.findUnique({
|
||||||
where: {
|
where: {
|
||||||
email: lookupEmail,
|
email: lookupEmail.toLowerCase(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ export default async function getUser(
|
||||||
if (
|
if (
|
||||||
!isSelf &&
|
!isSelf &&
|
||||||
user?.isPrivate &&
|
user?.isPrivate &&
|
||||||
!user.whitelistedUsers.includes(userEmail)
|
!user.whitelistedUsers.includes(userEmail.toLowerCase())
|
||||||
) {
|
) {
|
||||||
return { response: "This profile is private.", status: 401 };
|
return { response: "This profile is private.", status: 401 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ export default async function updateUser(
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
name: user.name,
|
name: user.name,
|
||||||
email: user.email,
|
email: user.email.toLowerCase(),
|
||||||
isPrivate: user.isPrivate,
|
isPrivate: user.isPrivate,
|
||||||
whitelistedUsers: user.whitelistedUsers,
|
whitelistedUsers: user.whitelistedUsers,
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,8 +9,8 @@ const addMemberToCollection = async (
|
||||||
setMember: (newMember: Member) => null | undefined
|
setMember: (newMember: Member) => null | undefined
|
||||||
) => {
|
) => {
|
||||||
const checkIfMemberAlreadyExists = collection.members.find((e) => {
|
const checkIfMemberAlreadyExists = collection.members.find((e) => {
|
||||||
const email = e.user.email;
|
const email = e.user.email.toLowerCase();
|
||||||
return email === memberEmail;
|
return email === memberEmail.toLowerCase();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
@ -22,7 +22,9 @@ const addMemberToCollection = async (
|
||||||
memberEmail.trim() !== ownerEmail
|
memberEmail.trim() !== ownerEmail
|
||||||
) {
|
) {
|
||||||
// Lookup, get data/err, list ...
|
// Lookup, get data/err, list ...
|
||||||
const user = await getPublicUserDataByEmail(memberEmail.trim());
|
const user = await getPublicUserDataByEmail(
|
||||||
|
memberEmail.trim().toLowerCase()
|
||||||
|
);
|
||||||
|
|
||||||
if (user.email) {
|
if (user.email) {
|
||||||
setMember({
|
setMember({
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
|
||||||
export default async function getPublicUserDataByEmail(email: string) {
|
export default async function getPublicUserDataByEmail(email: string) {
|
||||||
const response = await fetch(`/api/routes/users?email=${email}`);
|
const response = await fetch(
|
||||||
|
`/api/routes/users?email=${email.toLowerCase()}`
|
||||||
|
);
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ export const authOptions: AuthOptions = {
|
||||||
|
|
||||||
const findUser = await prisma.user.findFirst({
|
const findUser = await prisma.user.findFirst({
|
||||||
where: {
|
where: {
|
||||||
email: email,
|
email: email.toLowerCase(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ export const authOptions: AuthOptions = {
|
||||||
return {
|
return {
|
||||||
id: findUser?.id,
|
id: findUser?.id,
|
||||||
name: findUser?.name,
|
name: findUser?.name,
|
||||||
email: findUser?.email,
|
email: findUser?.email.toLowerCase(),
|
||||||
};
|
};
|
||||||
} else return null as any;
|
} else return null as any;
|
||||||
},
|
},
|
||||||
|
@ -55,7 +55,7 @@ export const authOptions: AuthOptions = {
|
||||||
if (trigger === "update" && session?.name && session?.email) {
|
if (trigger === "update" && session?.name && session?.email) {
|
||||||
// Note, that `session` can be any arbitrary object, remember to validate it!
|
// Note, that `session` can be any arbitrary object, remember to validate it!
|
||||||
token.name = session.name;
|
token.name = session.name;
|
||||||
token.email = session.email;
|
token.email = session.email.toLowerCase();
|
||||||
}
|
}
|
||||||
return token;
|
return token;
|
||||||
},
|
},
|
||||||
|
|
|
@ -25,7 +25,7 @@ export default async function Index(
|
||||||
|
|
||||||
const checkIfUserExists = await prisma.user.findFirst({
|
const checkIfUserExists = await prisma.user.findFirst({
|
||||||
where: {
|
where: {
|
||||||
email: body.email,
|
email: body.email.toLowerCase(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ export default async function Index(
|
||||||
await prisma.user.create({
|
await prisma.user.create({
|
||||||
data: {
|
data: {
|
||||||
name: body.name,
|
name: body.name,
|
||||||
email: body.email,
|
email: body.email.toLowerCase(),
|
||||||
password: hashedPassword,
|
password: hashedPassword,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -8,7 +8,7 @@ export default async function Index(req: NextApiRequest, res: NextApiResponse) {
|
||||||
const session = await getServerSession(req, res, authOptions);
|
const session = await getServerSession(req, res, authOptions);
|
||||||
|
|
||||||
const userId = session?.user.id;
|
const userId = session?.user.id;
|
||||||
const userEmail = session?.user.email;
|
const userEmail = session?.user.email?.toLowerCase();
|
||||||
const queryId = Number(req.query.id);
|
const queryId = Number(req.query.id);
|
||||||
|
|
||||||
if (!queryId)
|
if (!queryId)
|
||||||
|
|
Ŝarĝante…
Reference in New Issue