Class AppUserController

java.lang.Object
com.markvarga21.studentmanager.controller.AppUserController

@RestController @RequestMapping("/api/v1/auth") @CrossOrigin public class AppUserController extends Object
The controller for the user authentication.
  • Constructor Details

    • AppUserController

      public AppUserController()
  • Method Details

    • fetchUsers

      @PreAuthorize("hasRole(\'ROLE_ADMIN\')") @GetMapping("/users") public org.springframework.data.domain.Page<AppUser> fetchUsers(@RequestParam(defaultValue="0") Integer page, @RequestParam(defaultValue="10") Integer size)
      Endpoint for fetching all users.
      Parameters:
      page - The page number.
      size - The size of elements inside a single page.
      Returns:
      A page of the users.
    • deleteUser

      @PreAuthorize("hasRole(\'ROLE_ADMIN\')") @DeleteMapping("/users/{id}") public String deleteUser(@PathVariable Long id)
      Endpoint for deleting a user.
      Parameters:
      id - The id of the user.
      Returns:
      A descriptive message of the deletion.
    • registerUser

      @PostMapping("/register") public org.springframework.http.ResponseEntity<AppUser> registerUser(@RequestBody @Valid @Valid AppUser user)
      Endpoint for registering a user.
      Parameters:
      user - The user object.
      Returns:
      The registered user object.
    • loginUser

      @PostMapping("/login") public org.springframework.http.ResponseEntity<String> loginUser(@RequestBody @Valid @Valid UserLogin user)
      Endpoint for logging in a user.
      Parameters:
      user - The user object.
      Returns:
      The created JWT token.
    • logoutUser

      @PreAuthorize("hasRole(\'ROLE_USER\')") @PostMapping("/logout") public org.springframework.http.ResponseEntity<String> logoutUser(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws jakarta.servlet.ServletException, IOException
      Endpoint for logging out a user.
      Parameters:
      request - The request.
      response - The response.
      Returns:
      A descriptive message of the logout.
      Throws:
      jakarta.servlet.ServletException - if a servlet error occurs.
      IOException - if an I/O error occurs.
    • getUserById

      @PreAuthorize("hasRole(\'ROLE_ADMIN\')") @GetMapping("/users/{id}") public org.springframework.http.ResponseEntity<AppUser> getUserById(@PathVariable Long id)
      Endpoint for fetching a user by its id.
      Parameters:
      id - The id of the user.
      Returns:
      The user object.
    • grantRoles

      @PreAuthorize("hasRole(\'ROLE_ADMIN\')") @PutMapping("/users/grant") public org.springframework.http.ResponseEntity<String> grantRoles(@RequestParam String username, @RequestParam String roles)
      Endpoint for granting admin roles to a user.
      Parameters:
      username - The username of the user.
      roles - The roles to grant separated by commas.
      Returns:
      A descriptive message of the role granting.
    • revokeRoles

      @PreAuthorize("hasRole(\'ROLE_ADMIN\')") @PutMapping("/users/revoke") public org.springframework.http.ResponseEntity<String> revokeRoles(@RequestParam String username, @RequestParam String roles)
      Endpoint for revoking roles from a user.
      Parameters:
      username - The username of the user.
      roles - The roles to revoke separated by commas.
      Returns:
      A descriptive message of the role revoking.