mirror of
https://github.com/bunny-lab-io/Borealis.git
synced 2025-10-27 03:41:57 -06:00
Fixed User Modification Interaction Logic and Script Editor Text
This commit is contained in:
@@ -75,6 +75,7 @@ export default function UserManagement() {
|
|||||||
const [menuAnchor, setMenuAnchor] = useState(null);
|
const [menuAnchor, setMenuAnchor] = useState(null);
|
||||||
const [menuUser, setMenuUser] = useState(null);
|
const [menuUser, setMenuUser] = useState(null);
|
||||||
const [resetOpen, setResetOpen] = useState(false);
|
const [resetOpen, setResetOpen] = useState(false);
|
||||||
|
const [resetTarget, setResetTarget] = useState(null);
|
||||||
const [newPassword, setNewPassword] = useState("");
|
const [newPassword, setNewPassword] = useState("");
|
||||||
const [createOpen, setCreateOpen] = useState(false);
|
const [createOpen, setCreateOpen] = useState(false);
|
||||||
const [createForm, setCreateForm] = useState({ username: "", display_name: "", password: "", role: "User" });
|
const [createForm, setCreateForm] = useState({ username: "", display_name: "", password: "", role: "User" });
|
||||||
@@ -191,6 +192,11 @@ export default function UserManagement() {
|
|||||||
|
|
||||||
const openChangeRole = (user) => {
|
const openChangeRole = (user) => {
|
||||||
if (!user) return;
|
if (!user) return;
|
||||||
|
if (me && user.username && String(me.username).toLowerCase() === String(user.username).toLowerCase()) {
|
||||||
|
setWarnMessage("You cannot change your own role.");
|
||||||
|
setWarnOpen(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const nextRole = (String(user.role || "User").toLowerCase() === "admin") ? "User" : "Admin";
|
const nextRole = (String(user.role || "User").toLowerCase() === "admin") ? "User" : "Admin";
|
||||||
setChangeRoleTarget(user);
|
setChangeRoleTarget(user);
|
||||||
setChangeRoleNext(nextRole);
|
setChangeRoleNext(nextRole);
|
||||||
@@ -224,7 +230,7 @@ export default function UserManagement() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const doResetPassword = async () => {
|
const doResetPassword = async () => {
|
||||||
const user = menuUser;
|
const user = resetTarget;
|
||||||
if (!user) return;
|
if (!user) return;
|
||||||
const pw = newPassword || "";
|
const pw = newPassword || "";
|
||||||
if (!pw.trim()) return;
|
if (!pw.trim()) return;
|
||||||
@@ -242,6 +248,7 @@ export default function UserManagement() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setResetOpen(false);
|
setResetOpen(false);
|
||||||
|
setResetTarget(null);
|
||||||
setNewPassword("");
|
setNewPassword("");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
@@ -249,7 +256,12 @@ export default function UserManagement() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const openReset = () => { setResetOpen(true); setNewPassword(""); closeMenu(); };
|
const openReset = (user) => {
|
||||||
|
if (!user) return;
|
||||||
|
setResetTarget(user);
|
||||||
|
setResetOpen(true);
|
||||||
|
setNewPassword("");
|
||||||
|
};
|
||||||
|
|
||||||
const openCreate = () => { setCreateOpen(true); setCreateForm({ username: "", display_name: "", password: "", role: "User" }); };
|
const openCreate = () => { setCreateOpen(true); setCreateForm({ username: "", display_name: "", password: "", role: "User" }); };
|
||||||
const doCreate = async () => {
|
const doCreate = async () => {
|
||||||
@@ -408,15 +420,20 @@ export default function UserManagement() {
|
|||||||
>
|
>
|
||||||
Delete User
|
Delete User
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={() => { openReset(); }}>Reset Password</MenuItem>
|
<MenuItem onClick={() => { const u = menuUser; closeMenu(); openReset(u); }}>Reset Password</MenuItem>
|
||||||
<MenuItem onClick={() => { const u = menuUser; closeMenu(); openChangeRole(u); }}>Change Role</MenuItem>
|
<MenuItem
|
||||||
|
disabled={me && menuUser && String(me.username).toLowerCase() === String(menuUser.username).toLowerCase()}
|
||||||
|
onClick={() => { const u = menuUser; closeMenu(); openChangeRole(u); }}
|
||||||
|
>
|
||||||
|
Change Role
|
||||||
|
</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
|
||||||
<Dialog open={resetOpen} onClose={() => setResetOpen(false)} PaperProps={{ sx: { bgcolor: "#121212", color: "#fff" } }}>
|
<Dialog open={resetOpen} onClose={() => setResetOpen(false)} PaperProps={{ sx: { bgcolor: "#121212", color: "#fff" } }}>
|
||||||
<DialogTitle>Reset Password</DialogTitle>
|
<DialogTitle>Reset Password</DialogTitle>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogContentText sx={{ color: "#ccc" }}>
|
<DialogContentText sx={{ color: "#ccc" }}>
|
||||||
Enter a new password for {menuUser?.username}.
|
Enter a new password for {resetTarget?.username}.
|
||||||
</DialogContentText>
|
</DialogContentText>
|
||||||
<TextField
|
<TextField
|
||||||
autoFocus
|
autoFocus
|
||||||
@@ -440,7 +457,7 @@ export default function UserManagement() {
|
|||||||
/>
|
/>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
<DialogActions>
|
<DialogActions>
|
||||||
<Button onClick={() => setResetOpen(false)} sx={{ color: "#58a6ff" }}>Cancel</Button>
|
<Button onClick={() => { setResetOpen(false); setResetTarget(null); }} sx={{ color: "#58a6ff" }}>Cancel</Button>
|
||||||
<Button onClick={doResetPassword} sx={{ color: "#58a6ff" }}>OK</Button>
|
<Button onClick={doResetPassword} sx={{ color: "#58a6ff" }}>OK</Button>
|
||||||
</DialogActions>
|
</DialogActions>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|||||||
@@ -535,7 +535,7 @@ export default function ScriptEditor() {
|
|||||||
<Box sx={{ p: 2, pb: 1 }}>
|
<Box sx={{ p: 2, pb: 1 }}>
|
||||||
<Typography variant="h6" sx={{ color: "#58a6ff", mb: 0 }}>Scripts</Typography>
|
<Typography variant="h6" sx={{ color: "#58a6ff", mb: 0 }}>Scripts</Typography>
|
||||||
<Typography variant="body2" sx={{ color: "#aaa" }}>
|
<Typography variant="body2" sx={{ color: "#aaa" }}>
|
||||||
Create, edit, and rearrange scripts in folders.
|
Create, edit, and organize various types of scripts.
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
<Box
|
<Box
|
||||||
|
|||||||
Reference in New Issue
Block a user