@@ -8,7 +8,6 @@ import { Link } from 'react-router-dom';
88
99import { PageHeader } from '@/components/PageHeader' ;
1010import { useSearch } from '@/hooks/useSearch' ;
11- import { useSetupState } from '@/hooks/useSetupState' ;
1211import { useAppStore } from '@/store' ;
1312
1413import { useDeleteUserMutation } from '../hooks/useDeleteUserMutation' ;
@@ -23,7 +22,6 @@ export const ManageUsersPage = () => {
2322 const updateUserMutation = useUpdateUserMutation ( ) ;
2423 const [ selectedUser , setSelectedUser ] = useState < null | User > ( null ) ;
2524 const { filteredData, searchTerm, setSearchTerm } = useSearch ( usersQuery . data ?? [ ] , 'username' ) ;
26- const setupStateQuery = useSetupState ( ) ;
2725
2826 const currentUserIsSelected = selectedUser ?. username === currentUser ?. username ;
2927
@@ -91,135 +89,133 @@ export const ManageUsersPage = () => {
9189 </ Sheet . Description >
9290 </ Sheet . Header >
9391 < Sheet . Body className = "grid gap-4" >
94- { setupStateQuery . data ?. isExperimentalFeaturesEnabled && (
95- < Form
96- additionalButtons = { {
97- left : (
98- < Button
99- className = "w-full"
100- disabled = { currentUserIsSelected }
101- type = "button"
102- variant = "danger"
103- onClick = { ( ) => {
104- deleteUserMutation . mutate ( { id : selectedUser ! . id } ) ;
105- setSelectedUser ( null ) ;
106- } }
107- >
108- { t ( 'core.delete' ) }
109- </ Button >
110- )
111- } }
112- content = { [
113- {
114- description : t ( {
115- en : 'Important: These permissions are not specific to any group. To manage granular permissions, please use the API.' ,
116- fr : "Important : Ces autorisations ne sont pas spécifiques à un groupe. Pour gérer des autorisations granulaires, veuillez utiliser l'API."
117- } ) ,
118- fields : {
119- additionalPermissions : {
120- fieldset : {
121- action : {
122- kind : 'string' ,
123- label : t ( {
124- en : 'Action' ,
125- fr : 'Action'
92+ < Form
93+ additionalButtons = { {
94+ left : (
95+ < Button
96+ className = "w-full"
97+ disabled = { currentUserIsSelected }
98+ type = "button"
99+ variant = "danger"
100+ onClick = { ( ) => {
101+ deleteUserMutation . mutate ( { id : selectedUser ! . id } ) ;
102+ setSelectedUser ( null ) ;
103+ } }
104+ >
105+ { t ( 'core.delete' ) }
106+ </ Button >
107+ )
108+ } }
109+ content = { [
110+ {
111+ description : t ( {
112+ en : 'IMPORTANT: These permissions are not specific to any group. To manage granular permissions, please use the API.' ,
113+ fr : "IMPORTANT : Ces autorisations ne sont pas spécifiques à un groupe. Pour gérer des autorisations granulaires, veuillez utiliser l'API."
114+ } ) ,
115+ fields : {
116+ additionalPermissions : {
117+ fieldset : {
118+ action : {
119+ kind : 'string' ,
120+ label : t ( {
121+ en : 'Action' ,
122+ fr : 'Action'
123+ } ) ,
124+ options : {
125+ create : t ( {
126+ en : 'Create' ,
127+ fr : 'Créer'
126128 } ) ,
127- options : {
128- create : t ( {
129- en : 'Create' ,
130- fr : 'Créer'
131- } ) ,
132- delete : t ( {
133- en : 'Delete' ,
134- fr : 'Effacer'
135- } ) ,
136- manage : t ( {
137- en : 'Manage (All)' ,
138- fr : 'Gérer (Tout)'
139- } ) ,
140- read : t ( {
141- en : 'Read' ,
142- fr : 'Lire'
143- } ) ,
144- update : t ( {
145- en : 'Update' ,
146- fr : 'Mettre à jour'
147- } )
148- } ,
149- variant : 'select'
150- } ,
151- subject : {
152- kind : 'string' ,
153- label : t ( {
154- en : 'Resource' ,
155- fr : 'Resource'
129+ delete : t ( {
130+ en : 'Delete' ,
131+ fr : 'Effacer'
132+ } ) ,
133+ manage : t ( {
134+ en : 'Manage (All)' ,
135+ fr : 'Gérer (Tout)'
156136 } ) ,
157- options : {
158- all : t ( {
159- en : 'All' ,
160- fr : 'Tous'
161- } ) ,
162- Assignment : t ( {
163- en : 'Assignment' ,
164- fr : 'Devoir'
165- } ) ,
166- Group : t ( {
167- en : 'Group' ,
168- fr : 'Groupe'
169- } ) ,
170- Instrument : t ( {
171- en : 'Instrument' ,
172- fr : 'Instrument'
173- } ) ,
174- InstrumentRecord : t ( {
175- en : 'Instrument Record' ,
176- fr : "Enregistrement de l'instrument"
177- } ) ,
178- Session : t ( {
179- en : 'Session' ,
180- fr : 'Session'
181- } ) ,
182- Subject : t ( {
183- en : 'Subject' ,
184- fr : 'Client'
185- } ) ,
186- User : t ( {
187- en : 'User' ,
188- fr : 'Utilisateur'
189- } )
190- } ,
191- variant : 'select'
192- }
137+ read : t ( {
138+ en : 'Read' ,
139+ fr : 'Lire'
140+ } ) ,
141+ update : t ( {
142+ en : 'Update' ,
143+ fr : 'Mettre à jour'
144+ } )
145+ } ,
146+ variant : 'select'
193147 } ,
194- kind : 'record-array' ,
195- label : t ( {
196- en : 'Permission' ,
197- fr : 'Autorisations supplémentaires'
198- } )
199- }
200- } ,
201- title : t ( {
202- en : 'Authorization' ,
203- fr : 'Autorisation'
204- } )
205- }
206- ] }
207- initialValues = {
208- selectedUser ?. additionalPermissions . length
209- ? {
210- additionalPermissions : selectedUser . additionalPermissions
211- }
212- : undefined
148+ subject : {
149+ kind : 'string' ,
150+ label : t ( {
151+ en : 'Resource' ,
152+ fr : 'Resource'
153+ } ) ,
154+ options : {
155+ all : t ( {
156+ en : 'All' ,
157+ fr : 'Tous'
158+ } ) ,
159+ Assignment : t ( {
160+ en : 'Assignment' ,
161+ fr : 'Devoir'
162+ } ) ,
163+ Group : t ( {
164+ en : 'Group' ,
165+ fr : 'Groupe'
166+ } ) ,
167+ Instrument : t ( {
168+ en : 'Instrument' ,
169+ fr : 'Instrument'
170+ } ) ,
171+ InstrumentRecord : t ( {
172+ en : 'Instrument Record' ,
173+ fr : "Enregistrement de l'instrument"
174+ } ) ,
175+ Session : t ( {
176+ en : 'Session' ,
177+ fr : 'Session'
178+ } ) ,
179+ Subject : t ( {
180+ en : 'Subject' ,
181+ fr : 'Client'
182+ } ) ,
183+ User : t ( {
184+ en : 'User' ,
185+ fr : 'Utilisateur'
186+ } )
187+ } ,
188+ variant : 'select'
189+ }
190+ } ,
191+ kind : 'record-array' ,
192+ label : t ( {
193+ en : 'Permission' ,
194+ fr : 'Autorisations supplémentaires'
195+ } )
196+ }
197+ } ,
198+ title : t ( {
199+ en : 'Authorization' ,
200+ fr : 'Autorisation'
201+ } )
213202 }
214- submitBtnLabel = { t ( 'core.save' ) }
215- validationSchema = { $UpdateUserData . pick ( { additionalPermissions : true } ) . required ( ) }
216- onSubmit = { ( data ) => {
217- void updateUserMutation . mutateAsync ( { data, id : selectedUser ! . id } ) . then ( ( ) => {
218- setSelectedUser ( null ) ;
219- } ) ;
220- } }
221- />
222- ) }
203+ ] }
204+ initialValues = {
205+ selectedUser ?. additionalPermissions . length
206+ ? {
207+ additionalPermissions : selectedUser . additionalPermissions
208+ }
209+ : undefined
210+ }
211+ submitBtnLabel = { t ( 'core.save' ) }
212+ validationSchema = { $UpdateUserData . pick ( { additionalPermissions : true } ) . required ( ) }
213+ onSubmit = { ( data ) => {
214+ void updateUserMutation . mutateAsync ( { data, id : selectedUser ! . id } ) . then ( ( ) => {
215+ setSelectedUser ( null ) ;
216+ } ) ;
217+ } }
218+ />
223219 </ Sheet . Body >
224220 </ Sheet . Content >
225221 </ Sheet >
0 commit comments