diff --git a/libresonic-assembly/pom.xml b/libresonic-assembly/pom.xml index 7f2b49bc..d77e8e89 100644 --- a/libresonic-assembly/pom.xml +++ b/libresonic-assembly/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-booter/pom.xml b/libresonic-booter/pom.xml index f4a68915..8831c500 100644 --- a/libresonic-booter/pom.xml +++ b/libresonic-booter/pom.xml @@ -8,7 +8,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-installer-debian/pom.xml b/libresonic-installer-debian/pom.xml index ac53d340..39baa5f9 100644 --- a/libresonic-installer-debian/pom.xml +++ b/libresonic-installer-debian/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-installer-mac/pom.xml b/libresonic-installer-mac/pom.xml index 432d5085..a20abb07 100644 --- a/libresonic-installer-mac/pom.xml +++ b/libresonic-installer-mac/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-installer-rpm/pom.xml b/libresonic-installer-rpm/pom.xml index 74e86211..794d29b3 100644 --- a/libresonic-installer-rpm/pom.xml +++ b/libresonic-installer-rpm/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-installer-windows/pom.xml b/libresonic-installer-windows/pom.xml index e9567211..b213a361 100644 --- a/libresonic-installer-windows/pom.xml +++ b/libresonic-installer-windows/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-main/pom.xml b/libresonic-main/pom.xml index bd604eba..910b1119 100644 --- a/libresonic-main/pom.xml +++ b/libresonic-main/pom.xml @@ -9,7 +9,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 @@ -332,33 +332,28 @@ org.apache.cxf - cxf-rt-frontend-jaxws + cxf-core ${cxf.version} org.apache.cxf - cxf-rt-bindings-soap + cxf-rt-frontend-jaxws ${cxf.version} org.apache.cxf - cxf-rt-databinding-jaxb + cxf-rt-bindings-soap ${cxf.version} org.apache.cxf - cxf-api + cxf-rt-databinding-jaxb ${cxf.version} - - org.apache.cxf - cxf-common-utilities - ${cxf.version} - diff --git a/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java deleted file mode 100644 index 8f12e554..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - 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 . - - 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; - } -} \ No newline at end of file diff --git a/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java deleted file mode 100644 index f20014dc..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - 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 . - - Copyright 2016 (C) Libresonic Authors - Based upon Subsonic, Copyright 2009 (C) Sindre Mehus - */ -package org.libresonic.player.command; - -import org.apache.commons.lang.StringUtils; - -import org.libresonic.player.controller.PremiumSettingsController; -import org.libresonic.player.domain.LicenseInfo; -import org.libresonic.player.domain.User; - -/** - * Command used in {@link PremiumSettingsController}. - * - * @author Sindre Mehus - */ -public class PremiumSettingsCommand { - - private String path; - private String brand; - private LicenseInfo licenseInfo; - private String licenseCode; - private boolean forceChange; - private boolean submissionError; - private User user; - private boolean toast; - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - public String getBrand() { - return brand; - } - - public void setBrand(String brand) { - this.brand = brand; - } - - public LicenseInfo getLicenseInfo() { - return licenseInfo; - } - - public String getLicenseCode() { - return licenseCode; - } - - public void setLicenseCode(String licenseCode) { - this.licenseCode = StringUtils.trimToNull(licenseCode); - } - - public void setLicenseInfo(LicenseInfo licenseInfo) { - this.licenseInfo = licenseInfo; - } - - public boolean isForceChange() { - return forceChange; - } - - public void setForceChange(boolean forceChange) { - this.forceChange = forceChange; - } - - public boolean isSubmissionError() { - return submissionError; - } - - public void setSubmissionError(boolean submissionError) { - this.submissionError = submissionError; - } - - public void setUser(User user) { - this.user = user; - } - - public User getUser() { - return user; - } - - public void setToast(boolean toast) { - this.toast = toast; - } - - public boolean isToast() { - return toast; - } -} diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java index 3622bedc..6cbc2392 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java @@ -19,24 +19,33 @@ */ package org.libresonic.player.controller; +import org.apache.commons.lang.StringUtils; import org.libresonic.player.command.AdvancedSettingsCommand; import org.libresonic.player.service.SettingsService; -import org.springframework.web.servlet.mvc.SimpleFormController; -import org.apache.commons.lang.StringUtils; - -import javax.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; /** * Controller for the page used to administrate advanced settings. * * @author Sindre Mehus */ -public class AdvancedSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/advancedSettings") +public class AdvancedSettingsController { + @Autowired private SettingsService settingsService; - @Override - protected Object formBackingObject(HttpServletRequest request) throws Exception { + // TODO replace with @GetMapping in Spring 4 + @RequestMapping(method = RequestMethod.GET) + protected String formBackingObject(Model model) throws Exception { AdvancedSettingsCommand command = new AdvancedSettingsCommand(); command.setDownloadLimit(String.valueOf(settingsService.getDownloadBitrateLimit())); command.setUploadLimit(String.valueOf(settingsService.getUploadBitrateLimit())); @@ -53,12 +62,12 @@ public class AdvancedSettingsController extends SimpleFormController { command.setSmtpUser(settingsService.getSmtpUser()); command.setSmtpFrom(settingsService.getSmtpFrom()); - return command; + model.addAttribute("command", command); + return "advancedSettings"; } - @Override - protected void doSubmitAction(Object comm) throws Exception { - AdvancedSettingsCommand command = (AdvancedSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute AdvancedSettingsCommand command,Model model) throws Exception { command.setToast(true); command.setReloadNeeded(false); @@ -90,10 +99,8 @@ public class AdvancedSettingsController extends SimpleFormController { settingsService.setSmtpPassword(command.getSmtpPassword()); } - settingsService.save(); + model.addAttribute("command", command); + return "advancedSettings"; } - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java index 9c1b5ffb..b549ee56 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java @@ -19,26 +19,37 @@ */ package org.libresonic.player.controller; -import java.util.Locale; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.web.servlet.mvc.SimpleFormController; - import org.libresonic.player.command.GeneralSettingsCommand; import org.libresonic.player.domain.Theme; import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.Locale; /** * Controller for the page used to administrate general settings. * * @author Sindre Mehus */ -public class GeneralSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/generalSettings") +public class GeneralSettingsController { + @Autowired private SettingsService settingsService; - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "generalSettings"; + } + + @ModelAttribute + protected void formBackingObject(Model model) throws Exception { GeneralSettingsCommand command = new GeneralSettingsCommand(); command.setCoverArtFileTypes(settingsService.getCoverArtFileTypes()); command.setIgnoredArticles(settingsService.getIgnoredArticles()); @@ -76,12 +87,11 @@ public class GeneralSettingsController extends SimpleFormController { } command.setLocales(localeStrings); - return command; - + model.addAttribute("command",command); } - protected void doSubmitAction(Object comm) throws Exception { - GeneralSettingsCommand command = (GeneralSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute("command") GeneralSettingsCommand command, Model model) throws Exception { int themeIndex = Integer.parseInt(command.getThemeIndex()); Theme theme = settingsService.getAvailableThemes()[themeIndex]; @@ -112,9 +122,8 @@ public class GeneralSettingsController extends SimpleFormController { settingsService.setThemeId(theme.getId()); settingsService.setLocale(locale); settingsService.save(); - } - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; + return "redirect:generalSettings.view"; } + } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java new file mode 100644 index 00000000..1c74da4d --- /dev/null +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java @@ -0,0 +1,66 @@ +package org.libresonic.player.controller; + +import org.libresonic.player.Logger; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.view.RedirectView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.Map; + +/** + * Spring MVC Controller that serves the login page. + */ +@Controller +@RequestMapping("/login") +public class LoginController { + + + private static final Logger LOG = Logger.getLogger(LoginController.class); + + @Autowired + private SecurityService securityService; + @Autowired + private SettingsService settingsService; + + @RequestMapping(method = { RequestMethod.GET, RequestMethod.POST }) + public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception { + + // Auto-login if "user" and "password" parameters are given. + String username = request.getParameter("user"); + String password = request.getParameter("password"); + if (username != null && password != null) { + username = StringUtil.urlEncode(username); + password = StringUtil.urlEncode(password); + return new ModelAndView(new RedirectView("/j_spring_security_check?"+ + UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY+"=" + username + + "&"+UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY+"=" + password + )); + } + + Map map = new HashMap(); + map.put("logout", request.getParameter("logout") != null); + map.put("error", request.getParameter("error") != null); + map.put("brand", settingsService.getBrand()); + map.put("loginMessage", settingsService.getLoginMessage()); + + User admin = securityService.getUserByName(User.USERNAME_ADMIN); + if (User.USERNAME_ADMIN.equals(admin.getPassword())) { + map.put("insecure", true); + } + + return new ModelAndView("login", "model", map); + } + +} diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java index c332e2e4..31dd871d 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java @@ -64,34 +64,6 @@ public class MultiController extends MultiActionController { private SettingsService settingsService; private PlaylistService playlistService; - public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception { - - // Auto-login if "user" and "password" parameters are given. - String username = request.getParameter("user"); - String password = request.getParameter("password"); - if (username != null && password != null) { - username = StringUtil.urlEncode(username); - password = StringUtil.urlEncode(password); - return new ModelAndView(new RedirectView("/j_spring_security_check?"+ - UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY+"=" + username + - "&"+UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY+"=" + password - )); - } - - Map map = new HashMap(); - map.put("logout", request.getParameter("logout") != null); - map.put("error", request.getParameter("error") != null); - map.put("brand", settingsService.getBrand()); - map.put("loginMessage", settingsService.getLoginMessage()); - - User admin = securityService.getUserByName(User.USERNAME_ADMIN); - if (User.USERNAME_ADMIN.equals(admin.getPassword())) { - map.put("insecure", true); - } - - return new ModelAndView("login", "model", map); - } - public ModelAndView recover(HttpServletRequest request, HttpServletResponse response) throws Exception { Map map = new HashMap(); diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java index eaef1b65..47a66562 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java @@ -26,12 +26,14 @@ import org.libresonic.player.dao.MediaFileDao; import org.libresonic.player.domain.MusicFolder; import org.libresonic.player.service.MediaScannerService; import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.SimpleFormController; -import org.springframework.web.servlet.view.RedirectView; - -import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @@ -40,22 +42,38 @@ import java.util.List; * * @author Sindre Mehus */ -public class MusicFolderSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/musicFolderSettings") +public class MusicFolderSettingsController { + @Autowired private SettingsService settingsService; + @Autowired private MediaScannerService mediaScannerService; + @Autowired private ArtistDao artistDao; + @Autowired private AlbumDao albumDao; + @Autowired private MediaFileDao mediaFileDao; - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "musicFolderSettings"; + } + + @ModelAttribute + protected void formBackingObject(@RequestParam(value = "scanNow",required = false) String scanNow, + @RequestParam(value = "expunge",required = false) String expunge, + @RequestParam(value = "reload",required = false) String reload, + Model model) throws Exception { MusicFolderSettingsCommand command = new MusicFolderSettingsCommand(); - if (request.getParameter("scanNow") != null) { + if (scanNow != null) { settingsService.clearMusicFolderCache(); mediaScannerService.scanLibrary(); } - if (request.getParameter("expunge") != null) { + if (expunge != null) { expunge(); } @@ -66,10 +84,12 @@ public class MusicFolderSettingsController extends SimpleFormController { command.setScanning(mediaScannerService.isScanning()); command.setMusicFolders(wrap(settingsService.getAllMusicFolders(true, true))); command.setNewMusicFolder(new MusicFolderSettingsCommand.MusicFolderInfo()); - command.setReload(request.getParameter("reload") != null || request.getParameter("scanNow") != null); - return command; + command.setReload(reload != null || scanNow != null); + + model.addAttribute("command",command); } + private void expunge() { artistDao.expunge(); albumDao.expunge(); @@ -84,9 +104,8 @@ public class MusicFolderSettingsController extends SimpleFormController { return result; } - @Override - protected ModelAndView onSubmit(Object comm) throws Exception { - MusicFolderSettingsCommand command = (MusicFolderSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String onSubmit(@ModelAttribute("command") MusicFolderSettingsCommand command, Model model) throws Exception { for (MusicFolderSettingsCommand.MusicFolderInfo musicFolderInfo : command.getMusicFolders()) { if (musicFolderInfo.isDelete()) { @@ -111,26 +130,7 @@ public class MusicFolderSettingsController extends SimpleFormController { settingsService.save(); mediaScannerService.schedule(); - return new ModelAndView(new RedirectView(getSuccessView() + ".view?reload")); - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; + return "redirect:musicFolderSettings.view"; } - public void setMediaScannerService(MediaScannerService mediaScannerService) { - this.mediaScannerService = mediaScannerService; - } - - public void setArtistDao(ArtistDao artistDao) { - this.artistDao = artistDao; - } - - public void setAlbumDao(AlbumDao albumDao) { - this.albumDao = albumDao; - } - - public void setMediaFileDao(MediaFileDao mediaFileDao) { - this.mediaFileDao = mediaFileDao; - } } \ No newline at end of file diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java index 08824ccf..ed341e94 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java @@ -19,29 +19,36 @@ */ package org.libresonic.player.controller; -import java.util.Random; - -import javax.servlet.http.HttpServletRequest; - import org.apache.commons.lang.StringUtils; -import org.springframework.web.servlet.mvc.SimpleFormController; - import org.libresonic.player.command.NetworkSettingsCommand; import org.libresonic.player.domain.UrlRedirectType; import org.libresonic.player.service.NetworkService; import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.Random; /** * Controller for the page used to change the network settings. * * @author Sindre Mehus */ -public class NetworkSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/networkSettings") +public class NetworkSettingsController { + @Autowired private SettingsService settingsService; + @Autowired private NetworkService networkService; - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @ModelAttribute + protected void formBackingObject(Model model) throws Exception { NetworkSettingsCommand command = new NetworkSettingsCommand(); command.setPortForwardingEnabled(settingsService.isPortForwardingEnabled()); command.setUrlRedirectionEnabled(settingsService.isUrlRedirectionEnabled()); @@ -50,12 +57,16 @@ public class NetworkSettingsController extends SimpleFormController { command.setUrlRedirectCustomUrl(settingsService.getUrlRedirectCustomUrl()); command.setPort(settingsService.getPort()); command.setLicenseInfo(settingsService.getLicenseInfo()); + model.addAttribute("command",command); + } - return command; + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "networkSettings"; } - protected void doSubmitAction(Object cmd) throws Exception { - NetworkSettingsCommand command = (NetworkSettingsCommand) cmd; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute("command") NetworkSettingsCommand command, Model model) throws Exception { command.setToast(true); settingsService.setPortForwardingEnabled(command.isPortForwardingEnabled()); @@ -72,13 +83,7 @@ public class NetworkSettingsController extends SimpleFormController { settingsService.save(); networkService.initPortForwarding(0); networkService.initUrlRedirection(true); + return "networkSettings"; } - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setNetworkService(NetworkService networkService) { - this.networkService = networkService; - } } \ No newline at end of file diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java deleted file mode 100644 index 3fb1e1ce..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - 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 . - - Copyright 2016 (C) Libresonic Authors - Based upon Subsonic, Copyright 2009 (C) Sindre Mehus - */ -package org.libresonic.player.controller; - -import org.springframework.web.servlet.mvc.*; -import org.libresonic.player.service.*; -import org.libresonic.player.command.*; -import org.libresonic.player.domain.*; - -import javax.servlet.http.*; - -/** - * Controller for the page used to change password. - * - * @author Sindre Mehus - */ -public class PasswordSettingsController extends SimpleFormController { - - private SecurityService securityService; - - 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; - } - - protected void doSubmitAction(Object comm) throws Exception { - PasswordSettingsCommand command = (PasswordSettingsCommand) comm; - User user = securityService.getUserByName(command.getUsername()); - user.setPassword(command.getPassword()); - securityService.updateUser(user); - - command.setPassword(null); - command.setConfirmPassword(null); - command.setToast(true); - } - - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } -} diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java index 3a0cb5f0..f09afc82 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java @@ -19,35 +19,38 @@ */ package org.libresonic.player.controller; -import java.util.Date; -import java.util.Locale; - -import javax.servlet.http.HttpServletRequest; - import org.apache.commons.lang.StringUtils; -import org.springframework.web.servlet.mvc.SimpleFormController; - import org.libresonic.player.command.PersonalSettingsCommand; -import org.libresonic.player.domain.AlbumListType; -import org.libresonic.player.domain.AvatarScheme; -import org.libresonic.player.domain.Theme; -import org.libresonic.player.domain.User; -import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.domain.*; import org.libresonic.player.service.SecurityService; import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.Locale; /** * Controller for the page used to administrate per-user settings. * * @author Sindre Mehus */ -public class PersonalSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/personalSettings") +public class PersonalSettingsController { + @Autowired private SettingsService settingsService; + @Autowired private SecurityService securityService; - @Override - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @ModelAttribute + protected void formBackingObject(HttpServletRequest request,Model model) throws Exception { PersonalSettingsCommand command = new PersonalSettingsCommand(); User user = securityService.getCurrentUser(request); @@ -100,12 +103,16 @@ public class PersonalSettingsController extends SimpleFormController { } } - return command; + model.addAttribute("command",command); + } + + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "personalSettings"; } - @Override - protected void doSubmitAction(Object comm) throws Exception { - PersonalSettingsCommand command = (PersonalSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute("command") PersonalSettingsCommand command,Model model) throws Exception { int localeIndex = Integer.parseInt(command.getLocaleIndex()); Locale locale = null; @@ -152,6 +159,9 @@ public class PersonalSettingsController extends SimpleFormController { settingsService.updateUserSettings(settings); command.setReloadNeeded(true); + + model.addAttribute("command",command); + return "personalSettings"; } private int getAvatarId(UserSettings userSettings) { @@ -178,11 +188,4 @@ public class PersonalSettingsController extends SimpleFormController { return avatarId; } - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java index 2a6d5d28..433467bb 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java @@ -19,37 +19,46 @@ */ package org.libresonic.player.controller; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - import org.apache.commons.lang.StringUtils; -import org.springframework.web.servlet.mvc.SimpleFormController; - import org.libresonic.player.command.PlayerSettingsCommand; -import org.libresonic.player.domain.Player; -import org.libresonic.player.domain.PlayerTechnology; -import org.libresonic.player.domain.TranscodeScheme; -import org.libresonic.player.domain.Transcoding; -import org.libresonic.player.domain.User; +import org.libresonic.player.domain.*; import org.libresonic.player.service.PlayerService; import org.libresonic.player.service.SecurityService; import org.libresonic.player.service.TranscodingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; /** * Controller for the player settings page. * * @author Sindre Mehus */ -public class PlayerSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/playerSettings") +public class PlayerSettingsController { + @Autowired private PlayerService playerService; + @Autowired private SecurityService securityService; + @Autowired private TranscodingService transcodingService; - @Override - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "playerSettings"; + } + + @ModelAttribute + protected void formBackingObject(HttpServletRequest request, Model model) throws Exception { handleRequestParameters(request); List players = getPlayers(request); @@ -91,12 +100,11 @@ public class PlayerSettingsController extends SimpleFormController { command.setPlayers(players.toArray(new Player[players.size()])); command.setAdmin(user.isAdminRole()); - return command; + model.addAttribute("command",command); } - @Override - protected void doSubmitAction(Object comm) throws Exception { - PlayerSettingsCommand command = (PlayerSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute("command") PlayerSettingsCommand command, Model model) throws Exception { Player player = playerService.getPlayerById(command.getPlayerId()); player.setAutoControlEnabled(command.isAutoControlEnabled()); @@ -110,6 +118,7 @@ public class PlayerSettingsController extends SimpleFormController { transcodingService.setTranscodingsForPlayer(player, command.getActiveTranscodingIds()); command.setReloadNeeded(true); + return "redirect:playerSettings.view"; } private List getPlayers(HttpServletRequest request) { @@ -135,15 +144,4 @@ public class PlayerSettingsController extends SimpleFormController { } } - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } - - public void setPlayerService(PlayerService playerService) { - this.playerService = playerService; - } - - public void setTranscodingService(TranscodingService transcodingService) { - this.transcodingService = transcodingService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java index 3608b2f2..bec26a95 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java @@ -19,35 +19,45 @@ */ package org.libresonic.player.controller; -import org.springframework.web.servlet.mvc.SimpleFormController; -import org.libresonic.player.service.SettingsService; -import org.libresonic.player.service.PodcastService; import org.libresonic.player.command.PodcastSettingsCommand; - -import javax.servlet.http.HttpServletRequest; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; /** * Controller for the page used to administrate the Podcast receiver. * * @author Sindre Mehus */ -public class PodcastSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/podcastSettings") +public class PodcastSettingsController { + @Autowired private SettingsService settingsService; + @Autowired private PodcastService podcastService; - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @RequestMapping(method = RequestMethod.GET) + protected String formBackingObject(Model model) throws Exception { PodcastSettingsCommand command = new PodcastSettingsCommand(); command.setInterval(String.valueOf(settingsService.getPodcastUpdateInterval())); command.setEpisodeRetentionCount(String.valueOf(settingsService.getPodcastEpisodeRetentionCount())); command.setEpisodeDownloadCount(String.valueOf(settingsService.getPodcastEpisodeDownloadCount())); command.setFolder(settingsService.getPodcastFolder()); - return command; + + model.addAttribute("command",command); + return "podcastSettings"; } - protected void doSubmitAction(Object comm) throws Exception { - PodcastSettingsCommand command = (PodcastSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute PodcastSettingsCommand command, Model model) throws Exception { command.setToast(true); settingsService.setPodcastUpdateInterval(Integer.parseInt(command.getInterval())); @@ -57,13 +67,8 @@ public class PodcastSettingsController extends SimpleFormController { settingsService.save(); podcastService.schedule(); + model.addAttribute("command",command); + return "podcastSettings"; } - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setPodcastService(PodcastService podcastService) { - this.podcastService = podcastService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java deleted file mode 100644 index 39c29a6c..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - 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 . - - Copyright 2016 (C) Libresonic Authors - Based upon Subsonic, Copyright 2009 (C) Sindre Mehus - */ -package org.libresonic.player.controller; - -import java.util.Date; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.validation.BindException; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.SimpleFormController; - -import org.libresonic.player.command.PremiumSettingsCommand; -import org.libresonic.player.service.SecurityService; -import org.libresonic.player.service.SettingsService; - -/** - * Controller for the Subsonic Premium page. - * - * @author Sindre Mehus - */ -public class PremiumSettingsController extends SimpleFormController { - - private SettingsService settingsService; - private SecurityService securityService; - - protected Object formBackingObject(HttpServletRequest request) throws Exception { - PremiumSettingsCommand command = new PremiumSettingsCommand(); - command.setPath(request.getParameter("path")); - command.setForceChange(request.getParameter("change") != null); - command.setLicenseInfo(settingsService.getLicenseInfo()); - command.setBrand(settingsService.getBrand()); - command.setUser(securityService.getCurrentUser(request)); - return command; - } - - protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object com, BindException errors) - throws Exception { - PremiumSettingsCommand command = (PremiumSettingsCommand) com; - Date now = new Date(); - - settingsService.setLicenseCode(command.getLicenseCode()); - settingsService.setLicenseEmail(command.getLicenseInfo().getLicenseEmail()); - settingsService.setLicenseDate(now); - settingsService.save(); - settingsService.scheduleLicenseValidation(); - - // Reflect changes in view. The validator will validate the license asynchronously. - command.setLicenseInfo(settingsService.getLicenseInfo()); - command.setToast(true); - - return new ModelAndView(getSuccessView(), errors.getModel()); - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } -} \ No newline at end of file diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java index a357b120..197d96b8 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java @@ -19,50 +19,57 @@ */ package org.libresonic.player.controller; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import org.apache.commons.lang.StringUtils; -import org.springframework.validation.BindException; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.SimpleFormController; - import org.libresonic.player.command.SearchCommand; -import org.libresonic.player.domain.MusicFolder; -import org.libresonic.player.domain.SearchCriteria; -import org.libresonic.player.domain.SearchResult; -import org.libresonic.player.domain.User; -import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.domain.*; import org.libresonic.player.service.PlayerService; import org.libresonic.player.service.SearchService; import org.libresonic.player.service.SecurityService; import org.libresonic.player.service.SettingsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * Controller for the search page. * * @author Sindre Mehus */ -public class SearchController extends SimpleFormController { +@Controller +@RequestMapping("/search") +public class SearchController { private static final int MATCH_COUNT = 25; + @Autowired private SecurityService securityService; + @Autowired private SettingsService settingsService; + @Autowired private PlayerService playerService; + @Autowired private SearchService searchService; - @Override - protected Object formBackingObject(HttpServletRequest request) throws Exception { - return new SearchCommand(); + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "search"; } - @Override - protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object com, BindException errors) + @ModelAttribute + protected void formBackingObject(HttpServletRequest request, Model model) throws Exception { + model.addAttribute("command",new SearchCommand()); + } + + @RequestMapping(method = RequestMethod.POST) + protected String onSubmit(HttpServletRequest request, HttpServletResponse response,@ModelAttribute("command") SearchCommand command, Model model) throws Exception { - SearchCommand command = (SearchCommand) com; User user = securityService.getCurrentUser(request); UserSettings userSettings = settingsService.getUserSettings(user.getUsername()); @@ -90,22 +97,7 @@ public class SearchController extends SimpleFormController { command.setPlayer(playerService.getPlayer(request, response)); } - return new ModelAndView(getSuccessView(), errors.getModel()); + return "search"; } - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setPlayerService(PlayerService playerService) { - this.playerService = playerService; - } - - public void setSearchService(SearchService searchService) { - this.searchService = searchService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java index 4a913f9f..02b8c294 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java @@ -19,6 +19,7 @@ */ package org.libresonic.player.controller; +import org.apache.commons.lang.StringUtils; import org.libresonic.player.command.UserSettingsCommand; import org.libresonic.player.domain.MusicFolder; import org.libresonic.player.domain.TranscodeScheme; @@ -28,14 +29,17 @@ import org.libresonic.player.service.SecurityService; import org.libresonic.player.service.SettingsService; import org.libresonic.player.service.TranscodingService; import org.libresonic.player.util.Util; - -import org.apache.commons.lang.StringUtils; +import org.libresonic.player.validator.UserSettingsValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestUtils; -import org.springframework.web.servlet.mvc.SimpleFormController; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; - import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -45,14 +49,32 @@ import java.util.List; * * @author Sindre Mehus */ -public class UserSettingsController extends SimpleFormController { +@Controller +@RequestMapping("/userSettings") +@SessionAttributes(value = "command") +public class UserSettingsController { + @Autowired private SecurityService securityService; + @Autowired private SettingsService settingsService; + @Autowired private TranscodingService transcodingService; + @Autowired + private UserSettingsValidator userSettingsValidator; + + @InitBinder + protected void initBinder(WebDataBinder binder) { + binder.addValidators(userSettingsValidator); + } + + @RequestMapping(method = RequestMethod.GET) + protected String displayForm() throws Exception { + return "userSettings"; + } - @Override - protected Object formBackingObject(HttpServletRequest request) throws Exception { + @ModelAttribute + protected void formBackingObject(HttpServletRequest request,Model model) throws Exception { UserSettingsCommand command = new UserSettingsCommand(); User user = getUser(request); @@ -77,7 +99,7 @@ public class UserSettingsController extends SimpleFormController { command.setAllMusicFolders(settingsService.getAllMusicFolders()); command.setAllowedMusicFolderIds(Util.toIntArray(getAllowedMusicFolderIds(user))); - return command; + model.addAttribute("command",command); } private User getUser(HttpServletRequest request) throws ServletRequestBindingException { @@ -103,9 +125,8 @@ public class UserSettingsController extends SimpleFormController { return result; } - @Override - protected void doSubmitAction(Object comm) throws Exception { - UserSettingsCommand command = (UserSettingsCommand) comm; + @RequestMapping(method = RequestMethod.POST) + protected String doSubmitAction(@ModelAttribute("command") @Validated UserSettingsCommand command) throws Exception { if (command.isDeleteUser()) { deleteUser(command); @@ -115,6 +136,8 @@ public class UserSettingsController extends SimpleFormController { updateUser(command); } resetCommand(command); + + return "userSettings"; } private void deleteUser(UserSettingsCommand command) { @@ -176,15 +199,4 @@ public class UserSettingsController extends SimpleFormController { command.setReload(true); } - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } - - public void setTranscodingService(TranscodingService transcodingService) { - this.transcodingService = transcodingService; - } } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java index 6572fac7..2dec6169 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java @@ -107,7 +107,7 @@ public class RatingDao extends AbstractDao { */ public Integer getRatingForUser(String username, MediaFile mediaFile) { try { - return getJdbcTemplate().queryForInt("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()}); + return getJdbcTemplate().queryForObject("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()},Integer.class); } catch (EmptyResultDataAccessException x) { return null; } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java index 4cf63dca..13872a82 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java @@ -68,7 +68,7 @@ public abstract class Schema { protected boolean rowExists(JdbcTemplate template, String whereClause, String table) { try { - int rowCount = template.queryForInt("select count(*) from " + table + " where " + whereClause); + int rowCount = template.queryForObject("select count(*) from " + table + " where " + whereClause,Integer.class); return rowCount > 0; } catch (Exception x) { return false; diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java index 8094e7c2..05413aaf 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java @@ -35,7 +35,7 @@ public class Schema26 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 2") == 0) { + if (template.queryForObject("select count(*) from version where version = 2",Integer.class) == 0) { LOG.info("Updating database schema to version 2."); template.execute("insert into version values (2)"); } @@ -99,7 +99,7 @@ public class Schema26 extends Schema { LOG.info("Database column 'player.dynamic_ip' was added successfully."); } - if (template.queryForInt("select count(*) from role where id = 6") == 0) { + if (template.queryForObject("select count(*) from role where id = 6",Integer.class) == 0) { LOG.info("Role 'comment' not found in database. Creating it."); template.execute("insert into role values (6, 'comment')"); template.execute("insert into user_role " + diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java index baa4672e..08ae2aa4 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java @@ -35,7 +35,7 @@ public class Schema27 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 3") == 0) { + if (template.queryForObject("select count(*) from version where version = 3",Integer.class) == 0) { LOG.info("Updating database schema to version 3."); template.execute("insert into version values (3)"); diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java index c1678f67..515a4c0f 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java @@ -35,7 +35,7 @@ public class Schema28 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 4") == 0) { + if (template.queryForObject("select count(*) from version where version = 4",Integer.class) == 0) { LOG.info("Updating database schema to version 4."); template.execute("insert into version values (4)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java index 2495af4b..bef298f9 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java @@ -35,7 +35,7 @@ public class Schema29 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 5") == 0) { + if (template.queryForObject("select count(*) from version where version = 5",Integer.class) == 0) { LOG.info("Updating database schema to version 5."); template.execute("insert into version values (5)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java index 4a72499b..18e73175 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java @@ -35,7 +35,7 @@ public class Schema30 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 6") == 0) { + if (template.queryForObject("select count(*) from version where version = 6", Integer.class) == 0) { LOG.info("Updating database schema to version 6."); template.execute("insert into version values (6)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java index a8bdc198..6019070c 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java @@ -35,7 +35,7 @@ public class Schema31 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 7") == 0) { + if (template.queryForObject("select count(*) from version where version = 7",Integer.class) == 0) { LOG.info("Updating database schema to version 7."); template.execute("insert into version values (7)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java index bc134665..85ad7f50 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java @@ -35,7 +35,7 @@ public class Schema32 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 8") == 0) { + if (template.queryForObject("select count(*) from version where version = 8",Integer.class) == 0) { LOG.info("Updating database schema to version 8."); template.execute("insert into version values (8)"); } @@ -83,7 +83,7 @@ public class Schema32 extends Schema { LOG.info("Database table 'podcast_episode' was created successfully."); } - if (template.queryForInt("select count(*) from role where id = 7") == 0) { + if (template.queryForObject("select count(*) from role where id = 7",Integer.class) == 0) { LOG.info("Role 'podcast' not found in database. Creating it."); template.execute("insert into role values (7, 'podcast')"); template.execute("insert into user_role " + diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java index c76376d1..ffb0f4c1 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java @@ -36,7 +36,7 @@ public class Schema33 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 9") == 0) { + if (template.queryForObject("select count(*) from version where version = 9",Integer.class) == 0) { LOG.info("Updating database schema to version 9."); template.execute("insert into version values (9)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java index 9fb38f88..7f3b09c6 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java @@ -36,7 +36,7 @@ public class Schema34 extends Schema { public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 10") == 0) { + if (template.queryForObject("select count(*) from version where version = 10",Integer.class) == 0) { LOG.info("Updating database schema to version 10."); template.execute("insert into version values (10)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java index c7244686..5ed4b9d5 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java @@ -58,7 +58,7 @@ public class Schema35 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 11") == 0) { + if (template.queryForObject("select count(*) from version where version = 11",Integer.class) == 0) { LOG.info("Updating database schema to version 11."); template.execute("insert into version values (11)"); } @@ -75,7 +75,7 @@ public class Schema35 extends Schema { LOG.info("Database column 'user_settings.web_player_default' was added successfully."); } - if (template.queryForInt("select count(*) from role where id = 8") == 0) { + if (template.queryForObject("select count(*) from role where id = 8",Integer.class) == 0) { LOG.info("Role 'stream' not found in database. Creating it."); template.execute("insert into role values (8, 'stream')"); template.execute("insert into user_role select distinct u.username, 8 from user u"); @@ -135,7 +135,7 @@ public class Schema35 extends Schema { } private void createAvatar(JdbcTemplate template, String avatar) { - if (template.queryForInt("select count(*) from system_avatar where name = ?", new Object[]{avatar}) == 0) { + if (template.queryForObject("select count(*) from system_avatar where name = ?", new Object[]{avatar},Integer.class) == 0) { InputStream in = null; try { diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java index 2c763a77..03c71a7b 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java @@ -37,7 +37,7 @@ public class Schema36 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 12") == 0) { + if (template.queryForObject("select count(*) from version where version = 12",Integer.class) == 0) { LOG.info("Updating database schema to version 12."); template.execute("insert into version values (12)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java index 25fd2fe4..7d29d7d6 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java @@ -37,19 +37,19 @@ public class Schema37 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 13") == 0) { + if (template.queryForObject("select count(*) from version where version = 13",Integer.class) == 0) { LOG.info("Updating database schema to version 13."); template.execute("insert into version values (13)"); } - if (template.queryForInt("select count(*) from role where id = 9") == 0) { + if (template.queryForObject("select count(*) from role where id = 9",Integer.class) == 0) { LOG.info("Role 'settings' not found in database. Creating it."); template.execute("insert into role values (9, 'settings')"); template.execute("insert into user_role select distinct u.username, 9 from user u"); LOG.info("Role 'settings' was created successfully."); } - if (template.queryForInt("select count(*) from role where id = 10") == 0) { + if (template.queryForObject("select count(*) from role where id = 10",Integer.class) == 0) { LOG.info("Role 'jukebox' not found in database. Creating it."); template.execute("insert into role values (10, 'jukebox')"); template.execute("insert into user_role " + diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java index a2b4a389..a3fdd4d6 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java @@ -37,7 +37,7 @@ public class Schema38 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 14") == 0) { + if (template.queryForObject("select count(*) from version where version = 14",Integer.class) == 0) { LOG.info("Updating database schema to version 14."); template.execute("insert into version values (14)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java index 73c65737..4beaa679 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java @@ -37,7 +37,7 @@ public class Schema40 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 15") == 0) { + if (template.queryForObject("select count(*) from version where version = 15",Integer.class) == 0) { LOG.info("Updating database schema to version 15."); template.execute("insert into version values (15)"); diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java index 5af5726d..a0422784 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java @@ -40,12 +40,12 @@ public class Schema43 extends Schema { public void execute(JdbcTemplate template) { // version 16 was used for 4.3.beta1 - if (template.queryForInt("select count(*) from version where version = 16") == 0) { + if (template.queryForObject("select count(*) from version where version = 16",Integer.class) == 0) { LOG.info("Updating database schema to version 16."); template.execute("insert into version values (16)"); } - if (template.queryForInt("select count(*) from version where version = 17") == 0) { + if (template.queryForObject("select count(*) from version where version = 17",Integer.class) == 0) { LOG.info("Updating database schema to version 17."); template.execute("insert into version values (17)"); diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java index 72cdae1f..e03568ce 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java @@ -37,12 +37,12 @@ public class Schema45 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 18") == 0) { + if (template.queryForObject("select count(*) from version where version = 18",Integer.class) == 0) { LOG.info("Updating database schema to version 18."); template.execute("insert into version values (18)"); } - if (template.queryForInt("select count(*) from role where id = 11") == 0) { + if (template.queryForObject("select count(*) from role where id = 11",Integer.class) == 0) { LOG.info("Role 'share' not found in database. Creating it."); template.execute("insert into role values (11, 'share')"); template.execute("insert into user_role " + diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java index cd002ed2..814467e5 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java @@ -37,7 +37,7 @@ public class Schema46 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 19") == 0) { + if (template.queryForObject("select count(*) from version where version = 19",Integer.class) == 0) { LOG.info("Updating database schema to version 19."); template.execute("insert into version values (19)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java index 09503566..cb23d28b 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java @@ -37,7 +37,7 @@ public class Schema47 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 20") == 0) { + if (template.queryForObject("select count(*) from version where version = 20",Integer.class) == 0) { LOG.info("Updating database schema to version 20."); template.execute("insert into version values (20)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java index 8b49511c..59e7b447 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java @@ -37,7 +37,7 @@ public class Schema49 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 21") == 0) { + if (template.queryForObject("select count(*) from version where version = 21",Integer.class) == 0) { LOG.info("Updating database schema to version 21."); template.execute("insert into version values (21)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java index 8db91f62..6d3c9f52 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java @@ -37,7 +37,7 @@ public class Schema50 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 22") == 0) { + if (template.queryForObject("select count(*) from version where version = 22",Integer.class) == 0) { LOG.info("Updating database schema to version 22."); template.execute("insert into version values (22)"); @@ -57,7 +57,7 @@ public class Schema50 extends Schema { } // Added in 5.0.beta2 - if (template.queryForInt("select count(*) from version where version = 23") == 0) { + if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) { LOG.info("Updating database schema to version 23."); template.execute("insert into version values (23)"); template.execute("update transcoding2 set step1='ffmpeg -i %s -map 0:0 -b:a %bk -v 0 -f mp3 -' where name='mp3 audio'"); diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java index cccd762d..4285d147 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java @@ -36,7 +36,7 @@ public class Schema51 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 23") == 0) { + if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) { LOG.info("Updating database schema to version 23."); template.execute("insert into version values (23)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java index 2853c256..a0c33dec 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java @@ -36,7 +36,7 @@ public class Schema52 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 24") == 0) { + if (template.queryForObject("select count(*) from version where version = 24",Integer.class) == 0) { LOG.info("Updating database schema to version 24."); template.execute("insert into version values (24)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java index 9ebead30..caccee78 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java @@ -38,7 +38,7 @@ public class Schema53 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 25") == 0) { + if (template.queryForObject("select count(*) from version where version = 25",Integer.class) == 0) { LOG.info("Updating database schema to version 25."); template.execute("insert into version values (25)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java index 378d11c3..cf61876a 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java @@ -34,7 +34,7 @@ public class Schema61 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 26") == 0) { + if (template.queryForObject("select count(*) from version where version = 26",Integer.class) == 0) { LOG.info("Updating database schema to version 26."); template.execute("insert into version values (26)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java index 0c393ed2..cdd233c2 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java @@ -34,7 +34,7 @@ public class Schema62 extends Schema { @Override public void execute(JdbcTemplate template) { - if (template.queryForInt("select count(*) from version where version = 27") == 0) { + if (template.queryForObject("select count(*) from version where version = 27",Integer.class) == 0) { LOG.info("Updating database schema to version 27."); template.execute("insert into version values (27)"); } diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java deleted file mode 100644 index 44b5260e..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - 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 . - - Copyright 2016 (C) Libresonic Authors - Based upon Subsonic, Copyright 2009 (C) Sindre Mehus - */ -package org.libresonic.player.validator; - -import org.springframework.validation.*; -import org.libresonic.player.command.*; -import org.libresonic.player.controller.*; - -/** - * Validator for {@link PasswordSettingsController}. - * - * @author Sindre Mehus - */ -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"); - } - } -} diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java deleted file mode 100644 index e4a2438b..00000000 --- a/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - 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 . - - Copyright 2016 (C) Libresonic Authors - Based upon Subsonic, Copyright 2009 (C) Sindre Mehus - */ -package org.libresonic.player.validator; - -import org.springframework.validation.Errors; -import org.springframework.validation.Validator; - -import org.libresonic.player.command.PremiumSettingsCommand; -import org.libresonic.player.controller.PremiumSettingsController; -import org.libresonic.player.service.SettingsService; - -/** - * Validator for {@link PremiumSettingsController}. - * - * @author Sindre Mehus - */ -public class PremiumSettingsValidator implements Validator { - private SettingsService settingsService; - - public boolean supports(Class clazz) { - return clazz.equals(PremiumSettingsCommand.class); - } - - public void validate(Object obj, Errors errors) { - PremiumSettingsCommand command = (PremiumSettingsCommand) obj; - - if (!settingsService.isLicenseValid(command.getLicenseInfo().getLicenseEmail(), command.getLicenseCode())) { - command.setSubmissionError(true); - errors.rejectValue("licenseCode", "premium.invalidlicense"); - } - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } -} diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java index 3686e8c6..755ae0ea 100644 --- a/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java @@ -24,6 +24,8 @@ import org.libresonic.player.controller.UserSettingsController; import org.libresonic.player.service.SecurityService; import org.libresonic.player.service.SettingsService; import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.Validator; @@ -32,9 +34,12 @@ import org.springframework.validation.Validator; * * @author Sindre Mehus */ +@Component public class UserSettingsValidator implements Validator { + @Autowired private SecurityService securityService; + @Autowired private SettingsService settingsService; /** @@ -82,11 +87,4 @@ public class UserSettingsValidator implements Validator { } - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } - - public void setSettingsService(SettingsService settingsService) { - this.settingsService = settingsService; - } } \ No newline at end of file diff --git a/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml index f60c5951..ac13f0f0 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml @@ -3,9 +3,9 @@ xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd + http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security-3.2.xsd"> + http://www.springframework.org/schema/security/spring-security.xsd"> diff --git a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml index edece234..2a8fd8cc 100644 --- a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml @@ -2,7 +2,18 @@ + xmlns:context="http://www.springframework.org/schema/context" + xmlns:mvc="http://www.springframework.org/schema/mvc" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context.xsd + http://www.springframework.org/schema/mvc + http://www.springframework.org/schema/mvc/spring-mvc.xsd"> + + + @@ -150,26 +161,9 @@ - - - - - - - - - - - - - - - - - @@ -187,23 +181,6 @@ - - - - - - - - - - - - - - - - - @@ -214,55 +191,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -345,14 +278,6 @@ - - - - - - - - @@ -403,14 +328,6 @@ - - - - - - - - @@ -434,7 +351,10 @@ topController randomPlayQueueController changeCoverArtController + multiController multiController multiController @@ -443,24 +363,13 @@ videoPlayerController nowPlayingController starredController - searchController settingsController - playerSettingsController dlnaSettingsController sonosSettingsController shareSettingsController - musicFolderSettingsController - networkSettingsController transcodingSettingsController internetRadioSettingsController - podcastSettingsController - generalSettingsController - advancedSettingsController - personalSettingsController avatarUploadController - userSettingsController - passwordSettingsController - premiumSettingsController allmusicController homeController editTagsController diff --git a/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java b/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java index f6ac5d45..8be3071a 100644 --- a/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java +++ b/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java @@ -88,7 +88,7 @@ public class TestCaseUtils { * @return */ public static Integer recordsInTable(String tableName, DaoHelper daoHelper) { - return daoHelper.getJdbcTemplate().queryForInt("select count(1) from " + tableName); + return daoHelper.getJdbcTemplate().queryForObject("select count(1) from " + tableName,Integer.class); } diff --git a/libresonic-rest-api/pom.xml b/libresonic-rest-api/pom.xml index dcb9249c..e95a1a8d 100644 --- a/libresonic-rest-api/pom.xml +++ b/libresonic-rest-api/pom.xml @@ -8,7 +8,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/libresonic-sonos-api/pom.xml b/libresonic-sonos-api/pom.xml index ad46cb27..1012b990 100644 --- a/libresonic-sonos-api/pom.xml +++ b/libresonic-sonos-api/pom.xml @@ -8,7 +8,7 @@ org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 diff --git a/pom.xml b/pom.xml index c96e0227..1070b1e4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.libresonic.player libresonic - 6.1.beta2 + 6.2.beta1.spring4 Libresonic pom @@ -16,8 +16,8 @@ true iso-8859-1 - 2.4.2 - 3.2.17.RELEASE + 3.1.8 + 4.3.4.RELEASE 3.2.9.RELEASE @@ -230,7 +230,6 @@ -