diff options
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java')
-rw-r--r-- | subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java deleted file mode 100644 index 2b8a958a..00000000 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - This file is part of Subsonic. - - Subsonic 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. - - Subsonic 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 Subsonic. If not, see <http://www.gnu.org/licenses/>. - - Copyright 2009 (C) Sindre Mehus - */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.ShareService; -import org.apache.commons.lang.StringUtils; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.ParameterizableViewController; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Controller for the page used to administrate the set of shared media. - * - * @author Sindre Mehus - */ -public class ShareSettingsController extends ParameterizableViewController { - - private ShareService shareService; - private SecurityService securityService; - private MediaFileService mediaFileService; - - @Override - protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { - - Map<String, Object> map = new HashMap<String, Object>(); - - if (isFormSubmission(request)) { - String error = handleParameters(request); - map.put("error", error); - } - - ModelAndView result = super.handleRequestInternal(request, response); - map.put("shareBaseUrl", shareService.getShareBaseUrl()); - map.put("shareInfos", getShareInfos(request)); - map.put("user", securityService.getCurrentUser(request)); - - result.addObject("model", map); - return result; - } - - /** - * Determine if the given request represents a form submission. - * - * @param request current HTTP request - * @return if the request represents a form submission - */ - private boolean isFormSubmission(HttpServletRequest request) { - return "POST".equals(request.getMethod()); - } - - private String handleParameters(HttpServletRequest request) { - User user = securityService.getCurrentUser(request); - for (Share share : shareService.getSharesForUser(user)) { - int id = share.getId(); - - String description = getParameter(request, "description", id); - boolean delete = getParameter(request, "delete", id) != null; - String expireIn = getParameter(request, "expireIn", id); - - if (delete) { - shareService.deleteShare(id); - } else { - if (expireIn != null) { - share.setExpires(parseExpireIn(expireIn)); - } - share.setDescription(description); - shareService.updateShare(share); - } - } - - return null; - } - - private List<ShareInfo> getShareInfos(HttpServletRequest request) { - List<ShareInfo> result = new ArrayList<ShareInfo>(); - User user = securityService.getCurrentUser(request); - for (Share share : shareService.getSharesForUser(user)) { - List<MediaFile> files = shareService.getSharedFiles(share.getId()); - if (!files.isEmpty()) { - MediaFile file = files.get(0); - result.add(new ShareInfo(share, file.isDirectory() ? file : mediaFileService.getParentOf(file))); - } - } - return result; - } - - - private String getParameter(HttpServletRequest request, String name, int id) { - return StringUtils.trimToNull(request.getParameter(name + "[" + id + "]")); - } - - private Date parseExpireIn(String expireIn) { - int days = Integer.parseInt(expireIn); - if (days == 0) { - return null; - } - - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_YEAR, days); - return calendar.getTime(); - } - - public void setSecurityService(SecurityService securityService) { - this.securityService = securityService; - } - - public void setShareService(ShareService shareService) { - this.shareService = shareService; - } - - public void setMediaFileService(MediaFileService mediaFileService) { - this.mediaFileService = mediaFileService; - } - - public static class ShareInfo { - private final Share share; - private final MediaFile dir; - - public ShareInfo(Share share, MediaFile dir) { - this.share = share; - this.dir = dir; - } - - public Share getShare() { - return share; - } - - public MediaFile getDir() { - return dir; - } - } -}
\ No newline at end of file |