mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-11-04 09:34:04 +00:00 
			
		
		
		
	Can disconnect a user from all its devices
This commit is contained in:
		@@ -41,6 +41,13 @@ pub fn logout_user(request: &mut HttpRequestHandler) -> RequestResult {
 | 
			
		||||
    request.success("User disconnected.")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Disconnect a user from all his devices
 | 
			
		||||
pub fn disconnect_all_devices(r: &mut HttpRequestHandler) -> RequestResult {
 | 
			
		||||
    account_helper::destroy_all_user_tokens(r.user_id_ref()?)?;
 | 
			
		||||
 | 
			
		||||
    r.success("Successfully disconnected!")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get current user ID
 | 
			
		||||
pub fn user_id(request: &mut HttpRequestHandler) -> RequestResult {
 | 
			
		||||
    request.set_response(CurrentUserID::new(&request.user_id()?))
 | 
			
		||||
 
 | 
			
		||||
@@ -71,6 +71,7 @@ pub fn get_routes() -> Vec<Route> {
 | 
			
		||||
        Route::post_without_login("/user/connectUSER", Box::new(account_controller::login_user)),
 | 
			
		||||
        Route::post("/account/logout", Box::new(account_controller::logout_user)),
 | 
			
		||||
        Route::post("/user/disconnectUSER", Box::new(account_controller::logout_user)),
 | 
			
		||||
        Route::post("/account/disconnect_all_devices", Box::new(account_controller::disconnect_all_devices)),
 | 
			
		||||
        Route::post("/account/id", Box::new(account_controller::user_id)),
 | 
			
		||||
        Route::post("/user/getCurrentUserID", Box::new(account_controller::user_id)),
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -87,6 +87,13 @@ pub fn destroy_login_tokens(id: &UserID, client: &APIClient) -> ResultBoxError<(
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Destroy all login tokens of a user
 | 
			
		||||
pub fn destroy_all_user_tokens(id: &UserID) -> ResultBoxError {
 | 
			
		||||
    database::DeleteQuery::new(USER_ACCESS_TOKENS_TABLE)
 | 
			
		||||
        .cond_user_id("user_id", id)
 | 
			
		||||
        .exec()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Check out whether a virtual directory is taken by a user or not
 | 
			
		||||
pub fn check_user_directory_availability(dir: &str, user_id: Option<UserID>) -> ResultBoxError<bool> {
 | 
			
		||||
    let found_user = user_helper::find_user_by_virtual_directory(dir);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user