mirror of
https://github.com/dagu-org/dagu.git
synced 2025-12-27 22:26:13 +00:00
fix(ui): user management visibility and reset password API (#1484)
* **Bug Fixes** * Updated password reset API endpoint and request method for compatibility. * **New Features** * User Management menu item now displays based on admin privileges and authentication configuration. * Reset Password action restricted to admin users only.
This commit is contained in:
parent
9841e6ed70
commit
be3e71b79a
@ -219,7 +219,7 @@ export const mainListItems = React.forwardRef<
|
||||
isOpen={isOpen}
|
||||
onClick={onNavItemClick}
|
||||
/>
|
||||
{isAdmin && (
|
||||
{isAdmin && config.authMode === 'builtin' && (
|
||||
<NavItem
|
||||
to="/users"
|
||||
text="User Management"
|
||||
|
||||
@ -72,8 +72,8 @@ export function ResetPasswordModal({ open, user, onClose }: ResetPasswordModalPr
|
||||
|
||||
try {
|
||||
const token = localStorage.getItem('dagu_auth_token');
|
||||
const response = await fetch(`${config.apiURL}/users/${user.id}/password`, {
|
||||
method: 'PUT',
|
||||
const response = await fetch(`${config.apiURL}/users/${user.id}/reset-password`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useState, useEffect, useCallback, useContext } from 'react';
|
||||
import { useConfig } from '@/contexts/ConfigContext';
|
||||
import { useAuth, TOKEN_KEY } from '@/contexts/AuthContext';
|
||||
import { useAuth, useIsAdmin, TOKEN_KEY } from '@/contexts/AuthContext';
|
||||
import { AppBarContext } from '@/contexts/AppBarContext';
|
||||
import { components } from '@/api/v2/schema';
|
||||
import { Button } from '@/components/ui/button';
|
||||
@ -36,6 +36,7 @@ type User = components['schemas']['User'];
|
||||
export default function UsersPage() {
|
||||
const config = useConfig();
|
||||
const { user: currentUser } = useAuth();
|
||||
const isAdmin = useIsAdmin();
|
||||
const appBarContext = useContext(AppBarContext);
|
||||
const [users, setUsers] = useState<User[]>([]);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
@ -202,10 +203,12 @@ export default function UsersPage() {
|
||||
<Pencil className="h-4 w-4 mr-2" />
|
||||
Edit
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem onClick={() => setResetPasswordUser(user)}>
|
||||
<Key className="h-4 w-4 mr-2" />
|
||||
Reset Password
|
||||
</DropdownMenuItem>
|
||||
{isAdmin && (
|
||||
<DropdownMenuItem onClick={() => setResetPasswordUser(user)}>
|
||||
<Key className="h-4 w-4 mr-2" />
|
||||
Reset Password
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
<DropdownMenuItem
|
||||
onClick={() => setDeletingUser(user)}
|
||||
className="text-destructive"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user