A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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"; } }
|