ChangeUserPassword.tsx created and implemented + minor fix in API.ts
This commit is contained in:
		
							parent
							
								
									8948067514
								
							
						
					
					
						commit
						3be2319bce
					
				
					 3 changed files with 42 additions and 4 deletions
				
			
		|  | @ -1065,7 +1065,7 @@ export const api: API = { | ||||||
|   ): Promise<APIResponse<string>> { |   ): Promise<APIResponse<string>> { | ||||||
|     try { |     try { | ||||||
|       const response = await fetch( |       const response = await fetch( | ||||||
|         `/api/changePassword/${username}?newPassword=${newPassword}`, |         `/api/changeUserPassword/${username}?newPassword=${newPassword}`, | ||||||
|         { |         { | ||||||
|           method: "PUT", |           method: "PUT", | ||||||
|           headers: { |           headers: { | ||||||
|  |  | ||||||
							
								
								
									
										36
									
								
								frontend/src/Components/ChangeUserPassword.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								frontend/src/Components/ChangeUserPassword.tsx
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | ||||||
|  | import { APIResponse, api } from "../API/API"; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Changes the password of a user | ||||||
|  |  * @param {string} props.username - The username of the user | ||||||
|  |  * @param {string} props.newPassword - The new password | ||||||
|  |  * @returns {void} - Nothing | ||||||
|  |  */ | ||||||
|  | export default function ChangeUserPassword(props: { | ||||||
|  |   username: string; | ||||||
|  |   newPassword: string; | ||||||
|  | }): void { | ||||||
|  |   if (props.username === localStorage.getItem("username")) { | ||||||
|  |     alert("You cannot change admin password"); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |   api | ||||||
|  |     .changeUserPassword( | ||||||
|  |       props.username, | ||||||
|  |       props.newPassword, | ||||||
|  |       localStorage.getItem("accessToken") ?? "", | ||||||
|  |     ) | ||||||
|  |     .then((response: APIResponse<string>) => { | ||||||
|  |       if (response.success) { | ||||||
|  |         alert("Password changed successfully"); | ||||||
|  |         location.reload(); | ||||||
|  |       } else { | ||||||
|  |         alert("Password not changed"); | ||||||
|  |         console.error(response.message); | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |     .catch((error) => { | ||||||
|  |       alert("Password not changed"); | ||||||
|  |       console.error("An error occurred during change:", error); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | @ -12,6 +12,7 @@ import { | ||||||
|   usernameLowLimit, |   usernameLowLimit, | ||||||
|   usernameUpLimit, |   usernameUpLimit, | ||||||
| } from "../Data/constants"; | } from "../Data/constants"; | ||||||
|  | import ChangeUserPassword from "./ChangeUserPassword"; | ||||||
| 
 | 
 | ||||||
| function UserInfoModal(props: { | function UserInfoModal(props: { | ||||||
|   isVisible: boolean; |   isVisible: boolean; | ||||||
|  | @ -94,9 +95,10 @@ function UserInfoModal(props: { | ||||||
|     if ( |     if ( | ||||||
|       confirm(`Are you sure you want to change password of ${props.username}?`) |       confirm(`Are you sure you want to change password of ${props.username}?`) | ||||||
|     ) { |     ) { | ||||||
|       //TODO: insert change password functionality
 |       ChangeUserPassword({ | ||||||
|       alert("Not implemented yet"); |         username: props.username, | ||||||
|       setNewPassword(""); |         newPassword: newPassword, | ||||||
|  |       }); | ||||||
|     } else { |     } else { | ||||||
|       alert("Password was not changed!"); |       alert("Password was not changed!"); | ||||||
|     } |     } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Peter KW
						Peter KW