public AuthenticatedUser(User user) { super(user.getEmail(), user.getPassword(), getAuthorities(user)); this.user = user; }
@RequestMapping(value="/users/{id}", method=RequestMethod.POST) public String updateUser(@ModelAttribute("user") User user, BindingResult result, Model model, RedirectAttributes redirectAttributes) { if(result.hasErrors()){ return viewPrefix+"edit_user"; } User persistedUser = securityService.updateUser(user); logger.debug("Updated user with id : {} and name : {}", persistedUser.getId(), persistedUser.getName()); redirectAttributes.addFlashAttribute("info", "User updates successfully"); return "redirect:/users"; }
public void updatePassword(String email, String token, String password) { User user = findUserByEmail(email); if(user == null) { throw new JCartException("Invalid email address"); } if(!StringUtils.hasText(token) || !token.equals(user.getPasswordResetToken())){ throw new JCartException("Invalid password reset token"); } user.setPassword(password); user.setPasswordResetToken(null); }
@RequestMapping(value="/users", method=RequestMethod.POST) public String createUser(@Valid @ModelAttribute("user") User user, BindingResult result, Model model, RedirectAttributes redirectAttributes) { userValidator.validate(user, result); if(result.hasErrors()){ return viewPrefix+"create_user"; } String password = user.getPassword(); String encodedPwd = passwordEncoder.encode(password); user.setPassword(encodedPwd); User persistedUser = securityService.createUser(user); logger.debug("Created new User with id : {} and name : {}", persistedUser.getId(), persistedUser.getName()); redirectAttributes.addFlashAttribute("info", "User created successfully"); return "redirect:/users"; }
public User createUser(User user) { User userByEmail = findUserByEmail(user.getEmail()); if(userByEmail != null){ throw new JCartException("Email "+user.getEmail()+" already in use"); } List<Role> persistedRoles = new ArrayList<>(); List<Role> roles = user.getRoles(); if(roles != null){ for (Role role : roles) { if(role.getId() != null) { persistedRoles.add(roleRepository.findOne(role.getId())); } } } user.setRoles(persistedRoles); return userRepository.save(user); }
public User updateUser(User user) { User persistedUser = getUserById(user.getId()); if(persistedUser == null){ throw new JCartException("User "+user.getId()+" doesn't exist"); } List<Role> updatedRoles = new ArrayList<>(); List<Role> roles = user.getRoles(); if(roles != null){ for (Role role : roles) { if(role.getId() != null) { updatedRoles.add(roleRepository.findOne(role.getId())); } } } persistedUser.setRoles(updatedRoles); return userRepository.save(persistedUser); }
@RequestMapping(value="/users/{id}", method=RequestMethod.GET) public String editUserForm(@PathVariable Integer id, Model model) { User user = securityService.getUserById(id); Map<Integer, Role> assignedRoleMap = new HashMap<>(); List<Role> roles = user.getRoles(); for (Role role : roles) { assignedRoleMap.put(role.getId(), role); } List<Role> userRoles = new ArrayList<>(); List<Role> allRoles = securityService.getAllRoles(); for (Role role : allRoles) { if(assignedRoleMap.containsKey(role.getId())){ userRoles.add(role); } else { userRoles.add(null); } } user.setRoles(userRoles); model.addAttribute("user",user); //model.addAttribute("rolesList",allRoles); return viewPrefix+"edit_user"; }
@Override public void validate(Object target, Errors errors) { User user = (User) target; String email = user.getEmail(); User userByEmail = securityService.findUserByEmail(email); if(userByEmail != null){ errors.rejectValue("email", "error.exists", new Object[]{email}, "Email "+email+" already in use"); } }
private static Collection<? extends GrantedAuthority> getAuthorities(User user) { Set<String> roleAndPermissions = new HashSet<>(); List<Role> roles = user.getRoles(); for (Role role : roles) { roleAndPermissions.add(role.getName()); List<Permission> permissions = role.getPermissions(); for (Permission permission : permissions) { roleAndPermissions.add("ROLE_"+permission.getName()); } } String[] roleNames = new String[roleAndPermissions.size()]; Collection<GrantedAuthority> authorities = AuthorityUtils.createAuthorityList(roleAndPermissions.toArray(roleNames)); return authorities; } }
@RequestMapping(value="/users/new", method=RequestMethod.GET) public String createUserForm(Model model) { User user = new User(); model.addAttribute("user",user); //model.addAttribute("rolesList",securityService.getAllRoles()); return viewPrefix+"create_user"; }
public boolean verifyPasswordResetToken(String email, String token) { User user = findUserByEmail(email); if(user == null) { throw new JCartException("Invalid email address"); } if(!StringUtils.hasText(token) || !token.equals(user.getPasswordResetToken())){ return false; } return true; }
public String resetPassword(String email) { User user = findUserByEmail(email); if(user == null) { throw new JCartException("Invalid email address"); } String uuid = UUID.randomUUID().toString(); user.setPasswordResetToken(uuid); return uuid; }