mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-02 16:16:39 +08:00
commit
834e1438c2
9
app/app/(admin)/components/users-table.modules.scss
Normal file
9
app/app/(admin)/components/users-table.modules.scss
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
input {
|
||||
text-align: left !important
|
||||
}
|
||||
|
||||
|
||||
.ant-input {
|
||||
text-align: left !important
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import "./users-table.modules.scss";
|
||||
import React, { Dispatch, SetStateAction, useEffect, useState } from "react";
|
||||
import { User } from "@prisma/client";
|
||||
import {
|
||||
@ -50,7 +51,7 @@ function UserTableSearchInput({ users, setUsers, setLoading }: UserInterface) {
|
||||
setLoading(true);
|
||||
const fetchUsers = async () => {
|
||||
try {
|
||||
const url = new URL("/api/admin/users/", window.location.href);
|
||||
const url = new URL("/api/admin/users", window.location.href);
|
||||
url.searchParams.append("search", searchText);
|
||||
console.log(url, "url");
|
||||
const response = await fetch(url);
|
||||
@ -95,7 +96,7 @@ function UsersTable({ users, setUsers, loading }: UserInterface) {
|
||||
const confirmPassword = async (id: string) => {
|
||||
console.log("-----", newPassword, id);
|
||||
try {
|
||||
fetch(`/api/admin/users/${id}/`, {
|
||||
fetch(`/api/admin/users/${id}`, {
|
||||
method: "put",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
|
@ -9,10 +9,6 @@
|
||||
margin-right: auto
|
||||
}
|
||||
|
||||
input {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
.signin hr {
|
||||
text-align: center;
|
||||
border: 0;
|
||||
|
34
lib/auth.ts
34
lib/auth.ts
@ -4,6 +4,7 @@ import EmailProvider from "next-auth/providers/email";
|
||||
import CredentialsProvider from "next-auth/providers/credentials";
|
||||
import {PrismaAdapter} from "@next-auth/prisma-adapter";
|
||||
import prisma from "@/lib/prisma";
|
||||
import { User } from "@prisma/client";
|
||||
import {ADMIN_LIST, isEmail, isName} from "@/lib/auth_list";
|
||||
import {createTransport} from "nodemailer";
|
||||
|
||||
@ -140,6 +141,12 @@ export const authOptions: NextAuthOptions = {
|
||||
// console.log('555555555,', session, token)
|
||||
return session;
|
||||
},
|
||||
// 过滤不存在的用户,目前没用
|
||||
// async signIn({ user, account, profile, email, credentials }) {
|
||||
// const existingUser = await existUser(user as User);
|
||||
// console.log('---', user, 'account', account, 'email', email, 'exist', existingUser)
|
||||
// return !!existingUser;
|
||||
// }
|
||||
},
|
||||
};
|
||||
|
||||
@ -233,21 +240,24 @@ export async function VerifiedAdminUser() {
|
||||
// };
|
||||
// }
|
||||
|
||||
async function existUser(user: {[key: string]: string} | User ) {
|
||||
const conditions = [];
|
||||
if (user?.name) {
|
||||
conditions.push({ name: user.name });
|
||||
}
|
||||
if (user?.email) {
|
||||
conditions.push({ email: user.email });
|
||||
}
|
||||
return conditions.length ? await prisma.user.findFirst({
|
||||
where: {
|
||||
AND: conditions,
|
||||
},
|
||||
}) : null
|
||||
}
|
||||
|
||||
export async function insertUser(user: {[key: string]: string}) {
|
||||
try {
|
||||
const conditions = [];
|
||||
if (user?.name) {
|
||||
conditions.push({ name: user.name });
|
||||
}
|
||||
if (user?.email) {
|
||||
conditions.push({ email: user.email });
|
||||
}
|
||||
const existingUser = conditions.length? await prisma.user.findFirst({
|
||||
where: {
|
||||
AND: conditions,
|
||||
},
|
||||
}) : null;
|
||||
const existingUser = await existUser(user);
|
||||
// console.log('[LOG]', existingUser, user, '=======')
|
||||
if (!existingUser) {
|
||||
return await prisma.user.create({
|
||||
|
Loading…
Reference in New Issue
Block a user