Changed so that root folder is not a DB requirement and not created on the fly.
This commit is contained in:
parent
5921a08b14
commit
8ea4f0d6d5
4 changed files with 91 additions and 85 deletions
|
|
@ -28,19 +28,14 @@ public class Folder extends DBBean {
|
|||
return load(db, Folder.class, id);
|
||||
}
|
||||
|
||||
public static List<Folder> loadSubFolders(DBConnection db, Folder folder, User requestingUser) throws SQLException {
|
||||
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE parent=? AND (isPrivate=0 OR owner=? OR ?)");
|
||||
public static List<Folder> loadSubFolders(DBConnection db, Folder folder) throws SQLException {
|
||||
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE parent=?");
|
||||
sql.setLong(1, folder.getId());
|
||||
sql.setLong(2, folder.owner.getId());
|
||||
sql.setBoolean(3, requestingUser.isSuperUser());
|
||||
return DBConnection.exec(sql, DBBeanSQLResultHandler.createList(Folder.class, db));
|
||||
}
|
||||
|
||||
public static Folder loadRoot(DBConnection db, User user) throws SQLException {
|
||||
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE name=? AND (isPrivate=0 OR owner=? OR ?)");
|
||||
sql.setString(1, "/");
|
||||
sql.setLong(2, user.getId());
|
||||
sql.setBoolean(3, user.isSuperUser());
|
||||
PreparedStatement sql = db.getPreparedStatement("SELECT * FROM Folder WHERE name='/' AND parent IS NULL LIMIT 1");
|
||||
return DBConnection.exec(sql, DBBeanSQLResultHandler.create(Folder.class, db));
|
||||
}
|
||||
|
||||
|
|
@ -93,16 +88,8 @@ public class Folder extends DBBean {
|
|||
return dateCreated;
|
||||
}
|
||||
|
||||
|
||||
public static Folder createRootFolder() {
|
||||
Folder root = new Folder();
|
||||
root.parent = null;
|
||||
root.owner = null;
|
||||
root.name = "/";
|
||||
return root;
|
||||
}
|
||||
|
||||
public boolean isEmpty(DBConnection db) throws SQLException {
|
||||
return Folder.loadSubFolders(db, this, getOwner()).isEmpty() && Media.load(db, this).isEmpty();
|
||||
return Folder.loadSubFolders(db, this).isEmpty() &&
|
||||
Media.load(db, this).isEmpty();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,15 +38,12 @@ public class GalleryServlet extends ZalleryServlet {
|
|||
folder = Folder.load(db, Long.parseLong(request.getParameter("folder")));
|
||||
else {
|
||||
folder = Folder.loadRoot(db, user);
|
||||
// Setup new root folder
|
||||
if (folder == null) {
|
||||
folder = Folder.createRootFolder();
|
||||
folder.save(db);
|
||||
}
|
||||
if (folder == null)
|
||||
throw new NullPointerException("No root folder found in DB.");
|
||||
}
|
||||
|
||||
List<Media> list = Media.load(db, folder);
|
||||
List<Folder> subFolders = Folder.loadSubFolders(db, folder, user);
|
||||
List<Folder> subFolders = Folder.loadSubFolders(db, folder);
|
||||
|
||||
//session.setAttribute("user", user);
|
||||
request.setAttribute("folder", folder);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue