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

@ -76,5 +76,6 @@
</library> </library>
</orderEntry> </orderEntry>
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" /> <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="module" module-name="Zutil" />
</component> </component>
</module> </module>

View file

@ -24,9 +24,8 @@ import zall.bean.Media;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zutil.net.smtp.Email; import zall.util.UserMessage;
import zall.util.msg.UserMessage; import zall.util.UserMessage.MessageType;
import zall.util.msg.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;

View file

@ -0,0 +1,66 @@
package zall;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Logger;
public abstract class ZalleryServlet extends HttpServlet {
private static Logger logger = LogUtil.getLogger();
public final void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
DBConnection db = null;
try {
include("header.jsp", request, response);
doGet(request, response, db = Zallery.getDB());
include("footer.jsp", request, response);
} catch (ServletException e) {
throw e;
} catch (Exception e) {
throw new ServletException(e);
} finally {
if (db != null) db.close();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
}
public final void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException {
DBConnection db = null;
try {
include("header.jsp", request, response);
doPost(request, response, db = Zallery.getDB());
include("footer.jsp", request, response);
} catch (ServletException e) {
throw e;
} catch (Exception e) {
throw new ServletException(e);
} finally {
if (db != null) db.close();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
doGet(request, response, db);
}
public void include(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/" + url);
if (dispatcher != null)
dispatcher.include(request, response);
}
public void forward(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/" + url);
if (dispatcher != null)
dispatcher.forward(request, response);
}
}

View file

@ -9,14 +9,15 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;
public class LoginAction extends ZalleryAction{ public class LoginAction extends ZalleryAction{
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
public LoginAction() { public LoginAction() {
super("login"); super("login");
} }

View file

@ -11,8 +11,8 @@ import javax.servlet.http.HttpSession;
import zall.bean.User; import zall.bean.User;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;

View file

@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public abstract class ZalleryAction { public abstract class ZalleryAction {

View file

@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
import zall.bean.Comment; import zall.bean.Comment;
import zall.bean.Media; import zall.bean.Media;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class CommentAction extends ZalleryAction{ public class CommentAction extends ZalleryAction{

View file

@ -12,8 +12,8 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.Folder; import zall.bean.Folder;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;

View file

@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
import zall.bean.Media; import zall.bean.Media;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class ModifyMediaAction extends ZalleryAction{ public class ModifyMediaAction extends ZalleryAction{

View file

@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
import zall.bean.Folder; import zall.bean.Folder;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class RemoveFolderAction extends ZalleryAction{ public class RemoveFolderAction extends ZalleryAction{

View file

@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
import zall.bean.Media; import zall.bean.Media;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class RemoveMediaAction extends ZalleryAction{ public class RemoveMediaAction extends ZalleryAction{

View file

@ -11,12 +11,11 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.Folder; import zall.bean.Folder;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.util.UserMessage;
import zall.util.msg.UserMessage; import zall.util.UserMessage.MessageType;
import zall.util.msg.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class TogglePrivateAction extends ZalleryAction{ public class TogglePrivateAction extends ZalleryAction {
public TogglePrivateAction() { public TogglePrivateAction() {
super("mkprivate", true); super("mkprivate", true);
@ -26,31 +25,14 @@ public class TogglePrivateAction extends ZalleryAction{
public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session, public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session,
PrintWriter out, User user, UserMessage msgs) throws SQLException, IOException { PrintWriter out, User user, UserMessage msgs) throws SQLException, IOException {
// Toggle folder private // Toggle folder private
if( request.getParameter("id") == null){ if (request.getParameter("id") == null) {
if(out != null) out.println("{ \"error\": \"Missing parameters!\"}"); if (out != null) out.println("{ \"error\": \"Missing parameters!\"}");
else msgs.add(MessageType.ERROR, "Missing parameters!"); else msgs.add(MessageType.ERROR, "Missing parameters!");
return; return;
} }
long id = Long.parseLong(request.getParameter("id")); long id = Long.parseLong(request.getParameter("id"));
Folder folder = Folder.load(db, id); Folder folder = Folder.load(db, id);
if( folder != null ){
if( AuthenticationManager.canEdit(user, folder) ){
folder.setPrivate( !folder.isPrivate() );
folder.save(db);
if(out != null) out.println("{}");
else{
if(folder.isPrivate()) msgs.add(MessageType.INFO, "Folder is now private (not visible to other users).");
else msgs.add(MessageType.INFO, "Folder is now public (can be viewed by other users).");
}
}
else if(out != null) out.println("{ \"error\": \"You are not authorize to edit this folder!\"}");
else msgs.add(MessageType.ERROR, "You are not authorize to edit this folder!");
}
else if(out != null) out.println("{ \"error\": \"No such folder!\"}");
else msgs.add(MessageType.ERROR, "The folder does not exist!");
}
}
} }

View file

@ -8,14 +8,11 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import zall.Zallery;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.User; import zall.bean.User;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zutil.net.smtp.Email; import zall.util.UserMessage;
import zutil.net.smtp.Email.ContentType; import zall.util.UserMessage.MessageType;
import zall.util.msg.UserMessage;
import zall.util.msg.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class ModifyUserAction extends ZalleryAction{ public class ModifyUserAction extends ZalleryAction{

View file

@ -12,8 +12,8 @@ import zall.action.ZalleryAction;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class ModifyUserStatusAction extends ZalleryAction{ public class ModifyUserStatusAction extends ZalleryAction{

View file

@ -10,8 +10,8 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class RemoveUserAction extends ZalleryAction{ public class RemoveUserAction extends ZalleryAction{

View file

@ -12,8 +12,8 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.User; import zall.bean.User;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;

View file

@ -11,8 +11,8 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction; import zall.action.ZalleryAction;
import zall.bean.User; import zall.bean.User;
import zall.util.ZalleryEmail; import zall.util.ZalleryEmail;
import zall.util.msg.UserMessage; import zall.util.UserMessage;
import zall.util.msg.UserMessage.MessageType; import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection; import zutil.db.DBConnection;
public class VerifyEmailAction extends ZalleryAction{ public class VerifyEmailAction extends ZalleryAction{

View file

@ -5,7 +5,6 @@ import zall.ZalleryConstant;
import zall.bean.Folder; import zall.bean.Folder;
import zall.bean.Media; import zall.bean.Media;
import zall.bean.User; import zall.bean.User;
import zall.util.msg.UserMessage;
import zutil.Hasher; import zutil.Hasher;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;

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

@ -1,9 +1,8 @@
package zall.servlet; package zall.page;
import zall.ZalleryConstant; import zall.ZalleryServlet;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zall.util.DbHttpServlet;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebServlet;
@ -18,9 +17,9 @@ import static zall.ZalleryConstant.SESSION_KEY_USER;
* *
*/ */
@WebServlet(urlPatterns = "/logout") @WebServlet(urlPatterns = "/logout")
public class LogoutServlet extends DbHttpServlet { public class LogoutServlet extends ZalleryServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws SQLException, IOException { public void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws SQLException, IOException {
User user = (User) req.getSession().getAttribute(SESSION_KEY_USER); User user = (User) req.getSession().getAttribute(SESSION_KEY_USER);
AuthenticationManager.reset(db, user); AuthenticationManager.reset(db, user);

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);
}
}

View file

@ -1,49 +0,0 @@
package zall.servlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.DbHttpServlet;
import zutil.db.DBConnection;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
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 = "/login")
public class LoginServlet extends DbHttpServlet {
private static final String JSP_FILE = "login.jsp";
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
getServletContext().getRequestDispatcher("/" + JSP_FILE).include(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws ServletException, IOException, SQLException {
User user = AuthenticationManager.authenticate(db,
req.getParameter("email"),
req.getParameter("password"));
// Successfull login
if (user != null) {
user.registerOnHost(req, resp, db, true );
req.getSession().setAttribute(SESSION_KEY_USER, user);
getServletContext().getRequestDispatcher("/").forward(req, resp);
}
// Failed login
else {
getServletContext().getRequestDispatcher("/" + JSP_FILE).include(req, resp);
}
}
}

View file

@ -1,93 +0,0 @@
package zall.servlet;
import zall.bean.User;
import zall.util.DbHttpServlet;
import zall.util.ZalleryEmail;
import zall.util.msg.UserMessage;
import zall.util.msg.UserMessage.MessageType;
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.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.logging.Logger;
import static zall.ZalleryConstant.*;
/**
*
*/
@WebServlet(urlPatterns = "/register")
public class RegisterServlet extends DbHttpServlet {
private static final 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";
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
getServletContext().getRequestDispatcher("/"+JSP_FILE).include(req, resp);
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp, DBConnection db) throws ServletException, IOException, SQLException {
UserMessage msgHandler = UserMessage.getUserMessage(req.getSession());
ResourceBundle lang = PropertyResourceBundle.getBundle(LANG_BASENAME, Locale.getDefault());
/*
* Check inputs
*/
String firstName = (String)req.getAttribute(INPUT_ID_FIRST_NAME);
String lastName = (String)req.getAttribute(INPUT_ID_LAST_NAME);
String email = (String)req.getAttribute(INPUT_ID_EMAIL);
String password = (String)req.getAttribute(INPUT_ID_PASSWORD);
String passwordRe = (String)req.getAttribute(INPUT_ID_PASSWORD_REPEATE);
if (firstName == null)
msgHandler.add(MessageType.ERROR, lang.getString("error.first_name_missing"));
if (lastName == null)
msgHandler.add(MessageType.ERROR, lang.getString("error.last_name_missing"));
if (email == null)
msgHandler.add(MessageType.ERROR, lang.getString("error.email_missing"));
if (password == null)
msgHandler.add(MessageType.ERROR, lang.getString("error.password_missing"));
if (passwordRe == null)
msgHandler.add(MessageType.ERROR, lang.getString("error.password_missing"));
else if (passwordRe.equals(password))
msgHandler.add(MessageType.ERROR, lang.getString("error.password_not_matching"));
if(User.load(db, (String)req.getAttribute(INPUT_ID_EMAIL)) != null){
msgHandler.add(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 );
req.getSession().setAttribute("user", user);
logger.info("Registered new user: "+user.getName()+".");
msgHandler.add(MessageType.INFO,
lang.getString("info.account_created") + lang.getString("info.verification_email_sent"));
getServletContext().getRequestDispatcher("/"+JSP_FILE).include(req, resp);
}
}

View file

@ -1,69 +0,0 @@
package zall.util;
import zall.bean.Folder;
import zall.bean.Image;
import zall.bean.Media;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.msg.UserMessage;
import zall.util.msg.UserMessage.MessageType;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class DbHttpServlet extends HttpServlet{
private static Logger logger = LogUtil.getLogger();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DBConnection db = null;
try{
doGet(request, response, db = getDB());
} catch (SQLException e) {
throw new IOException(e);
} finally{
if(db != null) db.close();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db)
throws ServletException, IOException, SQLException { }
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DBConnection db = null;
try{
doPost(request, response, db = getDB());
} catch (SQLException e) {
throw new IOException(e);
} finally{
if(db != null) db.close();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db)
throws ServletException, IOException, SQLException { }
public static DBConnection getDB() throws ServletException{
try {
return new DBConnection("jdbc/mysql");
} catch (Exception e) {
throw new ServletException(e);
}
}
}

View file

@ -1,4 +1,4 @@
package zall.util.msg; package zall.util;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Queue; import java.util.Queue;
@ -69,7 +69,7 @@ public class UserMessage{
public UserMessage(){ public UserMessage(){
msg_queue = new LinkedList<Message>(); msg_queue = new LinkedList<>();
} }
//******** Queue methods //******** Queue methods

View file

@ -1,24 +0,0 @@
package zall.util.msg;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* This class reads a get request and returns all messages
* to that user as JSON.
*
* @author Ziver
*/
public class AjaxUserMessageServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
/**
* Ajax request
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException{
}
}