diff --git a/src/app/(dashboard)/team/user/page.tsx b/src/app/(dashboard)/team/user/page.tsx
index fa67969..d751ff5 100644
--- a/src/app/(dashboard)/team/user/page.tsx
+++ b/src/app/(dashboard)/team/user/page.tsx
@@ -121,7 +121,7 @@ function UserOverview({ user }: Props) {
/>
)}
-
+
@@ -138,7 +138,9 @@ function UserOverview({ user }: Props) {
}
: {
color: user?.name
- ? generateColorFromString(user?.name || "System User")
+ ? generateColorFromString(
+ user?.name || user?.id || "System User",
+ )
: "#808080",
}
}
@@ -146,10 +148,12 @@ function UserOverview({ user }: Props) {
{user.is_service_user ? (
) : (
- user?.name?.charAt(0)
+ user?.name?.charAt(0) || user?.id?.charAt(0)
)}
- {user.name}
+
+ {user.name || user.id}
+
@@ -256,10 +260,10 @@ function UserInformationCard({ user }: { user: User }) {
label={
<>
- Name
+ {user.name ? "Name" : "User ID"}
>
}
- value={user.name}
+ value={user.name || user.id}
/>
{!isServiceUser && (
@@ -270,7 +274,7 @@ function UserInformationCard({ user }: { user: User }) {
E-Mail
>
}
- value={user.email}
+ value={user.email || "-"}
/>
)}
diff --git a/src/components/ui/UserAvatar.tsx b/src/components/ui/UserAvatar.tsx
index ffa084a..5864428 100644
--- a/src/components/ui/UserAvatar.tsx
+++ b/src/components/ui/UserAvatar.tsx
@@ -31,11 +31,11 @@ export const UserAvatar = ({ size = "default" }: Props) => {
)}
style={{
color: user?.name
- ? generateColorFromString(user?.name || "System User")
+ ? generateColorFromString(user?.name || user?.id || "System User")
: "#808080",
}}
>
- {user?.name?.charAt(0)}
+ {user?.name?.charAt(0) || user?.id?.charAt(0)}
);
};
diff --git a/src/modules/activity/ActivityDescription.tsx b/src/modules/activity/ActivityDescription.tsx
index f2d9b35..4baca2d 100644
--- a/src/modules/activity/ActivityDescription.tsx
+++ b/src/modules/activity/ActivityDescription.tsx
@@ -314,8 +314,7 @@ export default function ActivityDescription({ event }: Props) {
return (
User {event.meta.username}{" "}
- {event.meta.email}
- was deleted
+ {event.meta.email} was deleted
);
@@ -454,7 +453,7 @@ function Value({
return children ? (
diff --git a/src/modules/activity/ActivityEntryRow.tsx b/src/modules/activity/ActivityEntryRow.tsx
index 7e2c1e8..74aa3a5 100644
--- a/src/modules/activity/ActivityEntryRow.tsx
+++ b/src/modules/activity/ActivityEntryRow.tsx
@@ -61,23 +61,25 @@ export const ActivityEntryRow = ({ event }: { event: ActivityEvent }) => {
}
style={{
color: user?.name
- ? generateColorFromString(user?.name || "System User")
+ ? generateColorFromString(
+ user?.name || user?.id || "System User",
+ )
: "#808080",
}}
>
- {!user?.name && }
- {user?.name?.charAt(0)}
+ {!user?.name && !user?.id && }
+ {user?.name?.charAt(0) || user?.id?.charAt(0)}
-
-
-
+
+
+
@@ -91,11 +93,15 @@ export const ActivityEntryRow = ({ event }: { event: ActivityEvent }) => {
-
diff --git a/src/modules/activity/ActivityUserSelector.tsx b/src/modules/activity/ActivityUserSelector.tsx
index 4459f09..0c5c03a 100644
--- a/src/modules/activity/ActivityUserSelector.tsx
+++ b/src/modules/activity/ActivityUserSelector.tsx
@@ -88,13 +88,18 @@ export function ActivityUserSelector({
style={{
color: selectedUser?.name
? generateColorFromString(
- selectedUser?.name || "System User",
+ selectedUser?.name ||
+ selectedUser?.id ||
+ "System User",
)
: "#808080",
}}
>
- {!selectedUser?.name &&
}
- {selectedUser?.name?.charAt(0)}
+ {selectedUser?.email === "NetBird" ? (
+
+ ) : (
+ selectedUser?.name?.charAt(0) || selectedUser?.id?.charAt(0)
+ )}
{users.map((user) => {
+ const searchValue =
+ user.email === "NetBird"
+ ? "NetBird System"
+ : user.name + " " + user.id + " " + user.email;
return (
{
toggle(user.email);
@@ -222,19 +231,26 @@ export function ActivityUserSelector({
style={{
color: user?.name
? generateColorFromString(
- user?.name || "System User",
+ user?.name || user?.id || "System User",
)
: "#808080",
}}
>
- {!user?.name && }
- {user?.name?.charAt(0)}
+ {user?.email === "NetBird" ? (
+
+ ) : (
+ user?.name?.charAt(0) || user?.id?.charAt(0)
+ )}
diff --git a/src/modules/users/ServiceUsersTable.tsx b/src/modules/users/ServiceUsersTable.tsx
index b01af53..d79faca 100644
--- a/src/modules/users/ServiceUsersTable.tsx
+++ b/src/modules/users/ServiceUsersTable.tsx
@@ -88,7 +88,7 @@ export default function ServiceUsersTable({ users, isLoading }: Props) {
<>
- {user.name}
+ {user.name || user.id}
diff --git a/src/modules/users/table-cells/UserActionCell.tsx b/src/modules/users/table-cells/UserActionCell.tsx
index 634150c..3820291 100644
--- a/src/modules/users/table-cells/UserActionCell.tsx
+++ b/src/modules/users/table-cells/UserActionCell.tsx
@@ -18,8 +18,9 @@ export default function UserActionCell({ user, serviceUser = false }: Props) {
const { mutate } = useSWRConfig();
const deleteRule = async () => {
+ const name = user.name || "User";
notify({
- title: user.name + "deleted",
+ title: name + "deleted",
description: "User was successfully deleted.",
promise: userRequest.del("", `/${user.id}`).then(() => {
mutate(`/users?service_user=${serviceUser}`);
@@ -29,8 +30,9 @@ export default function UserActionCell({ user, serviceUser = false }: Props) {
};
const openConfirm = async () => {
+ const name = user.name || "User";
const choice = await confirm({
- title: `Delete '${user.name}'?`,
+ title: `Delete '${name}'?`,
description:
"Deleting this user will remove their devices and remove dashboard access. This action cannot be undone.",
confirmText: "Delete",
diff --git a/src/modules/users/table-cells/UserBlockCell.tsx b/src/modules/users/table-cells/UserBlockCell.tsx
index c2241c2..bd8881b 100644
--- a/src/modules/users/table-cells/UserBlockCell.tsx
+++ b/src/modules/users/table-cells/UserBlockCell.tsx
@@ -20,12 +20,12 @@ export default function UserBlockCell({ user, isUserPage = false }: Props) {
const disabled = user.is_current || user.role === "owner";
const update = async (blocked: boolean) => {
+ const name = user.name || "User";
+
notify({
title: blocked ? "User blocked" : "User unblocked",
description:
- user.name +
- " was successfully " +
- (blocked ? "blocked." : "unblocked."),
+ name + " was successfully " + (blocked ? "blocked." : "unblocked."),
promise: userRequest
.put(
{
diff --git a/src/modules/users/table-cells/UserNameCell.tsx b/src/modules/users/table-cells/UserNameCell.tsx
index 3a5d1e5..e527020 100644
--- a/src/modules/users/table-cells/UserNameCell.tsx
+++ b/src/modules/users/table-cells/UserNameCell.tsx
@@ -18,12 +18,12 @@ export default function UserNameCell({ user }: Props) {
}
style={{
color: user?.name
- ? generateColorFromString(user?.name || "System User")
+ ? generateColorFromString(user?.name || user?.id || "System User")
: "#808080",
}}
>
- {!user?.name && }
- {user?.name?.charAt(0)}
+ {!user?.name && !user?.id && }
+ {user?.name?.charAt(0) || user?.id?.charAt(0)}
{(status == "invited" || status == "blocked") && (
- {user.name}
+ {user.name || user.id}
{isCurrent && (