Skip to content

Commit a3d1724

Browse files
committed
User table polish and audit log updates
1 parent fc8a5e8 commit a3d1724

File tree

14 files changed

+163
-38
lines changed

14 files changed

+163
-38
lines changed

backend/internal/user.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ const internalUser = {
131131
action: "updated",
132132
object_type: "user",
133133
object_id: user.id,
134-
meta: data,
134+
meta: { ...data, id: user.id, name: user.name },
135135
})
136136
.then(() => {
137137
return user;

frontend/src/api/backend/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export * from "./toggleDeadHost";
4747
export * from "./toggleProxyHost";
4848
export * from "./toggleRedirectionHost";
4949
export * from "./toggleStream";
50+
export * from "./toggleUser";
5051
export * from "./updateAccessList";
5152
export * from "./updateAuth";
5253
export * from "./updateDeadHost";
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { User } from "./models";
2+
import { updateUser } from "./updateUser";
3+
4+
export async function toggleUser(id: number, enabled: boolean): Promise<boolean> {
5+
await updateUser({
6+
id,
7+
isDisabled: !enabled,
8+
} as User);
9+
return true;
10+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { intl } from "src/locale";
2+
3+
interface Props {
4+
enabled: boolean;
5+
}
6+
export function EnabledFormatter({ enabled }: Props) {
7+
if (enabled) {
8+
return <span className="badge bg-lime-lt">{intl.formatMessage({ id: "enabled" })}</span>;
9+
}
10+
return <span className="badge bg-red-lt">{intl.formatMessage({ id: "disabled" })}</span>;
11+
}

frontend/src/components/Table/Formatter/EventFormatter.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IconUser } from "@tabler/icons-react";
1+
import { IconBoltOff, IconUser } from "@tabler/icons-react";
22
import type { AuditLog } from "src/api/backend";
33
import { DateTimeFormat, intl } from "src/locale";
44

@@ -35,6 +35,9 @@ const getIcon = (row: AuditLog) => {
3535
case "user":
3636
ico = <IconUser size={16} className={c} />;
3737
break;
38+
case "dead-host":
39+
ico = <IconBoltOff size={16} className={c} />;
40+
break;
3841
}
3942

4043
return ico;

frontend/src/components/Table/Formatter/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export * from "./CertificateFormatter";
22
export * from "./DomainsFormatter";
33
export * from "./EmailFormatter";
4+
export * from "./EnabledFormatter";
45
export * from "./EventFormatter";
56
export * from "./GravatarFormatter";
67
export * from "./RolesFormatter";

frontend/src/hooks/useDeadHost.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const useSetDeadHost = () => {
5050
onSuccess: async ({ id }: DeadHost) => {
5151
queryClient.invalidateQueries({ queryKey: ["dead-host", id] });
5252
queryClient.invalidateQueries({ queryKey: ["dead-hosts"] });
53+
queryClient.invalidateQueries({ queryKey: ["audit-logs"] });
5354
},
5455
});
5556
};

frontend/src/hooks/useUser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ const useSetUser = () => {
4646
onSuccess: async ({ id }: User) => {
4747
queryClient.invalidateQueries({ queryKey: ["user", id] });
4848
queryClient.invalidateQueries({ queryKey: ["users"] });
49+
queryClient.invalidateQueries({ queryKey: ["audit-logs"] });
4950
},
5051
});
5152
};

frontend/src/locale/lang/en.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@
6262
"domains.http2-support": "HTTP/2 Support",
6363
"domains.use-dns": "Use DNS Challenge",
6464
"email-address": "Email address",
65+
"empty-search": "No results found",
6566
"empty-subtitle": "Why don't you create one?",
67+
"enabled": "Enabled",
6668
"error.invalid-auth": "Invalid email or password",
6769
"error.invalid-domain": "Invalid domain: {domain}",
6870
"error.invalid-email": "Invalid email address",
@@ -71,6 +73,7 @@
7173
"error.required": "This is required",
7274
"event.created-dead-host": "Created 404 Host",
7375
"event.created-user": "Created User",
76+
"event.deleted-dead-host": "Deleted 404 Host",
7477
"event.deleted-user": "Deleted User",
7578
"event.disabled-dead-host": "Disabled 404 Host",
7679
"event.enabled-dead-host": "Enabled 404 Host",
@@ -94,6 +97,8 @@
9497
"notification.host-enabled": "Host has been enabled",
9598
"notification.success": "Success",
9699
"notification.user-deleted": "User has been deleted",
100+
"notification.user-disabled": "User has been disabled",
101+
"notification.user-enabled": "User has been enabled",
97102
"notification.user-saved": "User has been saved",
98103
"offline": "Offline",
99104
"online": "Online",
@@ -151,5 +156,6 @@
151156
"user.switch-light": "Switch to Light mode",
152157
"users.actions-title": "User #{id}",
153158
"users.add": "Add User",
159+
"users.empty": "There are no Users",
154160
"users.title": "Users"
155161
}

frontend/src/locale/src/en.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,12 @@
188188
"email-address": {
189189
"defaultMessage": "Email address"
190190
},
191+
"empty-search": {
192+
"defaultMessage": "No results found"
193+
},
194+
"enabled": {
195+
"defaultMessage": "Enabled"
196+
},
191197
"error.passwords-must-match": {
192198
"defaultMessage": "Passwords must match"
193199
},
@@ -212,6 +218,9 @@
212218
"event.created-user": {
213219
"defaultMessage": "Created User"
214220
},
221+
"event.deleted-dead-host": {
222+
"defaultMessage": "Deleted 404 Host"
223+
},
215224
"event.deleted-user": {
216225
"defaultMessage": "Deleted User"
217226
},
@@ -281,6 +290,12 @@
281290
"notification.host-enabled": {
282291
"defaultMessage": "Host has been enabled"
283292
},
293+
"notification.user-disabled": {
294+
"defaultMessage": "User has been disabled"
295+
},
296+
"notification.user-enabled": {
297+
"defaultMessage": "User has been enabled"
298+
},
284299
"notification.user-saved": {
285300
"defaultMessage": "User has been saved"
286301
},
@@ -455,6 +470,9 @@
455470
"users.add": {
456471
"defaultMessage": "Add User"
457472
},
473+
"users.empty": {
474+
"defaultMessage": "There are no Users"
475+
},
458476
"users.title": {
459477
"defaultMessage": "Users"
460478
}

0 commit comments

Comments
 (0)