Skip to content

Commit da55cfd

Browse files
Merge branch 'dev' into dev
2 parents e8418ff + 4a98832 commit da55cfd

File tree

1 file changed

+121
-1
lines changed

1 file changed

+121
-1
lines changed

src/views/cipp/UserSettings.jsx

Lines changed: 121 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ import {
6565
import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas'
6666
import ReportImage from 'src/components/utilities/ReportImage'
6767
import { useLoadClientPrincipalQuery } from 'src/store/api/auth'
68-
import { setOffboardingDefaults } from 'src/store/features/app'
68+
import { setOffboardingDefaults, setNewUserDefaults } from 'src/store/features/app'
6969

7070
const Offcanvas = (row, rowIndex, formatExtraData) => {
7171
const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery()
@@ -122,13 +122,88 @@ const Offcanvas = (row, rowIndex, formatExtraData) => {
122122
}
123123

124124
const UserSettings = () => {
125+
const tenant = useSelector((state) => state.app.currentTenant)
126+
const [addedAttributes, setAddedAttribute] = React.useState(0)
127+
const [random3, setRandom3] = useState('')
128+
const availableProperties = useGenericGetRequestQuery({
129+
path: '/api/ListGraphRequest',
130+
params: {
131+
Endpoint: 'users',
132+
ListProperties: true,
133+
TenantFilter: tenant.defaultDomainName,
134+
IgnoreErrors: true,
135+
},
136+
})
137+
const exclusionList = [
138+
'id',
139+
'accountEnabled',
140+
'deletedDateTime',
141+
'ageGroup',
142+
'businessPhones',
143+
'city',
144+
'createdDateTime',
145+
'creationType',
146+
'companyName',
147+
'country',
148+
'department',
149+
'displayName',
150+
'givenName',
151+
'imAddresses',
152+
'infoCatalogs',
153+
'isLicenseReconciliationNeeded',
154+
'isManagementRestricted',
155+
'isResourceAccount',
156+
'jobTitle',
157+
'mail',
158+
'mailNickname',
159+
'mobilePhone',
160+
'onPremisesDistinguishedName',
161+
'onPremisesDomainName',
162+
'onPremisesImmutableId',
163+
'onPremisesLastSyncDateTime',
164+
'onPremisesObjectIdentifier',
165+
'onPremisesSecurityIdentifier',
166+
'onPremisesSamAccountName',
167+
'onPremisesSyncEnabled',
168+
'onPremisesUserPrincipalName',
169+
'passwordPolicies',
170+
'postalCode',
171+
'preferredDataLocation',
172+
'preferredLanguage',
173+
'proxyAddresses',
174+
'refreshTokensValidFromDateTime',
175+
'securityIdentifier',
176+
'signInSessionsValidFromDateTime',
177+
'streetAddress',
178+
'surname',
179+
'usageLocation',
180+
'userPrincipalName',
181+
'externalUserConvertedOn',
182+
'externalUserState',
183+
'externalUserStateChangeDateTime',
184+
'userType',
185+
'employeeOrgData',
186+
'assignedLicenses',
187+
'assignedPlans',
188+
'authorizationInfo',
189+
'cloudRealtimeCommunicationInfo',
190+
'deviceKeys',
191+
'identities',
192+
'onPremisesExtensionAttributes',
193+
'onPremisesProvisioningErrors',
194+
'onPremisesSipInfo',
195+
'passwordProfile',
196+
'provisionedPlans',
197+
'serviceProvisioningErrors',
198+
]
125199
const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery()
126200
const { data: profile, isFetching, isLoading } = useLoadClientPrincipalQuery()
127201
const dispatch = useDispatch()
128202
const currentSettings = useSelector((state) => state.app)
129203

130204
const onSubmit = (values) => {
131205
dispatch(setOffboardingDefaults({ offboardingDefaults: values }))
206+
dispatch(setNewUserDefaults({ NewUserDefaults: values.name }))
132207
const shippedvalues = {
133208
user: values.user,
134209
currentSettings: currentSettings,
@@ -201,6 +276,51 @@ const UserSettings = () => {
201276
/>
202277
</CCol>
203278
</CRow>
279+
<CRow className="mb-3">
280+
<h3 className="underline mb-5">New User Attribute Defaults</h3>
281+
<div className="mb-3">
282+
<RFFSelectSearch
283+
name="Attribute Name"
284+
label="Select the attributes you want to use"
285+
placeholder="Select the attributes you want to use"
286+
retainInput={true}
287+
multi={true}
288+
values={
289+
availableProperties?.data?.Results?.filter(
290+
(prop) => !exclusionList.includes(prop),
291+
)?.map((prop) => ({
292+
name: prop,
293+
value: prop,
294+
})) ?? []
295+
}
296+
allowCreate={true}
297+
refreshFunction={() =>
298+
setRandom3((Math.random() + 1).toString(36).substring(7))
299+
}
300+
isLoading={availableProperties.isFetching}
301+
/>
302+
</div>
303+
<CRow>
304+
<CCol className="mb-3" md={12}>
305+
{addedAttributes > 0 && (
306+
<CButton
307+
onClick={() => setAddedAttribute(addedAttributes - 1)}
308+
className={`circular-button`}
309+
title={'-'}
310+
>
311+
<FontAwesomeIcon icon={'minus'} />
312+
</CButton>
313+
)}
314+
<CButton
315+
onClick={() => setAddedAttribute(addedAttributes + 1)}
316+
className={`circular-button`}
317+
title={'+'}
318+
>
319+
<FontAwesomeIcon icon={'plus'} />
320+
</CButton>
321+
</CCol>
322+
</CRow>
323+
</CRow>
204324
<CRow className="mb-3">
205325
<CCol className="mb-3" md={6}>
206326
<CButton

0 commit comments

Comments
 (0)