| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -79,6 +79,7 @@ fn admin_disabled() -> &'static str { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					const COOKIE_NAME: &str = "VW_ADMIN"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					const ADMIN_PATH: &str = "/admin"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					const DT_FMT: &str = "%Y-%m-%d %H:%M:%S %Z"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					const BASE_TEMPLATE: &str = "admin/base"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -310,7 +311,10 @@ async fn get_users_json(_token: AdminToken, conn: DbConn) -> Json<Value> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let users_json = stream::iter(User::get_all(&conn).await) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        .then(|u| async { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            let u = u; // Move out this single variable
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            u.to_json(&conn).await | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            let mut usr = u.to_json(&conn).await; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            usr["UserEnabled"] = json!(u.enabled); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            usr["CreatedAt"] = json!(format_naive_datetime_local(&u.created_at, DT_FMT)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            usr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        .collect::<Vec<Value>>() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        .await; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -320,8 +324,6 @@ async fn get_users_json(_token: AdminToken, conn: DbConn) -> Json<Value> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#[get("/users/overview")] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					async fn users_overview(_token: AdminToken, conn: DbConn) -> ApiResult<Html<String>> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const DT_FMT: &str = "%Y-%m-%d %H:%M:%S %Z"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let users_json = stream::iter(User::get_all(&conn).await) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        .then(|u| async { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            let u = u; // Move out this single variable
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -346,9 +348,11 @@ async fn users_overview(_token: AdminToken, conn: DbConn) -> ApiResult<Html<Stri | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#[get("/users/<uuid>")] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					async fn get_user_json(uuid: String, _token: AdminToken, conn: DbConn) -> JsonResult { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let user = get_user_or_404(&uuid, &conn).await?; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    Ok(Json(user.to_json(&conn).await)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let u = get_user_or_404(&uuid, &conn).await?; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    let mut usr = u.to_json(&conn).await; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    usr["UserEnabled"] = json!(u.enabled); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    usr["CreatedAt"] = json!(format_naive_datetime_local(&u.created_at, DT_FMT)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    Ok(Json(usr)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#[post("/users/<uuid>/delete")] | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |