mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-10-30 17:54:59 +00:00 
			
		
		
		
	Can save user security settings
This commit is contained in:
		| @@ -125,6 +125,38 @@ class SettingsController { | ||||
| 		return $this->SecuritySettingsToAPI($settings); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Set (update) security settings | ||||
| 	 *  | ||||
| 	 * Warning !!! This method is really sensitive, please double check any | ||||
| 	 * user input data ! | ||||
| 	 *  | ||||
| 	 * @url POST /settings/set_security | ||||
| 	 */ | ||||
| 	public function setSecurity(){ | ||||
|  | ||||
| 		//User login required | ||||
| 		user_login_required(); | ||||
|  | ||||
| 		//Make sure the password is valid | ||||
| 		check_post_password(userID, "password"); | ||||
|  | ||||
| 		//Create a security settings object and fill it with the new information | ||||
| 		$settings = new SecuritySettings(); | ||||
| 		$settings->set_id(userID); | ||||
| 		$settings->set_security_question_1(postString("security_question_1", 0)); | ||||
| 		$settings->set_security_answer_1(postString("security_answer_1", 0)); | ||||
| 		$settings->set_security_question_2(postString("security_question_2", 0)); | ||||
| 		$settings->set_security_answer_2(postString("security_answer_2", 0)); | ||||
| 		 | ||||
| 		//Try to update settings | ||||
| 		if(!components()->settings->save_security($settings)) | ||||
| 			Rest_fatal_error(500, "Coud not save security settings!"); | ||||
| 		 | ||||
| 		//Success | ||||
| 		return array("success" => "The security settings of the user have been successfully saved !"); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Turn a GeneralSettings object into a valid API object | ||||
| 	 *  | ||||
|   | ||||
| @@ -84,6 +84,21 @@ class SettingsComponents { | ||||
| 		return $this->dbToSecuritySettings($entry); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Save new version of the security settings of a user | ||||
| 	 *  | ||||
| 	 * @param SecuritySettings $settings The settings to save in the database | ||||
| 	 * @return bool TRUE in case of success / FALSE else | ||||
| 	 */ | ||||
| 	public function save_security(SecuritySettings $settings) : bool { | ||||
|  | ||||
| 		//Convert SecuritySettings object into database entry | ||||
| 		$entry = $this->SecuritySettingsToDb($settings); | ||||
|  | ||||
| 		//Save information in the database | ||||
| 		return $this->saveDBUserInfo($settings->get_id(), $entry); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Get Single User Infos from database and return its information as an array | ||||
| 	 * | ||||
| @@ -198,6 +213,24 @@ class SettingsComponents { | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Turn SecuritySettings object into database entry | ||||
| 	 *  | ||||
| 	 * @param SecuritySettings $settings Settings entry to turn into database entry | ||||
| 	 * @return array Generated entry | ||||
| 	 */ | ||||
| 	private function SecuritySettingsToDb(SecuritySettings $settings) : array { | ||||
|  | ||||
| 		$data = array(); | ||||
|  | ||||
| 		$data["question1"] = $settings->has_security_question_1() ? $settings->get_security_question_1() : ""; | ||||
| 		$data["reponse1"] = $settings->has_security_answer_1() ? $settings->get_security_answer_1() : ""; | ||||
| 		$data["question2"] = $settings->has_security_question_2() ? $settings->get_security_question_2() : ""; | ||||
| 		$data["reponse2"] = $settings->has_security_answer_2() ? $settings->get_security_answer_2() : ""; | ||||
|  | ||||
| 		return $data; | ||||
| 	} | ||||
|  | ||||
| } | ||||
|  | ||||
| //Register component | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Pierre
					Pierre