2012-06-14 20:39:22 +00:00
|
|
|
package zall.action.media;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
|
|
|
|
|
|
import zall.action.ZalleryAction;
|
|
|
|
|
import zall.bean.Folder;
|
|
|
|
|
import zall.bean.User;
|
|
|
|
|
import zutil.db.DBConnection;
|
|
|
|
|
import zutil.log.LogUtil;
|
2018-08-06 19:23:01 +02:00
|
|
|
import zutil.ui.UserMessageManager;
|
|
|
|
|
import zutil.ui.UserMessageManager.MessageLevel;
|
|
|
|
|
import zutil.ui.UserMessageManager.UserMessage;
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
public class CreateFolderAction extends ZalleryAction {
|
|
|
|
|
private static final Logger logger = LogUtil.getLogger();
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
public CreateFolderAction() {
|
|
|
|
|
super("mkdir", true);
|
|
|
|
|
}
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
@Override
|
|
|
|
|
public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session,
|
|
|
|
|
PrintWriter out, User user, UserMessageManager msgs) throws SQLException, IOException {
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
// Create Folder
|
|
|
|
|
String path = request.getParameter("dir");
|
|
|
|
|
Folder folder = Folder.load(db, path, user);
|
|
|
|
|
logger.info("Creating new folder: /" + user.getName() + "/" + path);
|
|
|
|
|
// parent folder
|
|
|
|
|
if (folder == null) {
|
|
|
|
|
String[] dirs = path.split("/");
|
|
|
|
|
Folder parent = Folder.loadRoot(db, user);
|
|
|
|
|
if (user.isSuperUser() && path.charAt(0) == '/')
|
|
|
|
|
path = "";
|
|
|
|
|
else {
|
|
|
|
|
path = "/{NAME}";
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
// Get root folder
|
|
|
|
|
parent = Folder.load(db, path, user); // Get user root folder
|
|
|
|
|
if (parent == null) { // Create root folder
|
|
|
|
|
parent = Folder.loadRoot(db, user); // get root folder
|
|
|
|
|
folder = new Folder();
|
|
|
|
|
folder.setUser(user);
|
|
|
|
|
folder.setParent(parent);
|
|
|
|
|
folder.setName("{NAME}");
|
|
|
|
|
folder.save(db);
|
|
|
|
|
parent = folder;
|
|
|
|
|
}
|
|
|
|
|
}
|
2012-06-14 20:39:22 +00:00
|
|
|
|
2018-08-06 19:23:01 +02:00
|
|
|
for (String dir : dirs) {
|
|
|
|
|
if (dir.trim().isEmpty()) // skip empty names
|
|
|
|
|
continue;
|
|
|
|
|
path += "/" + dir;
|
|
|
|
|
folder = Folder.load(db, path, user);
|
|
|
|
|
if (folder == null) { // create folder
|
|
|
|
|
folder = new Folder();
|
|
|
|
|
folder.setUser(user);
|
|
|
|
|
folder.setParent(parent);
|
|
|
|
|
folder.setName(dir);
|
|
|
|
|
folder.save(db);
|
|
|
|
|
}
|
|
|
|
|
parent = folder;
|
|
|
|
|
}
|
|
|
|
|
msgs.add(new UserMessage(MessageLevel.INFO, "Folder '" + path + "' has been successfully created.!"));
|
|
|
|
|
} else
|
|
|
|
|
msgs.add(new UserMessage(MessageLevel.ERROR, "The folder '" + path + "' already exists!"));
|
|
|
|
|
|
|
|
|
|
}
|
2012-06-14 20:39:22 +00:00
|
|
|
|
|
|
|
|
}
|