Merge pull request #48 from linkwarden/dev

made the email field case-insensitive
This commit is contained in:
Daniel 2023-07-04 00:17:41 +03:30 committed by GitHub
commit 94db41757f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 19 additions and 15 deletions

View File

@ -42,7 +42,7 @@ export default async function postCollection(
color: collection.color,
members: {
create: collection.members.map((e) => ({
user: { connect: { email: e.user.email } },
user: { connect: { email: e.user.email.toLowerCase() } },
canCreate: e.canCreate,
canUpdate: e.canUpdate,
canDelete: e.canDelete,

View File

@ -43,7 +43,7 @@ export default async function updateCollection(
isPublic: collection.isPublic,
members: {
create: collection.members.map((e) => ({
user: { connect: { email: e.user.email } },
user: { connect: { email: e.user.email.toLowerCase() } },
canCreate: e.canCreate,
canUpdate: e.canUpdate,
canDelete: e.canDelete,

View File

@ -7,7 +7,7 @@ export default async function getUser(
) {
const user = await prisma.user.findUnique({
where: {
email: lookupEmail,
email: lookupEmail.toLowerCase(),
},
});
@ -16,7 +16,7 @@ export default async function getUser(
if (
!isSelf &&
user?.isPrivate &&
!user.whitelistedUsers.includes(userEmail)
!user.whitelistedUsers.includes(userEmail.toLowerCase())
) {
return { response: "This profile is private.", status: 401 };
}

View File

@ -72,7 +72,7 @@ export default async function updateUser(
},
data: {
name: user.name,
email: user.email,
email: user.email.toLowerCase(),
isPrivate: user.isPrivate,
whitelistedUsers: user.whitelistedUsers,
},

View File

@ -9,8 +9,8 @@ const addMemberToCollection = async (
setMember: (newMember: Member) => null | undefined
) => {
const checkIfMemberAlreadyExists = collection.members.find((e) => {
const email = e.user.email;
return email === memberEmail;
const email = e.user.email.toLowerCase();
return email === memberEmail.toLowerCase();
});
if (
@ -22,7 +22,9 @@ const addMemberToCollection = async (
memberEmail.trim() !== ownerEmail
) {
// Lookup, get data/err, list ...
const user = await getPublicUserDataByEmail(memberEmail.trim());
const user = await getPublicUserDataByEmail(
memberEmail.trim().toLowerCase()
);
if (user.email) {
setMember({

View File

@ -1,7 +1,9 @@
import { toast } from "react-hot-toast";
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();

View File

@ -21,7 +21,7 @@ export const authOptions: AuthOptions = {
const findUser = await prisma.user.findFirst({
where: {
email: email,
email: email.toLowerCase(),
},
});
@ -35,7 +35,7 @@ export const authOptions: AuthOptions = {
return {
id: findUser?.id,
name: findUser?.name,
email: findUser?.email,
email: findUser?.email.toLowerCase(),
};
} else return null as any;
},
@ -55,7 +55,7 @@ export const authOptions: AuthOptions = {
if (trigger === "update" && session?.name && session?.email) {
// Note, that `session` can be any arbitrary object, remember to validate it!
token.name = session.name;
token.email = session.email;
token.email = session.email.toLowerCase();
}
return token;
},

View File

@ -25,7 +25,7 @@ export default async function Index(
const checkIfUserExists = await prisma.user.findFirst({
where: {
email: body.email,
email: body.email.toLowerCase(),
},
});
@ -37,7 +37,7 @@ export default async function Index(
await prisma.user.create({
data: {
name: body.name,
email: body.email,
email: body.email.toLowerCase(),
password: hashedPassword,
},
});

View File

@ -8,7 +8,7 @@ export default async function Index(req: NextApiRequest, res: NextApiResponse) {
const session = await getServerSession(req, res, authOptions);
const userId = session?.user.id;
const userEmail = session?.user.email;
const userEmail = session?.user.email?.toLowerCase();
const queryId = Number(req.query.id);
if (!queryId)