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" });
|
.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({
|
const user = await User.create({
|
||||||
username,
|
username,
|
||||||
password,
|
password,
|
||||||
@ -61,9 +72,7 @@ router.post("/", authenticate, authorizeManager, async (req, res) => {
|
|||||||
.status(201)
|
.status(201)
|
||||||
.json({ id: user.id, username: user.username, role: user.role });
|
.json({ id: user.id, username: user.username, role: user.role });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.name === "SequelizeUniqueConstraintError") {
|
console.error(`Ошибка при создании пользователя: ${error.message}`);
|
||||||
return res.status(400).json({ message: "Username already exists" });
|
|
||||||
}
|
|
||||||
res.status(500).json({ message: "Server error" });
|
res.status(500).json({ message: "Server error" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -64,9 +64,9 @@ sequelize
|
|||||||
console.log("Database synced");
|
console.log("Database synced");
|
||||||
// Create admin user if not exists
|
// Create admin user if not exists
|
||||||
return User.findOrCreate({
|
return User.findOrCreate({
|
||||||
where: { username: "admin" },
|
where: { username: "Semen_Ilin" },
|
||||||
defaults: {
|
defaults: {
|
||||||
username: "admin",
|
username: "Semen_Ilin",
|
||||||
password: "admin123", // In production, hash this
|
password: "admin123", // In production, hash this
|
||||||
role: "admin",
|
role: "admin",
|
||||||
},
|
},
|
||||||
|
|||||||
@ -146,7 +146,15 @@ const AdminPanel = () => {
|
|||||||
setShowCreateForm(false);
|
setShowCreateForm(false);
|
||||||
fetchUsers();
|
fetchUsers();
|
||||||
} catch (error) {
|
} 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);
|
setShowCreateForm(false);
|
||||||
fetchUsers();
|
fetchUsers();
|
||||||
} catch (error) {
|
} 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