mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-10-30 23:24:42 +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