Делаю веб приложение на Java c использованием:
Spring MVC Spring Security Hibernate
Распределение прав доступа к ресурсам/страничкам происходит через Spring Security. Есть два роль: ADMIN USER Проблема -Когда USER сделал логин ему покажет всех USER-ов в том числе и его Вопрос- как сделать чтоб когда USER сделал логин ему показал всех USER-ов кроме его?
SECURITY Current User
public class CurrentUser extends User {
private am.teletalk.teletalk.model.User user;
public CurrentUser( am.teletalk.teletalk.model.User user) {
super(user.getEmail(), user.getPassword(), AuthorityUtils.createAuthorityList(user.getUserType().name()));
this.user = user;
}
public am.teletalk.teletalk.model.User getUser() {
return user;
}
public int getId() {
return user.getId();
}
}
SECURITY CurrentUserDetailService
public class CurrentUserDetailService implements UserDetailsService {
@Autowired
private UserRepository userRepository;
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
User user = userRepository.findOneByEmail(s);
if (user == null) {
throw new UsernameNotFoundException("User not exist");
}
return new CurrentUser(user);
}
}
Controller
@RequestMapping(value = "/", method = RequestMethod.GET)
public String mainPage(ModelMap map) {
map.addAttribute("allUsers", userRepository.findAll());
map.addAttribute("manager", new User());
return "index";
}
Функция чтобы получить объект пользователя по текущей сессии
public User getCurrentUser() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication instanceof AnonymousAuthenticationToken)
return null;
return (User) authentication.getPrincipal();
}
В самом простом варианте можно фильтрануть список
User currentUser = getCurrentUser();
List<User> users = userRepository.findAll().stream().filter(u->u.getId()!=currentUser.getId()).collect(Collectors.toList());
Ну а дальнейшие улучшения, это ваша фантазия, лучше конечно создать в репозитории метод, который будет доставать всех пользователей, у которых не совпадает Id
, но это уже вам решать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть картинки которые нужно загрузить я хочу сделать так что есть один поток который загружает картинки и есть второй который передает...
Таблица: "ID" INTEGER DEFAULT nextval('zakazchik_id_seq'::regclass) NOT NULL, Сущность:
При запуске любой процедуры Maven в IntelliJ IDEA (clean или build) Maven ругается на мой файл settingxml: