@@ -107,6 +107,43 @@ <h5>Reset user password</h5>
107
107
</ div >
108
108
</ div >
109
109
</ div >
110
+ < div class ="container border rounded my-3 p-3 ">
111
+ < h5 > Update user enabled/lock flags</ h5 >
112
+ < div class ="row ">
113
+ < div class ="col ">
114
+ < div class ="mb-3 ">
115
+ < label for ="usernameInput4 " class ="form-label "> Username</ label >
116
+ < input type ="text " class ="form-control " id ="usernameInput4 ">
117
+ </ div >
118
+ </ div >
119
+ < div class ="col ">
120
+ < div class ="mb-3 ">
121
+ < label for ="userEnabledSelect " class ="form-label "> Enabled</ label >
122
+ < select class ="form-select " aria-label ="Default select example " id ="userEnabledSelect ">
123
+ < option selected > Open this select menu</ option >
124
+ < option value ="1 "> True</ option >
125
+ < option value ="0 "> False</ option >
126
+ </ select >
127
+ </ div >
128
+ </ div >
129
+ < div class ="col ">
130
+ < div class ="mb-3 ">
131
+ < label for ="userLockSelect " class ="form-label "> Lock</ label >
132
+ < select class ="form-select " aria-label ="Default select example " id ="userLockSelect ">
133
+ < option selected > Open this select menu</ option >
134
+ < option value ="1 "> True</ option >
135
+ < option value ="0 "> False</ option >
136
+ </ select >
137
+ </ div >
138
+ </ div >
139
+ < div class ="col-2 ">
140
+ < div class ="d-grid mb-3 ">
141
+ < label class ="form-label "> </ label >
142
+ < button class ="btn btn-warning " type ="button " onclick ="changeUserLockStatus() "> Change</ button >
143
+ </ div >
144
+ </ div >
145
+ </ div >
146
+ </ div >
110
147
< div class ="d-grid ">
111
148
< a href ="/ " class ="btn btn-secondary " type ="button "> Back to main page</ a >
112
149
</ div >
@@ -191,6 +228,39 @@ <h5>Reset user password</h5>
191
228
}
192
229
} ) ;
193
230
}
231
+ function changeUserLockStatus ( ) {
232
+ let username = document . getElementById ( 'usernameInput4' ) . value ;
233
+ let enabled = document . getElementById ( 'userEnabledSelect' ) . value ;
234
+ let lock = document . getElementById ( 'userLockSelect' ) . value ;
235
+ let valid1 = username != '' ;
236
+ let valid2 = ( ( enabled == '0' || enabled == '1' ) && lock != '0' && lock != '1' ) ||
237
+ ( ( lock == '0' || lock == '1' ) && enabled != '0' && enabled != '1' ) ;
238
+ if ( ! valid1 ) {
239
+ alert ( 'Username must not be empty' ) ;
240
+ return ;
241
+ }
242
+ if ( ! valid2 ) {
243
+ alert ( 'Only one flag can update' ) ;
244
+ return ;
245
+ }
246
+ let params = new URLSearchParams ( ) ;
247
+ if ( enabled == '0' || enabled == '1' ) {
248
+ params . append ( 'enabled' , enabled == '1' ) ;
249
+ }
250
+ if ( lock == '0' || lock == '1' ) {
251
+ params . append ( 'lock' , lock == '1' ) ;
252
+ }
253
+ instance . patch ( `/api/user/${ username } /lock` , params )
254
+ . then ( resp => alert ( resp . data . text ) )
255
+ . catch ( err => {
256
+ console . log ( err ) ;
257
+ if ( err ?. response ?. data ?. text ) {
258
+ alert ( err . response . data . text ) ;
259
+ } else {
260
+ alert ( 'ERROR! See console' ) ;
261
+ }
262
+ } ) ;
263
+ }
194
264
instance . interceptors . response . use ( function ( response ) {
195
265
const _csrf = document . cookie . match ( new RegExp ( `XSRF-TOKEN=([^;]+)` ) ) ;
196
266
if ( _csrf !== undefined && _csrf !== null ) document . getElementsByName ( '_csrf' ) . forEach ( el => el . value = _csrf [ 1 ] ) ;
0 commit comments