52 lines
1.6 KiB
Java
52 lines
1.6 KiB
Java
package org.ros.chatto.controller;
|
|
|
|
import java.security.Principal;
|
|
import java.util.Optional;
|
|
|
|
import org.ros.chatto.dto.ChatMessageDTO;
|
|
import org.ros.chatto.service.UserService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.core.Authentication;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Controller
|
|
@RequiredArgsConstructor
|
|
@Slf4j
|
|
public class Home {
|
|
|
|
@Autowired
|
|
private final UserService userService;
|
|
|
|
@RequestMapping("/")
|
|
public String showPage(Model model, Principal principal) {
|
|
final String welcomeMessage = Optional.ofNullable(principal).map(p -> {
|
|
return String.format("Welcome back %s!", p.getName());
|
|
}).orElse("Welcome to chatto");
|
|
model.addAttribute("message", welcomeMessage);
|
|
return "home";
|
|
}
|
|
|
|
@GetMapping("/chat")
|
|
public String showChat(Model model, Principal principal) {
|
|
model.addAttribute(new ChatMessageDTO());
|
|
|
|
Authentication authentication = SecurityContextHolder.getContext()
|
|
.getAuthentication();
|
|
|
|
boolean isAdmin = authentication.getAuthorities().stream()
|
|
.anyMatch(r -> r.getAuthority().equals("ROLE_ADMIN")
|
|
|| r.getAuthority().equals("ROLE_SUPER_USER"));
|
|
log.trace("Is admin? " + isAdmin);
|
|
// model.addAttribute("activeUsers",
|
|
// userService.getOtherActiveUsers(principal.getName()));
|
|
return "chat";
|
|
}
|
|
}
|