File Source: viewfilesaction.java
/*
P/P * Method: net.sourceforge.pebble.web.action.ViewFilesAction__static_init
*/
1 /*
2 * Copyright (c) 2003-2006, Simon Brown
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * - Neither the name of Pebble nor the names of its contributors may
17 * be used to endorse or promote products derived from this software
18 * without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32 package net.sourceforge.pebble.web.action;
33
34 import net.sourceforge.pebble.Constants;
35 import net.sourceforge.pebble.PebbleContext;
36 import net.sourceforge.pebble.web.view.View;
37 import net.sourceforge.pebble.web.view.ForbiddenView;
38 import net.sourceforge.pebble.web.view.impl.FilesView;
39 import net.sourceforge.pebble.domain.*;
40
/*
P/P * Method: void net.sourceforge.pebble.web.action.ViewFilesAction()
*/
41 import javax.servlet.ServletException;
42 import javax.servlet.http.HttpServletRequest;
43 import javax.servlet.http.HttpServletResponse;
44 import java.util.List;
45
46 /**
47 * Allows the user to view the files in a specific location - blog images,
48 * blog files and theme files.
49 *
50 * @author Simon Brown
51 */
52 public class ViewFilesAction extends AbstractFileAction {
53
54 /**
55 * Peforms the processing associated with this action.
56 *
57 * @param request the HttpServletRequest instance
58 * @param response the HttpServletResponse instance
59 * @return the name of the next view
60 */
61 public View process(HttpServletRequest request, HttpServletResponse response) throws ServletException {
/*
P/P * Method: View process(HttpServletRequest, HttpServletResponse)
*
* Preconditions:
* request != null
* this.model != null
* this.model.data != null
* (soft) net.sourceforge.pebble.PebbleContext__static_init.new PebbleContext(PebbleContext__static_init#1).configuration != null
*
* Presumptions:
* javax.servlet.http.HttpServletRequest:getParameter(...)@63 != null
*
* Postconditions:
* return_value in Addr_Set{&new FilesView(process#3),&new ForbiddenView(process#2)}
* new FilesView(process#3) num objects <= 1
* new ForbiddenView(process#2) num objects <= 1
*
* Test Vectors:
* java.lang.String:equals(...)@83: {0}, {1}
* java.lang.String:equals(...)@85: {0}, {1}
* java.lang.String:length(...)@68: {1..232-1}, {0}
* java.lang.String:length(...)@92: {0}, {1..232-1}
* javax.servlet.http.HttpServletRequest:getParameter(...)@64: Addr_Set{null}, Inverse{null}
* javax.servlet.http.HttpServletRequest:getParameter(...)@65: Addr_Set{null}, Inverse{null}
* net.sourceforge.pebble.Configuration:getFileUploadQuota(...)@102: {-263..-1}, {0..264-1}
*/
62 Blog blog = (Blog)getModel().get(Constants.BLOG_KEY);
63 String type = request.getParameter("type");
64 String path = request.getParameter("path");
65 String fileName = request.getParameter("file");
66
67 // if there is no path, we're looking at the root
68 if (path == null || path.length() == 0) {
69 path= "/";
70 }
71
72 FileManager fileManager = new FileManager(blog, type);
73 FileMetaData directory = fileManager.getFileMetaData(path);
74
75 try {
76 List files = fileManager.getFiles(path);
77 getModel().put("files", files);
78 } catch (IllegalFileAccessException e) {
79 return new ForbiddenView();
80 }
81
82 String uploadAction = null;
83 if (type.equals(FileMetaData.BLOG_IMAGE)) {
84 uploadAction = "uploadImageToBlog.secureaction";
85 } else if (type.equals(FileMetaData.THEME_FILE)) {
86 uploadAction = "uploadFileToTheme.secureaction";
87 } else {
88 uploadAction = "uploadFileToBlog.secureaction";
89 }
90
91 // does the user want details about a specific file?
92 if (fileName != null && fileName.length() > 0) {
93 getModel().put("file", fileManager.getFileMetaData(path, fileName));
94 }
95
96 getModel().put("type", type);
97 getModel().put("directory", directory);
98 getModel().put("parent", fileManager.getParent(directory));
99 getModel().put("uploadAction", uploadAction);
100 getModel().put("root", fileManager.getFileMetaData("/"));
101
102 if (PebbleContext.getInstance().getConfiguration().getFileUploadQuota() > -1) {
103 getModel().put("currentUsage", FileManager.getCurrentUsage(blog));
104 }
105
106 return new FilesView();
107 }
108
109 }
SofCheck Inspector Build Version : 2.22510
| viewfilesaction.java |
2010-Jun-25 19:40:34 |
| viewfilesaction.class |
2010-Jul-19 20:23:38 |