Skip to content

Commit 0604ba7

Browse files
authored
Merge pull request #2507 from JohnDuprey/dev
JIT Admin tweaks
2 parents 96b32e9 + 5ede288 commit 0604ba7

File tree

7 files changed

+72
-30
lines changed

7 files changed

+72
-30
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cipp",
3-
"version": "5.7.0",
3+
"version": "5.7.1",
44
"description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.",
55
"homepage": "https://cipp.app/",
66
"bugs": {

public/version_latest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.7.0
1+
5.7.1

src/_nav.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ const _nav = [
7878
{
7979
component: CNavItem,
8080
name: 'JIT Admin',
81-
to: '/identity/administration/users/jit-admin',
81+
to: '/identity/administration/jit-admin',
8282
},
8383
{
8484
component: CNavItem,

src/importsMap.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import React from 'react'
1212
"/identity/administration/users/edit": React.lazy(() => import('./views/identity/administration/EditUser')),
1313
"/identity/administration/users/view": React.lazy(() => import('./views/identity/administration/ViewUser')),
1414
"/identity/administration/users/InviteGuest": React.lazy(() => import('./views/identity/administration/InviteGuest')),
15-
"/identity/administration/users/jit-admin": React.lazy(() => import('./views/identity/administration/DeployJITAdmin')),
15+
"/identity/administration/jit-admin": React.lazy(() => import('./views/identity/administration/DeployJITAdmin')),
1616
"/identity/administration/ViewBec": React.lazy(() => import('./views/identity/administration/ViewBEC')),
1717
"/identity/administration/users": React.lazy(() => import('./views/identity/administration/Users')),
1818
"/identity/administration/devices": React.lazy(() => import('./views/identity/administration/Devices')),

src/routes.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
"allowedRoles": ["admin", "editor", "readonly"]
7878
},
7979
{
80-
"path": "/identity/administration/users/jit-admin",
80+
"path": "/identity/administration/jit-admin",
8181
"name": "JIT Admin",
8282
"component": "views/identity/administration/DeployJITAdmin",
8383
"allowedRoles": ["admin", "editor", "readonly"]

src/views/identity/administration/DeployJITAdmin.jsx

Lines changed: 66 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,21 @@
11
import React, { useState } from 'react'
22
import { CButton, CCallout, CCol, CForm, CRow, CSpinner, CTooltip } from '@coreui/react'
33
import { useSelector } from 'react-redux'
4-
import { Field, Form, FormSpy } from 'react-final-form'
5-
import {
6-
Condition,
7-
RFFCFormInput,
8-
RFFCFormRadio,
9-
RFFCFormRadioList,
10-
RFFCFormSwitch,
11-
RFFSelectSearch,
12-
} from 'src/components/forms'
13-
import {
14-
useGenericGetRequestQuery,
15-
useLazyGenericGetRequestQuery,
16-
useLazyGenericPostRequestQuery,
17-
} from 'src/store/api/app'
4+
import { Field, Form } from 'react-final-form'
5+
import { Condition, RFFCFormInput, RFFCFormRadioList, RFFSelectSearch } from 'src/components/forms'
6+
import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app'
187
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
198
import { faCircleNotch, faEdit, faEye } from '@fortawesome/free-solid-svg-icons'
209
import { CippContentCard, CippPage, CippPageList } from 'src/components/layout'
21-
import { CellTip } from 'src/components/tables/CellGenericFormat'
10+
import { CellTip, cellGenericFormatter } from 'src/components/tables/CellGenericFormat'
2211
import 'react-datepicker/dist/react-datepicker.css'
23-
import { CippActionsOffcanvas, ModalService, TenantSelector } from 'src/components/utilities'
12+
import { TenantSelector } from 'src/components/utilities'
2413
import arrayMutators from 'final-form-arrays'
2514
import DatePicker from 'react-datepicker'
2615
import 'react-datepicker/dist/react-datepicker.css'
2716
import { useListUsersQuery } from 'src/store/api/users'
28-
import { useListConditionalAccessPoliciesQuery } from 'src/store/api/tenants'
2917
import GDAPRoles from 'src/data/GDAPRoles'
18+
import { CippDatatable, cellDateFormatter } from 'src/components/tables'
3019

3120
const DeployJITAdmin = () => {
3221
const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery()
@@ -42,12 +31,13 @@ const DeployJITAdmin = () => {
4231
const startTime = Math.floor(startDate.getTime() / 1000)
4332
const endTime = Math.floor(endDate.getTime() / 1000)
4433
const shippedValues = {
45-
tenantFilter: tenantDomain,
34+
TenantFilter: tenantDomain,
4635
UserId: values.UserId?.value,
47-
PolicyId: values.PolicyId?.value,
36+
useraction: values.useraction,
37+
AdminRoles: values.AdminRoles?.map((role) => role.value),
4838
StartDate: startTime,
4939
EndDate: endTime,
50-
ExpireAction: values?.expireAction ?? 'delete',
40+
ExpireAction: values.expireAction.value,
5141
}
5242
genericPostRequest({ path: '/api/ExecJITAdmin', values: shippedValues }).then((res) => {
5343
setRefreshState(res.requestId)
@@ -63,8 +53,8 @@ const DeployJITAdmin = () => {
6353
return (
6454
<CippPage title={`Add JIT Admin`} tenantSelector={false}>
6555
<>
66-
<CRow>
67-
<CCol md={4}>
56+
<CRow className="mb-3">
57+
<CCol lg={4} md={12}>
6858
<CippContentCard title="Add JIT Admin" icon={faEdit}>
6959
<Form
7060
onSubmit={onSubmit}
@@ -81,7 +71,9 @@ const DeployJITAdmin = () => {
8171
<CRow className="mb-3">
8272
<CCol>
8373
<label className="mb-2">Tenant</label>
84-
<Field name="tenantFilter">{(props) => <TenantSelector />}</Field>
74+
<Field name="tenantFilter">
75+
{(props) => <TenantSelector showAllTenantSelector={false} />}
76+
</Field>
8577
</CCol>
8678
</CRow>
8779
<CRow>
@@ -102,7 +94,17 @@ const DeployJITAdmin = () => {
10294
</CCol>
10395
</CRow>
10496
<Condition when="useraction" is="create">
105-
<CRow className="mb-3">
97+
<CRow>
98+
<CCol>
99+
<RFFCFormInput label="First Name" name="FirstName" />
100+
</CCol>
101+
</CRow>
102+
<CRow>
103+
<CCol>
104+
<RFFCFormInput label="Last Name" name="LastName" />
105+
</CCol>
106+
</CRow>
107+
<CRow>
106108
<CCol>
107109
<RFFCFormInput label="User Principal Name" name="UserPrincipalName" />
108110
</CCol>
@@ -124,6 +126,7 @@ const DeployJITAdmin = () => {
124126
</CCol>
125127
</CRow>
126128
</Condition>
129+
<hr />
127130
<CRow className="mb-3">
128131
<CCol>
129132
<RFFSelectSearch
@@ -217,6 +220,45 @@ const DeployJITAdmin = () => {
217220
/>
218221
</CippContentCard>
219222
</CCol>
223+
<CCol lg={8} md={12}>
224+
<CippContentCard title="JIT Admins" icon="user-shield">
225+
<CippDatatable
226+
title="JIT Admins"
227+
path="/api/ExecJITAdmin?Action=List"
228+
params={{ TenantFilter: tenantDomain }}
229+
columns={[
230+
{
231+
name: 'User',
232+
selector: (row) => row['userPrincipalName'],
233+
sortable: true,
234+
cell: cellGenericFormatter(),
235+
exportSelector: 'userPrincipalName',
236+
},
237+
{
238+
name: 'JIT Enabled',
239+
selector: (row) => row['jitAdminEnabled'],
240+
sortable: true,
241+
cell: cellGenericFormatter(),
242+
exportSelector: 'jitAdminEnabled',
243+
},
244+
{
245+
name: 'JIT Expires',
246+
selector: (row) => row['jitAdminExpiration'],
247+
sortable: true,
248+
cell: cellDateFormatter({ format: 'short' }),
249+
exportSelector: 'jitAdminExpiration',
250+
},
251+
{
252+
name: 'Admin Roles',
253+
selector: (row) => row['memberOf'],
254+
sortable: false,
255+
cell: cellGenericFormatter(),
256+
exportSelector: 'memberOf',
257+
},
258+
]}
259+
/>
260+
</CippContentCard>
261+
</CCol>
220262
</CRow>
221263
</>
222264
</CippPage>

version_latest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.7.0
1+
5.7.1

0 commit comments

Comments
 (0)