Added loginhistory view
- Added tooltip to keep logged in - Added Administration button to credits UI
This commit is contained in:
@ -12,6 +12,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Repository
|
||||
public class UserLoginRepository {
|
||||
@ -47,4 +49,19 @@ public class UserLoginRepository {
|
||||
// Return the second most recent login if exists
|
||||
return result.hasNext() ? result.next() : null;
|
||||
}
|
||||
|
||||
public List<UserLogin> getUserLogins(String userId) {
|
||||
Result<UserLogin> result = r.db(config.getDatabase()).table(TABLE_NAME)
|
||||
.orderBy().optArg("index", r.desc("loginTime"))
|
||||
.filter(r.hashMap("userId", userId))
|
||||
.run(connection, UserLogin.class);
|
||||
return result.toList();
|
||||
}
|
||||
|
||||
public void deleteAllUserLogins(String userId) {
|
||||
r.db(config.getDatabase()).table(TABLE_NAME)
|
||||
.filter(r.hashMap("userId", userId))
|
||||
.delete()
|
||||
.run(connection);
|
||||
}
|
||||
}
|
||||
|
@ -75,6 +75,33 @@ public class Administration extends SecureApiRestController {
|
||||
return ResponseEntity.ok(user);
|
||||
}
|
||||
|
||||
@GetMapping("/loginhistory")
|
||||
public ResponseEntity<Object> getLoginHistory(HttpServletRequest request) {
|
||||
String token = request.getHeader("Authorization");
|
||||
token = token.substring(7);
|
||||
String username = authenticationService.getClaimValue(token, "username", String.class);
|
||||
Optional<User> optionalUser = userRepository.retrieveUserByUsername(username);
|
||||
if(optionalUser.isEmpty()) {
|
||||
return ResponseEntity.badRequest().body("User not found");
|
||||
}
|
||||
String userId = optionalUser.get().getId();
|
||||
return ResponseEntity.ok(userLoginRepository.getUserLogins(userId));
|
||||
}
|
||||
|
||||
@DeleteMapping("/loginhistory")
|
||||
public ResponseEntity<Object> deleteLoginHistory(HttpServletRequest request) {
|
||||
String token = request.getHeader("Authorization");
|
||||
token = token.substring(7);
|
||||
String username = authenticationService.getClaimValue(token, "username", String.class);
|
||||
Optional<User> optionalUser = userRepository.retrieveUserByUsername(username);
|
||||
if(optionalUser.isEmpty()) {
|
||||
return ResponseEntity.badRequest().body("User not found");
|
||||
}
|
||||
String userId = optionalUser.get().getId();
|
||||
userLoginRepository.deleteAllUserLogins(userId);
|
||||
return ResponseEntity.ok("User logins deleted successfully!");
|
||||
}
|
||||
|
||||
@DeleteMapping("/files")
|
||||
public ResponseEntity<Object> deleteFiles(HttpServletRequest request) {
|
||||
List<FileUpload> files = fileCleanupService.deleteFiles();
|
||||
|
Reference in New Issue
Block a user