fix(admin auth): added in role change for v1

This commit is contained in:
2025-03-30 10:10:01 -05:00
parent 11e5cf4d86
commit f9096b54f5
3 changed files with 59 additions and 1 deletions

View File

@@ -1,14 +1,27 @@
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label"; import { Label } from "@/components/ui/label";
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectLabel,
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import { DebugButton } from "@/utils/formStuff/debugButton";
import { userFormOptions } from "@/utils/formStuff/options/userformOptions"; import { userFormOptions } from "@/utils/formStuff/options/userformOptions";
import { generatePassword } from "@/utils/passwordGen"; import { generatePassword } from "@/utils/passwordGen";
import { getUsers } from "@/utils/querys/admin/users";
import { useForm } from "@tanstack/react-form"; import { useForm } from "@tanstack/react-form";
import { useQuery } from "@tanstack/react-query";
import axios from "axios"; import axios from "axios";
import { toast } from "sonner"; import { toast } from "sonner";
export default function UserCard(data: any) { export default function UserCard(data: any) {
const token = localStorage.getItem("auth_token"); const token = localStorage.getItem("auth_token");
const { refetch } = useQuery(getUsers());
const form = useForm({ const form = useForm({
...userFormOptions(data.user), ...userFormOptions(data.user),
onSubmit: async ({ value }) => { onSubmit: async ({ value }) => {
@@ -29,6 +42,7 @@ export default function UserCard(data: any) {
if (res.data.success) { if (res.data.success) {
toast.success(res.data.message); toast.success(res.data.message);
refetch();
form.reset(); form.reset();
} else { } else {
res.data.message; res.data.message;
@@ -104,6 +118,45 @@ export default function UserCard(data: any) {
); );
}} }}
/> />
<form.Field
name="role"
//listeners={{onChange: ({value})=>{}}}
children={(field) => {
return (
<div className="m-2 min-w-48 max-w-96 p-2">
<Label htmlFor={field.name}>Select role</Label>
<Select
value={field.state.value}
onValueChange={field.handleChange}
>
<SelectTrigger className="w-[180px]">
<SelectValue
id={field.name}
placeholder="Select Role"
/>
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Roles</SelectLabel>
<SelectItem value="viewer">
Viewer
</SelectItem>
<SelectItem value="operator">
Operator
</SelectItem>
<SelectItem value="manager">
Manager
</SelectItem>
<SelectItem value="admin">
Admin
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</div>
);
}}
/>
<form.Field <form.Field
name="password" name="password"
validators={{ validators={{
@@ -142,12 +195,13 @@ export default function UserCard(data: any) {
}} }}
children={(field) => { children={(field) => {
return ( return (
<div className="m-2 min-w-48 max-w-96 p-2"> <div className="m-2 p-2">
<Label htmlFor="password"> <Label htmlFor="password">
Change Password Change Password
</Label> </Label>
<div className="mt-2 flex flex-row"> <div className="mt-2 flex flex-row">
<Input <Input
className="min-w-48 max-w-96"
name={field.name} name={field.name}
value={field.state.value} value={field.state.value}
onBlur={field.handleBlur} onBlur={field.handleBlur}
@@ -166,6 +220,7 @@ export default function UserCard(data: any) {
> >
Random password Random password
</Button> </Button>
<DebugButton data={form.state.values} />
</div> </div>
{field.state.meta.errors.length ? ( {field.state.meta.errors.length ? (
<em>{field.state.meta.errors.join(",")}</em> <em>{field.state.meta.errors.join(",")}</em>

View File

@@ -6,6 +6,7 @@ export const userFormOptions = (user: any) => {
username: user.username, username: user.username,
password: "", password: "",
email: user.email, email: user.email,
role: user.role,
//hobbies: [], //hobbies: [],
}, },
// } as Person, // } as Person,

View File

@@ -13,6 +13,7 @@ export const updateUserADM = async (userData: User) => {
* password, username, email. * password, username, email.
*/ */
console.log(userData);
createLog( createLog(
"info", "info",
"apiAuthedRoute", "apiAuthedRoute",
@@ -46,6 +47,7 @@ export const updateUserADM = async (userData: User) => {
username: userData.username ? userData.username : upd_user?.username, username: userData.username ? userData.username : upd_user?.username,
password: password, password: password,
email: userData.email ? userData.email : upd_user.email, email: userData.email ? userData.email : upd_user.email,
role: userData.role ? userData.role : upd_user.role,
}; };
// term ? ilike(posts.title, term) : undefined // term ? ilike(posts.title, term) : undefined