Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- models/User.js +10 -0
- routes/auth.js +3 -3
models/User.js
CHANGED
|
@@ -2,6 +2,16 @@ const mongoose = require('mongoose');
|
|
| 2 |
const bcrypt = require('bcryptjs');
|
| 3 |
|
| 4 |
const userSchema = new mongoose.Schema({
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
username: {
|
| 6 |
type: String,
|
| 7 |
required: true,
|
|
|
|
| 2 |
const bcrypt = require('bcryptjs');
|
| 3 |
|
| 4 |
const userSchema = new mongoose.Schema({
|
| 5 |
+
name: {
|
| 6 |
+
type: String,
|
| 7 |
+
trim: true,
|
| 8 |
+
default: ''
|
| 9 |
+
},
|
| 10 |
+
displayName: {
|
| 11 |
+
type: String,
|
| 12 |
+
trim: true,
|
| 13 |
+
default: ''
|
| 14 |
+
},
|
| 15 |
username: {
|
| 16 |
type: String,
|
| 17 |
required: true,
|
routes/auth.js
CHANGED
|
@@ -117,7 +117,7 @@ router.post('/login', async (req, res) => {
|
|
| 117 |
try {
|
| 118 |
await User.findOneAndUpdate(
|
| 119 |
{ email: String(user.email).toLowerCase().trim() },
|
| 120 |
-
{ $set: { name: user.name || user.displayName || '', username: (user.email || '').split('@')[0], email: String(user.email).toLowerCase().trim(), role: user.role || 'student' } },
|
| 121 |
{ upsert: true, new: true, setDefaultsOnInsert: true }
|
| 122 |
);
|
| 123 |
} catch {}
|
|
@@ -185,7 +185,7 @@ router.post('/admin/users', authenticateToken, async (req, res) => {
|
|
| 185 |
try {
|
| 186 |
saved = await User.findOneAndUpdate(
|
| 187 |
{ email: String(email).toLowerCase().trim() },
|
| 188 |
-
{ $set: { name: name.trim(), username: String(email).split('@')[0], email: String(email).toLowerCase().trim(), role: (role || 'student').trim() } },
|
| 189 |
{ upsert: true, new: true, setDefaultsOnInsert: true }
|
| 190 |
);
|
| 191 |
} catch {}
|
|
@@ -214,7 +214,7 @@ router.put('/admin/users/:email', authenticateToken, async (req, res) => {
|
|
| 214 |
} catch {}
|
| 215 |
}
|
| 216 |
// Sync legacy map as best-effort
|
| 217 |
-
if (!PREDEFINED_USERS[email]) PREDEFINED_USERS[email] = { name: name || '', email, role: role || 'student', ...(displayName ? { displayName } : {}) };
|
| 218 |
else {
|
| 219 |
if (typeof name === 'string' && name.trim()) PREDEFINED_USERS[email].name = name.trim();
|
| 220 |
if (typeof role === 'string' && role.trim()) PREDEFINED_USERS[email].role = role.trim();
|
|
|
|
| 117 |
try {
|
| 118 |
await User.findOneAndUpdate(
|
| 119 |
{ email: String(user.email).toLowerCase().trim() },
|
| 120 |
+
{ $set: { name: user.name || user.displayName || '', displayName: user.displayName || user.name || '', username: (user.email || '').split('@')[0], email: String(user.email).toLowerCase().trim(), role: user.role || 'student' } },
|
| 121 |
{ upsert: true, new: true, setDefaultsOnInsert: true }
|
| 122 |
);
|
| 123 |
} catch {}
|
|
|
|
| 185 |
try {
|
| 186 |
saved = await User.findOneAndUpdate(
|
| 187 |
{ email: String(email).toLowerCase().trim() },
|
| 188 |
+
{ $set: { name: name.trim(), displayName: (displayName || name).trim(), username: String(email).split('@')[0], email: String(email).toLowerCase().trim(), role: (role || 'student').trim() } },
|
| 189 |
{ upsert: true, new: true, setDefaultsOnInsert: true }
|
| 190 |
);
|
| 191 |
} catch {}
|
|
|
|
| 214 |
} catch {}
|
| 215 |
}
|
| 216 |
// Sync legacy map as best-effort
|
| 217 |
+
if (!PREDEFINED_USERS[email]) PREDEFINED_USERS[email] = { name: name || '', email, role: role || 'student', ...(displayName ? { displayName } : { displayName: name }) };
|
| 218 |
else {
|
| 219 |
if (typeof name === 'string' && name.trim()) PREDEFINED_USERS[email].name = name.trim();
|
| 220 |
if (typeof role === 'string' && role.trim()) PREDEFINED_USERS[email].role = role.trim();
|