From 5748f64b37b7f068322ac18515480388965b6cd2 Mon Sep 17 00:00:00 2001 From: njxue Date: Tue, 12 Nov 2024 19:57:54 +0800 Subject: [PATCH] Default user as admin on register --- backend/user-service/.env.example | 5 ++++- backend/user-service/model/repository.js | 3 ++- frontend/src/domain/context/AuthContext.tsx | 2 +- .../presentation/pages/admin/users/UserManagement.tsx | 10 ++++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/backend/user-service/.env.example b/backend/user-service/.env.example index e9f3cebcc0..84d9052720 100644 --- a/backend/user-service/.env.example +++ b/backend/user-service/.env.example @@ -44,4 +44,7 @@ SMTP_USER=peerprep25@gmail.com SMTP_PASSWORD=scdqcveqpurzzajj # App URL -APP_URL=http://localhost:3000 \ No newline at end of file +APP_URL=http://localhost:3000 + +# Feature flags +DEFAULT_ADMIN_ON_REGISTER_FEATURE=true \ No newline at end of file diff --git a/backend/user-service/model/repository.js b/backend/user-service/model/repository.js index 29c8228ceb..082cc2d33c 100644 --- a/backend/user-service/model/repository.js +++ b/backend/user-service/model/repository.js @@ -36,7 +36,8 @@ export async function connectToDB() { } export async function createUser(username, email, password) { - return new UserModel({ username, email, password }).save(); + const isAdmin = process.env.DEFAULT_ADMIN_ON_REGISTER_FEATURE === "true"; + return new UserModel({ username, email, password, isAdmin }).save(); } export async function findUserByEmail(email) { diff --git a/frontend/src/domain/context/AuthContext.tsx b/frontend/src/domain/context/AuthContext.tsx index d93cfaff2a..0eb9a89788 100644 --- a/frontend/src/domain/context/AuthContext.tsx +++ b/frontend/src/domain/context/AuthContext.tsx @@ -93,7 +93,7 @@ export const AuthProvider = ({ children }: { children: ReactNode }) => { }; //const isUserAdmin = isLoggedIn === true && user != null && user.isAdmin; - const isUserAdmin = true; + const isUserAdmin = !!user?.isAdmin; return ( = () => { const [users, setUsers] = useState([]); @@ -21,8 +23,12 @@ export const UserManagement: React.FC<{}> = () => { useEffect(() => { const getAllUsers = async () => { - const users = await userUseCases.getAllUsers(); - setUsers(users); + try { + const users = await userUseCases.getAllUsers(); + setUsers(users); + } catch (err) { + toast.error(handleError(err)); + } }; getAllUsers(); }, []);