modified: backend/routes/users.js

modified:   backend/server.js
	modified:   frontend/src/components/AdminPanel.jsx
	modified:   frontend/src/components/ManagerPanel.jsx
This commit is contained in:
Fovway 2025-10-13 23:50:26 +07:00
parent 8efe4f902d
commit 765039c953
4 changed files with 32 additions and 7 deletions

View File

@ -44,6 +44,17 @@ router.post("/", authenticate, authorizeManager, async (req, res) => {
.json({ message: "Managers can only create users or managers" });
}
// Check if user already exists
const existingUser = await User.findOne({ where: { username } });
if (existingUser) {
console.log(
`Попытка создания пользователя с существующим именем: ${username}`
);
return res
.status(400)
.json({ message: "Такой пользователь уже существует" });
}
const user = await User.create({
username,
password,
@ -61,9 +72,7 @@ router.post("/", authenticate, authorizeManager, async (req, res) => {
.status(201)
.json({ id: user.id, username: user.username, role: user.role });
} catch (error) {
if (error.name === "SequelizeUniqueConstraintError") {
return res.status(400).json({ message: "Username already exists" });
}
console.error(`Ошибка при создании пользователя: ${error.message}`);
res.status(500).json({ message: "Server error" });
}
});

View File

@ -64,9 +64,9 @@ sequelize
console.log("Database synced");
// Create admin user if not exists
return User.findOrCreate({
where: { username: "admin" },
where: { username: "Semen_Ilin" },
defaults: {
username: "admin",
username: "Semen_Ilin",
password: "admin123", // In production, hash this
role: "admin",
},

View File

@ -146,7 +146,15 @@ const AdminPanel = () => {
setShowCreateForm(false);
fetchUsers();
} catch (error) {
alert("Ошибка при создании пользователя");
if (
error.response &&
error.response.data &&
error.response.data.message
) {
alert(error.response.data.message);
} else {
alert("Ошибка при создании пользователя");
}
}
};

View File

@ -128,7 +128,15 @@ const ManagerPanel = () => {
setShowCreateForm(false);
fetchUsers();
} catch (error) {
alert("Ошибка при создании пользователя");
if (
error.response &&
error.response.data &&
error.response.data.message
) {
alert(error.response.data.message);
} else {
alert("Ошибка при создании пользователя");
}
}
};