parent
							
								
									9e8876d34e
								
							
						
					
					
						commit
						884826b3b8
					
				| @ -0,0 +1,75 @@ | |||||||
|  | /* | ||||||
|  |  This file is part of Libresonic. | ||||||
|  | 
 | ||||||
|  |  Libresonic is free software: you can redistribute it and/or modify | ||||||
|  |  it under the terms of the GNU General Public License as published by | ||||||
|  |  the Free Software Foundation, either version 3 of the License, or | ||||||
|  |  (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |  Libresonic is distributed in the hope that it will be useful, | ||||||
|  |  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |  You should have received a copy of the GNU General Public License | ||||||
|  |  along with Libresonic.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | 
 | ||||||
|  |  Copyright 2016 (C) Libresonic Authors | ||||||
|  |  Based upon Subsonic, Copyright 2009 (C) Sindre Mehus | ||||||
|  |  */ | ||||||
|  | package org.libresonic.player.command; | ||||||
|  | 
 | ||||||
|  | import org.libresonic.player.controller.*; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Command used in {@link PasswordSettingsController}. | ||||||
|  |  * | ||||||
|  |  * @author Sindre Mehus | ||||||
|  |  */ | ||||||
|  | public class PasswordSettingsCommand { | ||||||
|  |     private String username; | ||||||
|  |     private String password; | ||||||
|  |     private String confirmPassword; | ||||||
|  |     private boolean ldapAuthenticated; | ||||||
|  |     private boolean toast; | ||||||
|  | 
 | ||||||
|  |     public String getUsername() { | ||||||
|  |         return username; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setUsername(String username) { | ||||||
|  |         this.username = username; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getPassword() { | ||||||
|  |         return password; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setPassword(String password) { | ||||||
|  |         this.password = password; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public String getConfirmPassword() { | ||||||
|  |         return confirmPassword; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setConfirmPassword(String confirmPassword) { | ||||||
|  |         this.confirmPassword = confirmPassword; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public boolean isLdapAuthenticated() { | ||||||
|  |         return ldapAuthenticated; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setLdapAuthenticated(boolean ldapAuthenticated) { | ||||||
|  |         this.ldapAuthenticated = ldapAuthenticated; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public boolean isToast() { | ||||||
|  |         return toast; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setToast(boolean toast) { | ||||||
|  |         this.toast = toast; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,89 @@ | |||||||
|  | /* | ||||||
|  |  This file is part of Libresonic. | ||||||
|  | 
 | ||||||
|  |  Libresonic is free software: you can redistribute it and/or modify | ||||||
|  |  it under the terms of the GNU General Public License as published by | ||||||
|  |  the Free Software Foundation, either version 3 of the License, or | ||||||
|  |  (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |  Libresonic is distributed in the hope that it will be useful, | ||||||
|  |  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |  You should have received a copy of the GNU General Public License | ||||||
|  |  along with Libresonic.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | 
 | ||||||
|  |  Copyright 2016 (C) Libresonic Authors | ||||||
|  |  Based upon Subsonic, Copyright 2009 (C) Sindre Mehus | ||||||
|  |  */ | ||||||
|  | package org.libresonic.player.controller; | ||||||
|  | 
 | ||||||
|  | import org.libresonic.player.validator.PasswordSettingsValidator; | ||||||
|  | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.http.HttpRequest; | ||||||
|  | import org.springframework.stereotype.*; | ||||||
|  | import org.springframework.validation.BindingResult; | ||||||
|  | import org.springframework.validation.annotation.Validated; | ||||||
|  | import org.springframework.web.bind.WebDataBinder; | ||||||
|  | import org.springframework.web.bind.annotation.*; | ||||||
|  | import org.springframework.web.servlet.ModelAndView; | ||||||
|  | import org.springframework.web.servlet.mvc.*; | ||||||
|  | import org.libresonic.player.service.*; | ||||||
|  | import org.libresonic.player.command.*; | ||||||
|  | import org.libresonic.player.domain.*; | ||||||
|  | import org.springframework.web.servlet.mvc.support.RedirectAttributes; | ||||||
|  | 
 | ||||||
|  | import javax.servlet.http.*; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Controller for the page used to change password. | ||||||
|  |  * | ||||||
|  |  * @author Sindre Mehus | ||||||
|  |  */ | ||||||
|  | @org.springframework.stereotype.Controller | ||||||
|  | @RequestMapping("/passwordSettings") | ||||||
|  | @SessionAttributes( value="command", types={PasswordSettingsCommand.class} ) | ||||||
|  | public class PasswordSettingsController { | ||||||
|  | 
 | ||||||
|  |     @Autowired | ||||||
|  |     private SecurityService securityService; | ||||||
|  |     @Autowired | ||||||
|  |     private PasswordSettingsValidator passwordSettingsValidator; | ||||||
|  | 
 | ||||||
|  |     @InitBinder | ||||||
|  |     protected void initBinder(WebDataBinder binder) { | ||||||
|  |         binder.addValidators(passwordSettingsValidator); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |   /*  @ModelAttribute | ||||||
|  |     protected Object formBackingObject(HttpServletRequest request) throws Exception { | ||||||
|  |         PasswordSettingsCommand command = new PasswordSettingsCommand(); | ||||||
|  |         User user = securityService.getCurrentUser(request); | ||||||
|  |         command.setUsername(user.getUsername()); | ||||||
|  |         command.setLdapAuthenticated(user.isLdapAuthenticated()); | ||||||
|  |         return command; | ||||||
|  |     }*/ | ||||||
|  | 
 | ||||||
|  |     @RequestMapping(method = RequestMethod.GET) | ||||||
|  |     protected ModelAndView displayForm(HttpServletRequest request) throws Exception { | ||||||
|  |         PasswordSettingsCommand command = new PasswordSettingsCommand(); | ||||||
|  |         User user = securityService.getCurrentUser(request); | ||||||
|  |         command.setUsername(user.getUsername()); | ||||||
|  |         command.setLdapAuthenticated(user.isLdapAuthenticated()); | ||||||
|  |         return new ModelAndView("passwordSettings","command",command); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @RequestMapping(method = RequestMethod.POST) | ||||||
|  |     protected String doSubmitAction(@ModelAttribute("command") @Validated PasswordSettingsCommand command) throws Exception { | ||||||
|  |         User user = securityService.getUserByName(command.getUsername()); | ||||||
|  |         user.setPassword(command.getPassword()); | ||||||
|  |         securityService.updateUser(user); | ||||||
|  | 
 | ||||||
|  |         command.setPassword(null); | ||||||
|  |         command.setConfirmPassword(null); | ||||||
|  |         command.setToast(true); | ||||||
|  |         return "passwordSettings"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,48 @@ | |||||||
|  | /* | ||||||
|  |  This file is part of Libresonic. | ||||||
|  | 
 | ||||||
|  |  Libresonic is free software: you can redistribute it and/or modify | ||||||
|  |  it under the terms of the GNU General Public License as published by | ||||||
|  |  the Free Software Foundation, either version 3 of the License, or | ||||||
|  |  (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |  Libresonic is distributed in the hope that it will be useful, | ||||||
|  |  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |  You should have received a copy of the GNU General Public License | ||||||
|  |  along with Libresonic.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | 
 | ||||||
|  |  Copyright 2016 (C) Libresonic Authors | ||||||
|  |  Based upon Subsonic, Copyright 2009 (C) Sindre Mehus | ||||||
|  |  */ | ||||||
|  | package org.libresonic.player.validator; | ||||||
|  | 
 | ||||||
|  | import org.springframework.stereotype.Component; | ||||||
|  | import org.springframework.validation.*; | ||||||
|  | import org.libresonic.player.command.*; | ||||||
|  | import org.libresonic.player.controller.*; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Validator for {@link PasswordSettingsController}. | ||||||
|  |  * | ||||||
|  |  * @author Sindre Mehus | ||||||
|  |  */ | ||||||
|  | @Component | ||||||
|  | public class PasswordSettingsValidator implements Validator { | ||||||
|  | 
 | ||||||
|  |     public boolean supports(Class clazz) { | ||||||
|  |         return clazz.equals(PasswordSettingsCommand.class); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void validate(Object obj, Errors errors) { | ||||||
|  |         PasswordSettingsCommand command = (PasswordSettingsCommand) obj; | ||||||
|  | 
 | ||||||
|  |         if (command.getPassword() == null || command.getPassword().length() == 0) { | ||||||
|  |             errors.rejectValue("password", "usersettings.nopassword"); | ||||||
|  |         } else if (!command.getPassword().equals(command.getConfirmPassword())) { | ||||||
|  |             errors.rejectValue("password", "usersettings.wrongpassword"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in new issue