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:
parent
8efe4f902d
commit
765039c953
@ -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" });
|
||||
}
|
||||
});
|
||||
|
||||
@ -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",
|
||||
},
|
||||
|
||||
@ -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("Ошибка при создании пользователя");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -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("Ошибка при создании пользователя");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user