Skip to content

Commit d27a744

Browse files
Merge pull request #3496 from kris6673/unlicensed-message
Add User ID display and fallback message for empty license translations
2 parents ebc19ab + 6005b87 commit d27a744

File tree

8 files changed

+61
-34
lines changed

8 files changed

+61
-34
lines changed

src/components/CippCards/CippUserInfoCard.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ export const CippUserInfoCard = (props) => {
9191
)
9292
}
9393
/>
94+
<PropertyListItem
95+
divider
96+
label="User ID"
97+
value={isFetching ? <Skeleton variant="text" width={120} /> : user?.id || "N/A"}
98+
/>
9499
<PropertyListItem
95100
divider
96101
label="Email Address"

src/pages/identity/administration/users/user/bec.jsx

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useRouter } from "next/router";
55
import { ApiGetCall } from "/src/api/ApiCall";
66
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
77
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
8-
import { CheckCircle, Download, Mail } from "@mui/icons-material";
8+
import { CheckCircle, Download, Mail, Fingerprint } from "@mui/icons-material";
99
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
1010
import tabOptions from "./tabOptions";
1111
import ReactTimeAgo from "react-time-ago";
@@ -142,34 +142,32 @@ const Page = () => {
142142
return "No mailbox permission changes found.";
143143
};
144144

145+
const subtitle = userRequest.isSuccess
146+
? [
147+
{
148+
icon: <Mail />,
149+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.userPrincipalName} />,
150+
},
151+
{
152+
icon: <Fingerprint />,
153+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.id} />,
154+
},
155+
{
156+
icon: <CalendarIcon />,
157+
text: (
158+
<>
159+
Created: <ReactTimeAgo date={new Date(userRequest.data?.[0]?.createdDateTime)} />
160+
</>
161+
),
162+
},
163+
]
164+
: [];
165+
145166
return (
146167
<HeaderedTabbedLayout
147168
tabOptions={tabOptions}
148169
title={userRequest.isSuccess ? userRequest.data?.[0]?.displayName : ""}
149-
subtitle={
150-
userRequest.isSuccess
151-
? [
152-
{
153-
icon: <Mail />,
154-
text: (
155-
<CippCopyToClipBoard
156-
type="chip"
157-
text={userRequest.data?.[0]?.userPrincipalName}
158-
/>
159-
),
160-
},
161-
{
162-
icon: <CalendarIcon />,
163-
text: (
164-
<>
165-
Created:{" "}
166-
<ReactTimeAgo date={new Date(userRequest.data?.[0]?.createdDateTime)} />
167-
</>
168-
),
169-
},
170-
]
171-
: []
172-
}
170+
subtitle={subtitle}
173171
isFetching={userRequest.isFetching}
174172
>
175173
{/* Loading State: Show only Remediation Card and Check 1 with Loading Skeleton */}

src/pages/identity/administration/users/user/conditional-access.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useSettings } from "/src/hooks/use-settings";
44
import { useRouter } from "next/router";
55
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
66
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
7-
import { Mail, Forward } from "@mui/icons-material";
7+
import { Mail, Forward, Fingerprint } from "@mui/icons-material";
88
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
99
import tabOptions from "./tabOptions";
1010
import ReactTimeAgo from "react-time-ago";
@@ -41,6 +41,10 @@ const Page = () => {
4141
icon: <Mail />,
4242
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.userPrincipalName} />,
4343
},
44+
{
45+
icon: <Fingerprint />,
46+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.id} />,
47+
},
4448
{
4549
icon: <CalendarIcon />,
4650
text: (

src/pages/identity/administration/users/user/devices.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useRouter } from "next/router";
44
import { ApiGetCall } from "/src/api/ApiCall";
55
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
66
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
7-
import { Check, Mail } from "@mui/icons-material";
7+
import { Check, Mail, Fingerprint } from "@mui/icons-material";
88
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
99
import tabOptions from "./tabOptions";
1010
import ReactTimeAgo from "react-time-ago";
@@ -50,6 +50,10 @@ const Page = () => {
5050
icon: <Mail />,
5151
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.userPrincipalName} />,
5252
},
53+
{
54+
icon: <Fingerprint />,
55+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.id} />,
56+
},
5357
{
5458
icon: <CalendarIcon />,
5559
text: (

src/pages/identity/administration/users/user/edit.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { useEffect } from "react";
99
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
1010
import { getCippLicenseTranslation } from "/src/utils/get-cipp-license-translation";
1111
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
12-
import { Mail } from "@mui/icons-material";
12+
import { Mail, Fingerprint } from "@mui/icons-material";
1313
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
1414
import tabOptions from "./tabOptions";
1515
import { CippCopyToClipBoard } from "../../../../../components/CippComponents/CippCopyToClipboard";
@@ -55,11 +55,15 @@ const Page = () => {
5555
icon: <Mail />,
5656
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.userPrincipalName} />,
5757
},
58+
{
59+
icon: <Fingerprint />,
60+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.id} />,
61+
},
5862
{
5963
icon: <CalendarIcon />,
6064
text: (
6165
<>
62-
Created <CippTimeAgo data={userRequest.data?.[0]?.createdDateTime} />
66+
Created: <CippTimeAgo data={userRequest.data?.[0]?.createdDateTime} />
6367
</>
6468
),
6569
},

