diff --git a/src/web/src/features/users/pages/UserEditPage.tsx b/src/web/src/features/users/pages/UserEditPage.tsx
index bc4b7c6..8ac581d 100644
--- a/src/web/src/features/users/pages/UserEditPage.tsx
+++ b/src/web/src/features/users/pages/UserEditPage.tsx
@@ -18,6 +18,8 @@ import {
} from '@/components/ui/form'
import { useUser } from '../hooks/useUser'
import { useUpdateUser } from '../hooks/useUpdateUser'
+import { ResetPasswordModal } from '../components/ResetPasswordModal'
+import { useAuthStore } from '@/stores/authStore'
const editSchema = z.object({
nombre: z.string().min(1, 'El nombre es requerido'),
@@ -45,6 +47,7 @@ export function UserEditPage() {
const { id } = useParams<{ id: string }>()
const userId = Number(id)
const navigate = useNavigate()
+ const loggedUserId = useAuthStore((s) => s.user?.id)
const { data: user, isLoading } = useUser(userId)
const { mutate, isPending, error } = useUpdateUser(userId)
@@ -112,9 +115,12 @@ export function UserEditPage() {
Editar Usuario
-
+
+ {loggedUserId !== userId && }
+
+
{/* Username — display only, not editable */}
diff --git a/src/web/src/tests/features/users/UserEditPage.test.tsx b/src/web/src/tests/features/users/UserEditPage.test.tsx
index b13c183..5b8882c 100644
--- a/src/web/src/tests/features/users/UserEditPage.test.tsx
+++ b/src/web/src/tests/features/users/UserEditPage.test.tsx
@@ -138,4 +138,28 @@ describe('UserEditPage', () => {
// Should NOT navigate
expect(mockNavigate).not.toHaveBeenCalled()
})
+
+ it('shows "Resetear contraseña" button when editing another user', async () => {
+ server.use(
+ http.get(`${API_URL}/api/v1/users/5`, () => HttpResponse.json(mockUserDetail)),
+ )
+
+ renderEditPage(5)
+
+ await waitFor(() => expect(screen.getByDisplayValue('Juan')).toBeInTheDocument())
+ expect(screen.getByRole('button', { name: /resetear contraseña/i })).toBeInTheDocument()
+ })
+
+ it('hides "Resetear contraseña" button when editing own profile', async () => {
+ server.use(
+ http.get(`${API_URL}/api/v1/users/1`, () =>
+ HttpResponse.json({ ...mockUserDetail, id: 1, username: 'admin' }),
+ ),
+ )
+
+ renderEditPage(1)
+
+ await waitFor(() => expect(screen.getByDisplayValue('Juan')).toBeInTheDocument())
+ expect(screen.queryByRole('button', { name: /resetear contraseña/i })).not.toBeInTheDocument()
+ })
})