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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondeleteUser
(Long id) Endpoint for deleting a user.org.springframework.data.domain.Page<AppUser>
fetchUsers
(Integer page, Integer size) Endpoint for fetching all users.org.springframework.http.ResponseEntity<AppUser>
getUserById
(Long id) Endpoint for fetching a user by its id.org.springframework.http.ResponseEntity<String>
grantRoles
(String username, String roles) Endpoint for granting admin roles to a user.org.springframework.http.ResponseEntity<String>
Endpoint for logging in a user.org.springframework.http.ResponseEntity<String>
logoutUser
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Endpoint for logging out a user.org.springframework.http.ResponseEntity<AppUser>
registerUser
(@Valid AppUser user) Endpoint for registering a user.org.springframework.http.ResponseEntity<String>
revokeRoles
(String username, String roles) Endpoint for revoking roles from a user.
-
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.
-