1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Can set security settings

This commit is contained in:
2021-01-19 17:47:48 +01:00
parent c9544e7c9c
commit 77d11a8210
5 changed files with 70 additions and 1 deletions

View File

@ -99,6 +99,7 @@ pub fn get_routes() -> Vec<Route> {
Route::post("/settings/get_language", Box::new(settings_controller::get_language)),
Route::post("/settings/set_language", Box::new(settings_controller::set_language)),
Route::post("/settings/get_security", Box::new(settings_controller::get_security)),
Route::post("/settings/set_security", Box::new(settings_controller::set_security)),
// Friends controller
Route::post("/friends/getList", Box::new(friends_controller::get_list)),

View File

@ -10,6 +10,7 @@ use crate::controllers::routes::RequestResult;
use crate::data::general_settings::GeneralSettings;
use crate::data::http_request_handler::HttpRequestHandler;
use crate::data::lang_settings::LangSettings;
use crate::data::security_settings::{SecurityQuestion, SecuritySettings};
use crate::data::user::UserPageStatus;
use crate::helpers::{account_helper, user_helper};
use crate::helpers::virtual_directory_helper::VirtualDirType;
@ -93,4 +94,26 @@ pub fn get_security(r: &mut HttpRequestHandler) -> RequestResult {
let user = user_helper::find_user_by_id(r.user_id_ref()?)?;
r.set_response(SecuritySettingsAPI::new(&user))
}
/// Set security settings
pub fn set_security(r: &mut HttpRequestHandler) -> RequestResult {
r.need_user_password("password")?;
let new_settings = SecuritySettings {
id: r.user_id()?,
question1: SecurityQuestion::new(
&Option::Some(r.post_content("security_question_1", 0, false)?),
&Option::Some(r.post_content("security_answer_1", 0, false)?),
),
question2: SecurityQuestion::new(
&Option::Some(r.post_content("security_question_2", 0, false)?),
&Option::Some(r.post_content("security_answer_2", 0, false)?),
),
};
account_helper::set_security_settings(&new_settings)?;
r.success("Security settings update.")
}