src/pages/identity/administration/users/user/exchange.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useRouter } from "next/router";
44
import { ApiGetCall } from "/src/api/ApiCall";
55
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
66
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
7-
import { Check, Error, Mail } from "@mui/icons-material";
7+
import { Check, Error, Mail, Fingerprint } from "@mui/icons-material";
88
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
99
import tabOptions from "./tabOptions";
1010
import { CippTimeAgo } from "../../../../../components/CippComponents/CippTimeAgo";
@@ -101,11 +101,15 @@ const Page = () => {
101101
<CippCopyToClipBoard type="chip" text={graphUserRequest.data?.[0]?.userPrincipalName} />
102102
),
103103
},
104+
{
105+
icon: <Fingerprint />,
106+
text: <CippCopyToClipBoard type="chip" text={graphUserRequest.data?.[0]?.id} />,
107+
},
104108
{
105109
icon: <CalendarIcon />,
106110
text: (
107111
<>
108-
Created <CippTimeAgo data={graphUserRequest.data?.[0]?.createdDateTime} />
112+
Created: <CippTimeAgo data={graphUserRequest.data?.[0]?.createdDateTime} />
109113
</>
110114
),
111115
},

src/pages/identity/administration/users/user/index.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useRouter } from "next/router";
44
import { ApiGetCall } from "/src/api/ApiCall";
55
import CippFormSkeleton from "/src/components/CippFormPages/CippFormSkeleton";
66
import CalendarIcon from "@heroicons/react/24/outline/CalendarIcon";
7-
import { AdminPanelSettings, Check, Group, Mail } from "@mui/icons-material";
7+
import { AdminPanelSettings, Check, Group, Mail, Fingerprint } from "@mui/icons-material";
88
import { HeaderedTabbedLayout } from "../../../../../layouts/HeaderedTabbedLayout";
99
import tabOptions from "./tabOptions";
1010
import { CippCopyToClipBoard } from "../../../../../components/CippComponents/CippCopyToClipboard";
@@ -122,11 +122,15 @@ const Page = () => {
122122
icon: <Mail />,
123123
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.userPrincipalName} />,
124124
},
125+
{
126+
icon: <Fingerprint />,
127+
text: <CippCopyToClipBoard type="chip" text={userRequest.data?.[0]?.id} />,
128+
},
125129
{
126130
icon: <CalendarIcon />,
127131
text: (
128132
<>
129-
Created <CippTimeAgo data={userRequest.data?.[0]?.createdDateTime} />
133+
Created: <CippTimeAgo data={userRequest.data?.[0]?.createdDateTime} />
130134
</>
131135
),
132136
},

src/utils/get-cipp-license-translation.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,9 @@ export const getCippLicenseTranslation = (licenseArray) => {
2121
}
2222
});
2323

24-
return licenses.join(", ");
24+
const result = licenses.join(", ");
25+
if (!result) {
26+
return "No Licenses Assigned";
27+
}
28+
return result;
2529
};

0 commit comments

Comments
 (0)