Skip to content

Commit ff82248

Browse files
authored
Merge pull request #3109 from Dokploy/3097-actions-section-not-working-on-users-page
refactor: enhance user management actions in dashboard
2 parents e70c476 + 7833246 commit ff82248

File tree

1 file changed

+92
-98
lines changed

1 file changed

+92
-98
lines changed

apps/dokploy/components/dashboard/settings/users/show-users.tsx

Lines changed: 92 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -111,35 +111,75 @@ export const ShowUsers = () => {
111111
</TableCell>
112112

113113
<TableCell className="text-right flex justify-end">
114-
<DropdownMenu>
115-
<DropdownMenuTrigger asChild>
116-
<Button
117-
variant="ghost"
118-
className="h-8 w-8 p-0"
119-
>
120-
<span className="sr-only">Open menu</span>
121-
<MoreHorizontal className="h-4 w-4" />
122-
</Button>
123-
</DropdownMenuTrigger>
124-
<DropdownMenuContent align="end">
125-
<DropdownMenuLabel>
126-
Actions
127-
</DropdownMenuLabel>
114+
{member.role !== "owner" && (
115+
<DropdownMenu>
116+
<DropdownMenuTrigger asChild>
117+
<Button
118+
variant="ghost"
119+
className="h-8 w-8 p-0"
120+
>
121+
<span className="sr-only">
122+
Open menu
123+
</span>
124+
<MoreHorizontal className="h-4 w-4" />
125+
</Button>
126+
</DropdownMenuTrigger>
127+
<DropdownMenuContent align="end">
128+
<DropdownMenuLabel>
129+
Actions
130+
</DropdownMenuLabel>
128131

129-
{member.role !== "owner" && (
130132
<AddUserPermissions
131133
userId={member.user.id}
132134
/>
133-
)}
134135

135-
{member.role !== "owner" && (
136-
<>
137-
{!isCloud && (
138-
<DialogAction
139-
title="Delete User"
140-
description="Are you sure you want to delete this user?"
141-
type="destructive"
142-
onClick={async () => {
136+
{!isCloud && (
137+
<DialogAction
138+
title="Delete User"
139+
description="Are you sure you want to delete this user?"
140+
type="destructive"
141+
onClick={async () => {
142+
await mutateAsync({
143+
userId: member.user.id,
144+
})
145+
.then(() => {
146+
toast.success(
147+
"User deleted successfully",
148+
);
149+
refetch();
150+
})
151+
.catch(() => {
152+
toast.error(
153+
"Error deleting destination",
154+
);
155+
});
156+
}}
157+
>
158+
<DropdownMenuItem
159+
className="w-full cursor-pointer text-red-500 hover:!text-red-600"
160+
onSelect={(e) => e.preventDefault()}
161+
>
162+
Delete User
163+
</DropdownMenuItem>
164+
</DialogAction>
165+
)}
166+
167+
<DialogAction
168+
title="Unlink User"
169+
description="Are you sure you want to unlink this user?"
170+
type="destructive"
171+
onClick={async () => {
172+
if (!isCloud) {
173+
const orgCount =
174+
await utils.user.checkUserOrganizations.fetch(
175+
{
176+
userId: member.user.id,
177+
},
178+
);
179+
180+
console.log(orgCount);
181+
182+
if (orgCount === 1) {
143183
await mutateAsync({
144184
userId: member.user.id,
145185
})
@@ -151,86 +191,40 @@ export const ShowUsers = () => {
151191
})
152192
.catch(() => {
153193
toast.error(
154-
"Error deleting destination",
194+
"Error deleting user",
155195
);
156196
});
157-
}}
158-
>
159-
<DropdownMenuItem
160-
className="w-full cursor-pointer text-red-500 hover:!text-red-600"
161-
onSelect={(e) =>
162-
e.preventDefault()
163-
}
164-
>
165-
Delete User
166-
</DropdownMenuItem>
167-
</DialogAction>
168-
)}
169-
170-
<DialogAction
171-
title="Unlink User"
172-
description="Are you sure you want to unlink this user?"
173-
type="destructive"
174-
onClick={async () => {
175-
if (!isCloud) {
176-
const orgCount =
177-
await utils.user.checkUserOrganizations.fetch(
178-
{
179-
userId: member.user.id,
180-
},
181-
);
182-
183-
console.log(orgCount);
184-
185-
if (orgCount === 1) {
186-
await mutateAsync({
187-
userId: member.user.id,
188-
})
189-
.then(() => {
190-
toast.success(
191-
"User deleted successfully",
192-
);
193-
refetch();
194-
})
195-
.catch(() => {
196-
toast.error(
197-
"Error deleting user",
198-
);
199-
});
200-
return;
201-
}
197+
return;
202198
}
199+
}
203200

204-
const { error } =
205-
await authClient.organization.removeMember(
206-
{
207-
memberIdOrEmail: member.id,
208-
},
209-
);
201+
const { error } =
202+
await authClient.organization.removeMember(
203+
{
204+
memberIdOrEmail: member.id,
205+
},
206+
);
210207

211-
if (!error) {
212-
toast.success(
213-
"User unlinked successfully",
214-
);
215-
refetch();
216-
} else {
217-
toast.error(
218-
"Error unlinking user",
219-
);
220-
}
221-
}}
208+
if (!error) {
209+
toast.success(
210+
"User unlinked successfully",
211+
);
212+
refetch();
213+
} else {
214+
toast.error("Error unlinking user");
215+
}
216+
}}
217+
>
218+
<DropdownMenuItem
219+
className="w-full cursor-pointer text-red-500 hover:!text-red-600"
220+
onSelect={(e) => e.preventDefault()}
222221
>
223-
<DropdownMenuItem
224-
className="w-full cursor-pointer text-red-500 hover:!text-red-600"
225-
onSelect={(e) => e.preventDefault()}
226-
>
227-
Unlink User
228-
</DropdownMenuItem>
229-
</DialogAction>
230-
</>
231-
)}
232-
</DropdownMenuContent>
233-
</DropdownMenu>
222+
Unlink User
223+
</DropdownMenuItem>
224+
</DialogAction>
225+
</DropdownMenuContent>
226+
</DropdownMenu>
227+
)}
234228
</TableCell>
235229
</TableRow>
236230
);

0 commit comments

Comments
 (0)