Created zallery pages

This commit is contained in:
Ziver Koc 2018-07-23 16:55:28 +02:00
parent 8d5786d458
commit cd24ee74e3
31 changed files with 691 additions and 452 deletions

View file

@ -0,0 +1,83 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.Folder;
import zall.bean.Media;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Logger;
@WebServlet("/gallery")
public class GalleryServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
Folder folder;
if (request.getParameter("folder") != null && !request.getParameter("folder").equalsIgnoreCase("null"))
folder = Folder.load(db, Long.parseLong(request.getParameter("folder")));
else {
folder = Folder.loadRoot(db, user);
// Setup new root folder
if (folder == null) {
folder = Folder.genRoot();
folder.save(db);
}
}
List<Media> list = Media.load(db, folder);
List<Folder> subFolders = Folder.loadSubFolders(db, folder, user);
//session.setAttribute("user", user);
request.setAttribute("folder", folder);
request.setAttribute("subfolders", subFolders);
request.setAttribute("media", list);
include("header.jsp", request, response);
include("gallery.jsp", request, response);
include("footer.jsp", request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
long id = Long.parseLong(request.getParameter("id"));
if (request.getParameter("id") == null) {
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
return;
}
long id = Long.parseLong(request.getParameter("id"));
Folder folder = Folder.load(db, id);
switch (request.getParameter("action")) {
// -----------------------------------------
// Toggle private mode
// -----------------------------------------
case "private":
if (folder != null) {
if (user.canEdit(folder)) {
folder.setPrivate(!folder.isPrivate());
folder.save(db);
if (folder.isPrivate())
msgs.add(UserMessage.MessageType.INFO, "Folder is now private (not visible to other users).");
else
msgs.add(UserMessage.MessageType.INFO, "Folder is now public (can be viewed by other users).");
} else
msgs.add(UserMessage.MessageType.ERROR, "You are not authorize to edit this folder!");
} else
msgs.add(UserMessage.MessageType.ERROR, "The folder does not exist!");
break;
}
}
}

48
src/zall/page/LoginServlet.java Executable file
View file

@ -0,0 +1,48 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Logger;
import static zall.ZalleryConstant.SESSION_KEY_USER;
@WebServlet("/login")
public class LoginServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
private static final String JSP_FILE = "register.jsp";
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException {
include(JSP_FILE, request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, ServletException, IOException {
User user = AuthenticationManager.authenticate(db,
request.getParameter("email"),
request.getParameter("password"));
// Successfull login
if (user != null) {
user.registerOnHost(request, response, db, true );
request.getSession().setAttribute(SESSION_KEY_USER, user);
forward("/", request, response);
}
// Failed login
else {
include(JSP_FILE, request, response);
}
}
}

View file

@ -0,0 +1,31 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zutil.db.DBConnection;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import static zall.ZalleryConstant.SESSION_KEY_USER;
/**
*
*/
@WebServlet(urlPatterns = "/logout")
public class LogoutServlet extends ZalleryServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws SQLException, IOException {
User user = (User) req.getSession().getAttribute(SESSION_KEY_USER);
AuthenticationManager.reset(db, user);
req.getSession().removeAttribute(SESSION_KEY_USER);
resp.sendRedirect("/login");
}
}

93
src/zall/page/MediaServlet.java Executable file
View file

@ -0,0 +1,93 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.Comment;
import zall.bean.Media;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
@WebServlet("/media")
public class MediaServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
if (request.getParameter("id") == null && request.getParameter("type") == null) {
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
return;
}
try {
int id = Integer.parseInt(request.getParameter("id"));
Media media = Media.load(db, request.getParameter("type"), id);
request.setAttribute("media", media);
} catch (NumberFormatException e) {
logger.log(Level.FINE, "", e);
}
include("header.jsp", request, response);
include("media.jsp", request, response);
include("footer.jsp", request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
long id = Long.parseLong(request.getParameter("id"));
if (request.getParameter("id") == null || request.getParameter("type") == null) {
msgs.add(UserMessage.MessageType.ERROR, "Missing parameters!");
return;
}
Media media = Media.load(db, request.getParameter("type"), id);
switch (request.getParameter("action")) {
// -----------------------------------------
// Comment
// -----------------------------------------
case "comment":
Comment cm = new Comment();
cm.setUser(user);
cm.setMessage(request.getParameter("msg"));
media.addComment(cm);
media.save(db);
msgs.add(UserMessage.MessageType.INFO, "Comment saved.");
break;
// -----------------------------------------
// Modify media
// -----------------------------------------
case "modify":
if (media != null) {
if (user.canEdit(media)) {
media.setTitle(request.getParameter("title"));
media.setDescription(request.getParameter("description"));
media.save(db);
msgs.add(UserMessage.MessageType.INFO, "Item edited successfully.");
} else
msgs.add(UserMessage.MessageType.ERROR, "You are not authorize to modify this item!");
} else
msgs.add(UserMessage.MessageType.ERROR, "The item does not exist!");
break;
}
}
}

