@@ -319,7 +319,7 @@ def check_username():
319
319
return jsonify (user_exists )
320
320
321
321
@user_api .route ("/api/admin/user/update" , methods = ["POST" ])
322
- # @jwt_ops.admin_required
322
+ @jwt_ops .admin_required
323
323
def user_update ():
324
324
"""Update existing user record
325
325
"""
@@ -346,7 +346,7 @@ def user_update():
346
346
#TODO: WIP
347
347
print (update_dict )
348
348
349
- return jsonify ("foo " )
349
+ return jsonify ("Work in process " )
350
350
351
351
# TODO: A single do-all update_user()
352
352
@user_api .route ("/api/admin/user/deactivate" , methods = ["POST" ])
@@ -370,9 +370,6 @@ def user_activate():
370
370
def user_get_list ():
371
371
"""Return list of users"""
372
372
373
- # pu = Table("pdp_users", metadata, autoload=True, autoload_with=engine)
374
- # pr = Table("pdp_user_roles", metadata, autoload=True, autoload_with=engine)
375
-
376
373
with engine .connect () as connection :
377
374
378
375
s = text (
@@ -392,3 +389,27 @@ def user_get_list():
392
389
393
390
return jsonify (ul ), 200
394
391
392
+ @user_api .route ("/api/admin/user/get_info/<string:username>" , methods = ["GET" ])
393
+ @jwt_ops .admin_required
394
+ def user_get_info (username ):
395
+ """Return info on a specified user"""
396
+
397
+ with engine .connect () as connection :
398
+
399
+ s = text (
400
+ """ select username, full_name, active, pr.role
401
+ from pdp_users as pu
402
+ left join pdp_user_roles as pr on pu.role = pr._id
403
+ where username=:u
404
+ """
405
+ )
406
+ s = s .bindparams (u = username )
407
+ result = connection .execute (s )
408
+
409
+ if result .rowcount :
410
+ user_row = result .fetchone ()
411
+ else :
412
+ log_user_action (username , "Failure" , "Error when getting user info" )
413
+ return jsonify ("Username not found" ), 400
414
+
415
+ return jsonify ( dict (zip (result .keys (), user_row )) ), 200
0 commit comments