diff --git a/apps/dashboard/src/app/(internal)/brukere/[id]/edit-form.tsx b/apps/dashboard/src/app/(internal)/brukere/[id]/edit-form.tsx index 9803b1cb24..72b6dbfdaf 100644 --- a/apps/dashboard/src/app/(internal)/brukere/[id]/edit-form.tsx +++ b/apps/dashboard/src/app/(internal)/brukere/[id]/edit-form.tsx @@ -5,6 +5,7 @@ import { createSelectInput } from "@/components/forms/SelectInput" import { createTextInput } from "@/components/forms/TextInput" import { USER_IMAGE_MAX_SIZE_KIB, type UserWrite, UserWriteSchema } from "@dotkomonline/types" import { createTextareaInput } from "@/components/forms/TextareaInput" +import { useIsAdminQuery } from "../queries" interface UseUserProfileWriteFormProps { onSubmit(data: UserWrite): void @@ -13,6 +14,7 @@ interface UseUserProfileWriteFormProps { } export const useUserProfileEditForm = ({ defaultValues, onSubmit, label = "Bruker" }: UseUserProfileWriteFormProps) => { + const { isAdmin } = useIsAdminQuery() const fileUpload = useUserFileUploadMutation() return useFormBuilder({ @@ -28,10 +30,12 @@ export const useUserProfileEditForm = ({ defaultValues, onSubmit, label = "Bruke name: createTextInput({ label: "Navn", placeholder: "Ola Nordmann", + disabled: isAdmin !== true, }), email: createTextInput({ label: "E-post", placeholder: "ola.nordmann@gmail.com", + disabled: isAdmin !== true, }), phone: createTextInput({ label: "Telefon", diff --git a/apps/rpc/src/modules/user/user-router.ts b/apps/rpc/src/modules/user/user-router.ts index a2b117482e..26593a33d5 100644 --- a/apps/rpc/src/modules/user/user-router.ts +++ b/apps/rpc/src/modules/user/user-router.ts @@ -197,14 +197,15 @@ const updateUserProcedure = procedure .use(withDatabaseTransaction()) .use(withAuditLogEntry()) .mutation(async ({ input, ctx }) => { - let { name, ...data } = input.input + let { name, email, ...data } = input.input - // Only admins can change the name field + // Only admins can change the name and email fields if (!ctx.authorizationService.isAdministrator(ctx.principal.affiliations)) { name = undefined + email = undefined } - return ctx.userService.update(ctx.handle, input.id, { name, ...data }) + return ctx.userService.update(ctx.handle, input.id, { name, email, ...data }) }) export type IsStaffInput = inferProcedureInput diff --git a/apps/web/src/app/innstillinger/profil/form.tsx b/apps/web/src/app/innstillinger/profil/form.tsx index 46ce8a1b62..63b37bf3ce 100644 --- a/apps/web/src/app/innstillinger/profil/form.tsx +++ b/apps/web/src/app/innstillinger/profil/form.tsx @@ -172,12 +172,12 @@ export function ProfileForm({ user, onSubmit, isSaving, saveSuccess, saveError,
- - {errors.email && ( - - {errors.email?.message ?? "En feil oppstod"} - - )} +