View file

@ -0,0 +1,51 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Logger;
@WebServlet("/profile")
public class ProfileServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException{
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
try{
if(request.getParameter("id") != null){
User profile_user = User.load(db, Long.parseLong( request.getParameter("id") ));
if(user.canEdit(profile_user)){
request.setAttribute("profile_user", profile_user);
} else {
msgs.add(UserMessage.MessageType.ERROR, "You do not have permission to edit the user.");
}
} else {
request.setAttribute("profile_user", user);
}
include("header.jsp", request, response);
include("profile.jsp", request, response);
include("footer.jsp", request, response);
} catch (Exception e) {
logger.severe(e.getMessage());
throw new ServletException(e);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException {
}
}

View file

@ -0,0 +1,89 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.util.ZalleryEmail;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.logging.Logger;
import static zall.ZalleryConstant.LANG_BASENAME;
@WebServlet("/register")
public class RegisterServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
private static final String JSP_FILE = "register.jsp";
private static final String INPUT_ID_FIRST_NAME = "first-name";
private static final String INPUT_ID_LAST_NAME = "last-name";
private static final String INPUT_ID_EMAIL = "email";
private static final String INPUT_ID_PASSWORD = "password";
private static final String INPUT_ID_PASSWORD_REPEATE = "password-re";
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException {
include(JSP_FILE, request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
UserMessage msgHandler = UserMessage.getUserMessage(request.getSession());
ResourceBundle lang = PropertyResourceBundle.getBundle(LANG_BASENAME, Locale.getDefault());
/*
* Check inputs
*/
String firstName = (String)request.getAttribute(INPUT_ID_FIRST_NAME);
String lastName = (String)request.getAttribute(INPUT_ID_LAST_NAME);
String email = (String)request.getAttribute(INPUT_ID_EMAIL);
String password = (String)request.getAttribute(INPUT_ID_PASSWORD);
String passwordRe = (String)request.getAttribute(INPUT_ID_PASSWORD_REPEATE);
if (firstName == null)
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.first_name_missing"));
if (lastName == null)
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.last_name_missing"));
if (email == null)
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.email_missing"));
if (password == null)
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_missing"));
if (passwordRe == null)
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_missing"));
else if (passwordRe.equals(password))
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.password_not_matching"));
if(User.load(db, (String)request.getAttribute(INPUT_ID_EMAIL)) != null){
msgHandler.add(UserMessage.MessageType.ERROR, lang.getString("error.email_exsists"));
return;
}
/*
* Create new user
*/
User user = new User();
user.setName(firstName + " " + lastName);
user.setEmail(email);
user.setPassword(password);
user.save(db);
ZalleryEmail.sendVerificationEmail( user );
request.getSession().setAttribute("user", user);
logger.info("Registered new user: "+user.getName()+".");
msgHandler.add(UserMessage.MessageType.INFO,
lang.getString("info.account_created") + lang.getString("info.verification_email_sent"));
include(JSP_FILE, request, response);
}
}

View file

@ -0,0 +1,35 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.Image;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Logger;
@WebServlet("/slideshow")
public class SlideshowServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
Image image = Image.load(db, Integer.parseInt(request.getParameter("id")));
request.setAttribute("image", image);
List<Image> list = Image.loadFolder(db, image.getFolder());
request.setAttribute("image", image);
request.setAttribute("images", list);
include("header.jsp", request, response);
include("slideshow.jsp", request, response);
include("footer.jsp", request, response);
}
}

View file

@ -0,0 +1,31 @@
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Logger;
@WebServlet("/register")
public class UserListServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
List<User> users = User.load(db);
request.setAttribute("users", users);
include("header.jsp", request, response);
include("users.jsp", request, response);
include("footer.jsp", request, response);
}
}