Compare commits
	
		
			2 Commits
		
	
	
		
			7fc06035c7
			...
			48f14e8a04
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 48f14e8a04 | ||
| d4533ea725 | 
| @@ -4,6 +4,7 @@ import enseirb.myinpulse.model.Administrator; | ||||
| import enseirb.myinpulse.model.Entrepreneur; | ||||
| import enseirb.myinpulse.service.AdminApiService; | ||||
| import enseirb.myinpulse.service.EntrepreneurApiService; | ||||
| import enseirb.myinpulse.service.UtilsService; | ||||
|  | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| @@ -16,15 +17,15 @@ import org.springframework.web.bind.annotation.*; | ||||
| public class UnauthApi { | ||||
|  | ||||
|     private final EntrepreneurApiService entrepreneurApiService; | ||||
|     private final AdminApiService adminApiService; | ||||
|     private final UtilsService utilsService; | ||||
|  | ||||
|     @Autowired | ||||
|     UnauthApi(EntrepreneurApiService entrepreneurApiService, AdminApiService administratorService) { | ||||
|     UnauthApi(EntrepreneurApiService entrepreneurApiService, UtilsService utilsService) { | ||||
|         this.entrepreneurApiService = entrepreneurApiService; | ||||
|         this.adminApiService = administratorService; | ||||
|         this.utilsService = utilsService; | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/unauth/finalize") | ||||
|     @PostMapping("/unauth/finalize") | ||||
|     public void createAccount(@AuthenticationPrincipal Jwt principal) { | ||||
|         boolean sneeStatus; | ||||
|         if (principal.getClaimAsString("sneeStatus") != null) { | ||||
| @@ -50,21 +51,13 @@ public class UnauthApi { | ||||
|                         course, | ||||
|                         sneeStatus, | ||||
|                         true); | ||||
|  | ||||
|         entrepreneurApiService.createAccount(e); | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * These bottom endpoints are meant for testing only | ||||
|      * and should not py merged to main | ||||
|      * | ||||
|      */ | ||||
|     @GetMapping("/unauth/getAllAdmins") | ||||
|     public Iterable<Administrator> getEveryAdmin() { | ||||
|         return this.adminApiService.getAllAdmins(); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/unauth/getAllEntrepreneurs") | ||||
|     public Iterable<Entrepreneur> getEveryEntrepreneur() { | ||||
|         return this.entrepreneurApiService.getAllEntrepreneurs(); | ||||
|     @GetMapping("/unauth/check-if-not-pending") | ||||
|     public Boolean checkAccountStatus(@AuthenticationPrincipal Jwt principal) { | ||||
|         // Throws 404 if user not found | ||||
|         return utilsService.checkEntrepreneurNotPending(principal.getClaimAsString("email")); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -72,4 +72,10 @@ public class UtilsService { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public Boolean checkEntrepreneurNotPending(String email) { | ||||
|         // Throws 404 if user not found | ||||
|         User user = userService.getUserByEmail(email); | ||||
|         return !user.isPending(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -79,6 +79,10 @@ paths: | ||||
|     $ref: "./unauthApi.yaml#/paths/~1unauth~1finalize" | ||||
|   /unauth/request-join/{projectId}: | ||||
|     $ref: "./unauthApi.yaml#/paths/~1unauth~1request-join~1{projectId}" | ||||
|   /unauth/request-admin-role: | ||||
|     $ref: "./unauthApi.yaml#/paths/~1unauth~1request-admin-role" | ||||
|   /unauth/check-if-not-pending: | ||||
|     $ref: "./unauthApi.yaml#/paths/~1unauth~1check-if-not-pending" | ||||
|  | ||||
|   #          _    ____  __  __ ___ _   _      _    ____ ___ | ||||
|   #         / \  |  _ \|  \/  |_ _| \ | |    / \  |  _ \_ _| | ||||
|   | ||||
| @@ -53,7 +53,7 @@ paths: | ||||
|           description: Bad Token - Invalid Keycloack configuration. | ||||
|   /unauth/request-admin-role: | ||||
|     post: | ||||
|       summary: Request to join an existing project | ||||
|       summary: Request to become an admin | ||||
|       description: Submits a request for the authenticated user (keycloack authenticated) to become an admin. Their role is then changed to admin in server and Keycloak. This requires approval from a project admin. | ||||
|       tags: | ||||
|        - Unauth API | ||||
| @@ -65,4 +65,26 @@ paths: | ||||
|         "401": | ||||
|           description: Unauthorized. | ||||
|         "403": | ||||
|           description: Bad Token - Invalid Keycloack configuration. | ||||
|           description: Bad Token - Invalid Keycloack configuration. | ||||
|  | ||||
|   /unauth/check-if-not-pending: | ||||
|     get: | ||||
|       summary: Returns a boolean of whether the user's account is not pending | ||||
|       description: Returns a boolean with value `true` if the user's account is not pending and `false` if it is. | ||||
|       tags: | ||||
|        - Unauth API | ||||
|       responses: | ||||
|         "200": | ||||
|           description: Accepted - Become admin request submitted and pending approval. | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: boolean   | ||||
|         "400": | ||||
|           description: Bad Request - Invalid project ID format or already member/request pending. | ||||
|         "401": | ||||
|           description: Unauthorized. | ||||
|         "404": | ||||
|           description: Bad Request - User not found in database. | ||||
|         "403": | ||||
|           description: Bad Token - Invalid Keycloack configuration. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user