gitscope
← marzneshin / Diff · 9568dfd → 9568dfd
Changes 9568dfd..9568dfd
Patch commit
diff --git a/dashboard/src/features/admins/components/dialogs/mutation/fields/password.tsx b/dashboard/src/features/admins/components/dialogs/mutation/fields/password.tsx
index 7523995..a1615c5 100644
--- a/dashboard/src/features/admins/components/dialogs/mutation/fields/password.tsx
+++ b/dashboard/src/features/admins/components/dialogs/mutation/fields/password.tsx
@@ -26,7 +26,7 @@ export const PasswordField: FC<{ change: boolean, handleChange: (s: boolean) =>
<FormLabel>{t("password")}</FormLabel>
<FormControl>
{change ?
- (<Input {...field} />)
+ (<Input type="password" {...field} />)
: (
<Button
className="border w-full"
diff --git a/dashboard/src/features/admins/components/dialogs/mutation/index.tsx b/dashboard/src/features/admins/components/dialogs/mutation/index.tsx
index ff7b88d..be4d56e 100644
--- a/dashboard/src/features/admins/components/dialogs/mutation/index.tsx
+++ b/dashboard/src/features/admins/components/dialogs/mutation/index.tsx
@@ -13,7 +13,8 @@ import { useTranslation } from "react-i18next";
import {
useAdminsCreationMutation,
useAdminsUpdateMutation,
- AdminMutationSchema,
+ AdminEditSchema,
+ AdminCreateSchema,
AdminType,
} from "@marzneshin/features/admins";
import { ServicesField } from "@marzneshin/features/services";
@@ -37,9 +38,9 @@ export const AdminsMutationDialog: FC<MutationDialogProps<AdminType>> = ({
const defaultValue = useMemo(() => ({
service_ids: [],
username: "",
- password: null,
is_sudo: false,
enabled: true,
+ modify_users_access: true,
}), [])
const { onOpenChange, open, form, handleSubmit } = useMutationDialog({
@@ -47,7 +48,7 @@ export const AdminsMutationDialog: FC<MutationDialogProps<AdminType>> = ({
onClose,
createMutation: useAdminsCreationMutation(),
updateMutation: useAdminsUpdateMutation(),
- schema: AdminMutationSchema,
+ schema: entity ? AdminEditSchema : AdminCreateSchema,
defaultValue,
});
diff --git a/dashboard/src/features/admins/types/schema.ts b/dashboard/src/features/admins/types/schema.ts
index 2e305eb..db40d00 100644
--- a/dashboard/src/features/admins/types/schema.ts
+++ b/dashboard/src/features/admins/types/schema.ts
@@ -1,6 +1,6 @@
import { z } from 'zod';
-export const AdminMutationSchema = z.object({
+export const AdminEditSchema = z.object({
username: z.string().min(1, { message: 'Username is required' }),
is_sudo: z.boolean(),
enabled: z.boolean().optional(),
@@ -14,4 +14,19 @@ export const AdminMutationSchema = z.object({
.optional()
});
-export type AdminMutationType = z.infer<typeof AdminMutationSchema>;
+
+export const AdminCreateSchema = z.object({
+ username: z.string().min(1, { message: 'Username is required' }),
+ is_sudo: z.boolean(),
+ enabled: z.boolean().optional(),
+ all_services_access: z.boolean().optional(),
+ modify_users_access: z.boolean().optional(),
+ subscription_url_prefix: z.string().optional(),
+ password: z.string().min(1, { message: "Password is required" }),
+ service_ids: z
+ .array(z.number().or(z.string()))
+ .transform((v) => v.map(Number))
+ .optional()
+});
+
+export type AdminMutationType = z.infer<typeof AdminEditSchema>;