mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-03-21 05:00:44 +00:00
Can disconnect a user from all its devices
This commit is contained in:
parent
ee5f9bedc3
commit
c2c6a24b29
@ -41,6 +41,13 @@ pub fn logout_user(request: &mut HttpRequestHandler) -> RequestResult {
|
|||||||
request.success("User disconnected.")
|
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
|
/// Get current user ID
|
||||||
pub fn user_id(request: &mut HttpRequestHandler) -> RequestResult {
|
pub fn user_id(request: &mut HttpRequestHandler) -> RequestResult {
|
||||||
request.set_response(CurrentUserID::new(&request.user_id()?))
|
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_without_login("/user/connectUSER", Box::new(account_controller::login_user)),
|
||||||
Route::post("/account/logout", Box::new(account_controller::logout_user)),
|
Route::post("/account/logout", Box::new(account_controller::logout_user)),
|
||||||
Route::post("/user/disconnectUSER", 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("/account/id", Box::new(account_controller::user_id)),
|
||||||
Route::post("/user/getCurrentUserID", 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(())
|
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
|
/// 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> {
|
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);
|
let found_user = user_helper::find_user_by_virtual_directory(dir);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user