Renamed lang references, switched to zutil UserMessageManager

This commit is contained in:
Ziver Koc 2018-08-06 18:53:40 +02:00
parent b84f583d1c
commit 9c91d96ce7
27 changed files with 245 additions and 295 deletions

View file

@ -9,6 +9,9 @@
<Environment type="java.lang.String" name="SMTP_HOST" value="127.0.0.1" />
<Environment type="java.lang.String" name="DATA_PATH" value="C:\\Users\\Ziver\\Desktop\\Downloads\\zallery" />
<Environment type="java.lang.String" name="LOGGING_ZALL" value="FINEST" />
<Environment type="java.lang.String" name="LOGGING_ZUTIL" value="FINE" />
<Resource
name="jdbc/mysql"
auth="Container"

View file

@ -0,0 +1,4 @@
<%@tag description="Footer template" pageEncoding="UTF-8" %>
</body>
</html>

View file

@ -16,23 +16,12 @@
<link rel="stylesheet" href="css/register3.css">
<link rel="stylesheet" href="css/zallery.css">
<!-- Bootstrap core JavaScript -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/3.1.8/imagesloaded.pkgd.min.js"></script>
<script src="js/masonry.pkgd.min.js"></script>
<script type="text/javascript">
$(function(){
$('.image-grid').imagesLoaded(function(){
$('.grid').masonry({
itemSelector: '.grid-item',
columnWidth: '.grid-item',
});
});
});
</script>
</head>
<body>
<body>
<jsp:include page="fragment_messages.jsp"/>

View file

@ -0,0 +1,34 @@
<%@tag description="User message template" pageEncoding="UTF-8" %>
<%@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@tag import="com.example.User" %>
<%@attribute name="user" required="true" type="com.example.User"%>
<!-- User Messages -->
<script type="text/javascript">
$(function(){
$(".message").click(function(){
$(this).fade();
});
});
</script>
<div class="menu">
<c:forEach var="messages" var="message">
<c:if test="${message.getType() == MessageType.WARNING}">
</c:if>
if( message.getType() == MessageType.WARNING ){%>
<div class="message" style="border: 2px solid #E6E600; padding: 0px; margin: 5px; background: #FFFF99 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b><%=message.getMessage() %></b></center>
</div>
<%} else if( message.getType() == MessageType.ERROR ){ %>
<div class="message" style="border: 2px solid #FF0000; padding: 0px; margin: 5px; background: #FFDDCC none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b><%=message.getMessage() %></b></center>
</div>
<%} else if( message.getType() == MessageType.INFO ){ %>
<div class="message" style="border: 2px solid #039C00; padding: 0px; margin: 5px; background: #9BFB66 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b><%=message.getMessage() %></b></center>
</div>
</c:forEach>
</div>

View file

@ -1,2 +0,0 @@
</body>
</html>

View file

@ -1,9 +1,23 @@
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" tagdir="/WEB-INF/tags" %>
<jsp:include page="fragment_header.jsp"/>
<jsp:include page="fragment_navbar.jsp"/>
<script type="text/javascript">
$(function(){
$('.image-grid').imagesLoaded(function(){
$('.grid').masonry({
itemSelector: '.grid-item',
columnWidth: '.grid-item',
});
});
});
</script>
<div class="content">
<div class="gallery col-center col-md-11">
@ -33,4 +47,3 @@
<jsp:include page="fragment_footer.jsp"/>

View file

@ -1,3 +1,6 @@
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" tagdir="/WEB-INF/tags" %>
<jsp:include page="fragment_header.jsp" />
<div class="container">

View file

@ -1,3 +1,6 @@
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" tagdir="/WEB-INF/tags" %>
<jsp:include page="fragment_header.jsp" />
<div class="container">

View file

@ -55,10 +55,7 @@
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Maven: se.koc:zutil:1.0.2-219" level="project" />
<orderEntry type="library" name="Maven: javax.mail:javax.mail-api:1.6.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
<orderEntry type="library" name="Maven: se.koc:zutil:1.0.2-219" level="project" />
<orderEntry type="module" module-name="Zutil" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />

View file

@ -21,7 +21,7 @@
<dependency>
<groupId>se.koc</groupId>
<artifactId>zutil</artifactId>
<version>1.0.2-219</version>
<version>1.0.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>

View file

@ -9,12 +9,13 @@ import javax.naming.NamingException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
@WebServlet(value = "/init", loadOnStartup = 1)
public class Zallery extends HttpServlet{
@ -39,7 +40,7 @@ public class Zallery extends HttpServlet{
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
// java:comp/env
logger.info("Setting up Zallery environment.");
ROOT_PATH = config.getServletContext().getRealPath("/");
try {
Context context = new InitialContext();
@ -47,18 +48,20 @@ public class Zallery extends HttpServlet{
if (((String) context.lookup("java:comp/env/DATA_PATH")).isEmpty())
throw new ServletException("Zallery has not been properly configured, set proper configuration in Zallery.xml context file.");
WEBSITE_NAME = (String)context.lookup("java:comp/env/WEBSITE_NAME");
WEBSITE_URL = (String)context.lookup("java:comp/env/WEBSITE_URL");
WEBSITE_NAME = (String) context.lookup("java:comp/env/WEBSITE_NAME");
WEBSITE_URL = (String) context.lookup("java:comp/env/WEBSITE_URL");
if( WEBSITE_URL.charAt(WEBSITE_URL.length()-1) != '/')
WEBSITE_URL += "/";
ADMIN_EMAIL = (String)context.lookup("java:comp/env/ADMIN_EMAIL");
ADMIN_EMAIL_NICE = (String)context.lookup("java:comp/env/ADMIN_EMAIL_NICE");
SMTP_HOST = (String)context.lookup("java:comp/env/SMTP_HOST");
DATA_PATH = (String)context.lookup("java:comp/env/DATA_PATH");
ADMIN_EMAIL = (String) context.lookup("java:comp/env/ADMIN_EMAIL");
ADMIN_EMAIL_NICE = (String) context.lookup("java:comp/env/ADMIN_EMAIL_NICE");
SMTP_HOST = (String) context.lookup("java:comp/env/SMTP_HOST");
DATA_PATH = (String) context.lookup("java:comp/env/DATA_PATH");
LogUtil.setLevel("zall", Level.FINEST);
//LogUtil.setLevel("zutil", Level.FINEST);
LogUtil.setLevel("zall", Level.parse((String) context.lookup("java:comp/env/LOGGING_ZALL")));
LogUtil.setLevel("zutil", Level.parse((String) context.lookup("java:comp/env/LOGGING_ZUTIL")));
logger.info("Zallery ready to be used.");
} catch (NamingException e) {
throw new ServletException(e);
}
@ -68,6 +71,7 @@ public class Zallery extends HttpServlet{
}
public static DBConnection getDB() throws ServletException{
try {
return new DBConnection("jdbc/mysql");
@ -76,4 +80,9 @@ public class Zallery extends HttpServlet{
}
}
public static UserMessageManager getUserMessage(HttpSession session) {
if (session.getAttribute(ZalleryConstants.SESSION_KEY_USER_MSG) == null)
session.setAttribute(ZalleryConstants.SESSION_KEY_USER_MSG, new UserMessageManager());
return (UserMessageManager) session.getAttribute(ZalleryConstants.SESSION_KEY_USER_MSG);
}
}

View file

@ -5,11 +5,11 @@ import java.util.Locale;
/**
* Zallery globally defined constants
*/
public interface ZalleryConstant {
public interface ZalleryConstants {
/** Session Constants **/
public static final String SESSION_KEY_USER_MSG = "zall_user_message";
/** Language Key Constants **/

View file

@ -12,7 +12,7 @@ import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.logging.Logger;
import static zall.ZalleryConstant.*;
import static zall.ZalleryConstants.*;
public abstract class ZalleryServlet extends HttpServlet {
private static Logger logger = LogUtil.getLogger();

View file

@ -10,7 +10,7 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction;
import zall.bean.User;
import zall.util.ZalleryEmail;
import zall.manager.EmailManager;
import zall.util.UserMessage;
import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection;
@ -32,7 +32,7 @@ public class ModifyUserAction extends ZalleryAction{
if( request.getParameter("enable") != null ){
target_user.setEnabled( true );
// Email the user about the activation
ZalleryEmail.sendActivationEmail(target_user);
EmailManager.sendActivationEmail(target_user);
}
// Disable user, can not disable one self!
else if( request.getParameter("disable") != null && !user.equals( target_user ) )
@ -48,9 +48,9 @@ public class ModifyUserAction extends ZalleryAction{
return;
}
target_user.save(db);
if( out != null )
if( out != null )
out.println("{ }");
else
else
msgs.add(MessageType.INFO, "Account changes saved.");
return;
}

View file

@ -11,7 +11,7 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.ZalleryEmail;
import zall.manager.EmailManager;
import zall.util.UserMessage;
import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection;
@ -41,7 +41,7 @@ public class ModifyUserStatusAction extends ZalleryAction{
else if( request.getParameter("oldPassword") != null )
if( target_user.getPassword().equals(request.getParameter("oldPassword")) )
target_user.setPassword( request.getParameter("password") );
else{
else{
if(out != null) out.println("{ \"error\": \"Wrong password!\"}");
else msgs.add(MessageType.ERROR, "Wrong password!");
return;
@ -51,8 +51,8 @@ public class ModifyUserStatusAction extends ZalleryAction{
target_user.setName( request.getParameter("name") );
target_user.save(db);
if( !user.isEmailVerified() )
ZalleryEmail.sendVerificationEmail( target_user );
if( out != null )
EmailManager.sendVerificationEmail( target_user );
if( out != null )
out.println("{ }");
else
msgs.add(MessageType.INFO, "Settings saved successfully.");

View file

@ -11,7 +11,7 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction;
import zall.bean.User;
import zall.util.ZalleryEmail;
import zall.manager.EmailManager;
import zall.util.UserMessage;
import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection;
@ -27,7 +27,7 @@ public class SendVerificationEmailAction extends ZalleryAction{
@Override
public void handleRequest(DBConnection db, HttpServletRequest request, HttpServletResponse response, HttpSession session,
PrintWriter out, User user, UserMessage msgs) throws SQLException, IOException {
User target_user = null;
if( request.getParameter("id") != null )
target_user = User.load(db, Long.parseLong( request.getParameter("id") ) );
@ -39,8 +39,8 @@ public class SendVerificationEmailAction extends ZalleryAction{
if( target_user != null ){
if( user.isSuperUser() ){
ZalleryEmail.sendVerificationEmail(target_user);
EmailManager.sendVerificationEmail(target_user);
logger.info("Verification email sent successfully to: "+user.getEmail());
if( out != null ) out.println("{ }");
else msgs.add(MessageType.INFO, "Verification email sent successfully.");

View file

@ -10,7 +10,7 @@ import javax.servlet.http.HttpSession;
import zall.action.ZalleryAction;
import zall.bean.User;
import zall.util.ZalleryEmail;
import zall.manager.EmailManager;
import zall.util.UserMessage;
import zall.util.UserMessage.MessageType;
import zutil.db.DBConnection;
@ -32,7 +32,7 @@ public class VerifyEmailAction extends ZalleryAction{
if (out != null) out.println("{ }");
else msgs.add(MessageType.INFO, "Your email has been successfully verified");
else {
ZalleryEmail.sendNewUserRegistrationToAdmin(verifiedUser, db);
EmailManager.sendNewUserRegistrationToAdmin(verifiedUser, db);
if (out != null) out.println("{ }");
else
msgs.add(MessageType.INFO, "Your email has been successfully verified, the account is waiting for activation by an admin.");

View file

@ -1,22 +1,22 @@
error.incorrect.user_or_pass=Wrong username or password!
info.sent.email.verification=A verification email has been sent, please click the link to continue.
info.created.account=Your account has successfully been created.
info.modify.folder.is.private=Folder is now private (not visible to other users).
info.modify.folder.is.public=Folder is now public (can be viewed by other users).
error.not.found.folder=The folder does not exist!
error.not.allowed.edit.folder=You are not authorize to edit this folder!
error.not.found.parameter=Parameter missing!
info.modify.successfully=Changes were saved successfully.
error.not.found.media=The media does not exist!
error.not.allowed.edit.media=You are not authorize to modify this media!
info.created.comment=Comment saved.
error.not.allowed.edit.user=You do not have permission to edit the user.
error.not.found.first.name=Please provide a valid first name!
error.not.found.last.name=Please provide a valid last name!
error.not.found.email=Please provide a valid email!
error.not.found.password=Please provide a valid password!
error.incorrect.password.matching=Provided passwords do not match!
error.email_exists=An account with that email already exists!
incorrect.user_or_pass=Wrong username or password!
email.verification.sent=A verification email has been sent, please click the link to continue.
account.created=Your account has successfully been created.
folder.modify.is.private=Folder is now private (not visible to other users).
folder.modify.is.public=Folder is now public (can be viewed by other users).
folder.not.found=The folder does not exist!
folder.modify.not.allowed=You are not authorize to edit this folder!
parameter.not.found=parameter missing!
modify.successfully=Changes were saved successfully.
media.not.found=The media does not exist!
media.modify.not.allowed=You are not authorize to modify this media!
comment.created=Comment saved.
user.modify.not.allowed=You do not have permission to edit the user.
parameter.not.found.first.name=Please provide a valid first name!
parameter.not.found.last.name=Please provide a valid last name!
parameter.not.found.email=Please provide a valid email!
parameter.not.found.password=Please provide a valid password!
parameter.incorrect.password.match=Provided passwords do not match!
parameter.email.exists=An account with that email already exists!
email.activation.title=Account activation at
email.activation.body=Your account has now been activated. You can now login and use the site.
email.activation.request.title=New user activation request at
@ -24,4 +24,7 @@ email.activation.request.body=A new user has registered for an account at
email.registration.title=Registration at
email.registration.body1=You receive this message because you have requested an account at
email.registration.body2=Please click the link below to verify your email address:
email.registration.body3=You will have to wait for an admin to activate your account after you have verified your email.
email.registration.body3=You will have to wait for an admin to activate your account after you have verified your email.
email.verification.success=Your email has been successfully verified.
email.verification.error=Email verification failed.
user.disabled=The account is disabled and waiting for account activation by an admin.

View file

@ -1,4 +1,28 @@
package zall.util;
/*
* The MIT License (MIT)
*
* Copyright (c) 2018 Ziver Koc
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package zall.manager;
import zall.Zallery;
import zall.bean.User;
@ -12,12 +36,12 @@ import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import static zall.ZalleryConstant.LANG_BASENAME;
import static zall.ZalleryConstants.LANG_BASENAME;
/**
*
*/
public class ZalleryEmail {
public class EmailManager {
private static ResourceBundle lang = PropertyResourceBundle.getBundle(LANG_BASENAME, Locale.getDefault());
public static void sendVerificationEmail(User user) throws IOException {

View file

@ -1,13 +1,16 @@
package zall.page;
import zall.Zallery;
import zall.ZalleryServlet;
import zall.bean.Folder;
import zall.bean.Media;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.MessageLevel;
import zutil.ui.UserMessageManager.UserMessage;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -30,7 +33,7 @@ public class GalleryServlet extends ZalleryServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
User user = AuthenticationManager.getUserSession(request.getSession());
Folder folder;
if (request.getParameter("folder") != null)
folder = Folder.load(db, Long.parseLong(request.getParameter("folder")));
else {
@ -41,7 +44,7 @@ public class GalleryServlet extends ZalleryServlet {
folder.save(db);
}
}
List<Media> list = Media.load(db, folder);
List<Folder> subFolders = Folder.loadSubFolders(db, folder, user);
@ -55,11 +58,11 @@ public class GalleryServlet extends ZalleryServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
User user = AuthenticationManager.getUserSession(request.getSession());
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
long id = Long.parseLong(request.getParameter("id"));
if (request.getParameter("id") == null) {
msgs.add(UserMessage.MessageType.ERROR, "id" + lang.getString("error.not.found.parameter"));
msgs.add(new UserMessage(MessageLevel.ERROR, "id " + lang.getString("parameter.not.found")));
return;
}
@ -77,16 +80,16 @@ public class GalleryServlet extends ZalleryServlet {
folder.setPrivate(!folder.isPrivate());
folder.save(db);
if (folder.isPrivate())
msgs.add(UserMessage.MessageType.INFO, lang.getString("info.modify.folder.is.private"));
msgs.add(new UserMessage(MessageLevel.SUCCESS, lang.getString("folder.modify.is.private")));
else
msgs.add(UserMessage.MessageType.INFO, lang.getString("info.modify.folder.is.public"));
msgs.add(new UserMessage(MessageLevel.SUCCESS, lang.getString("folder.modify.is.public")));
} else
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.allowed.edit.folder"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("folder.modify.not.allowed")));
} else
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.found.folder"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("folder.not.found")));
break;
}
doGet(request, response, db);
}
}

View file

@ -1,11 +1,13 @@
package zall.page;
import zall.Zallery;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.MessageLevel;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -46,7 +48,7 @@ public class LoginServlet extends ZalleryServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, ServletException, IOException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
User user = AuthenticationManager.authenticate(db,
request.getParameter(FORM_EMAIL),
request.getParameter(FORM_PASSWORD),
@ -59,7 +61,7 @@ public class LoginServlet extends ZalleryServlet {
}
// Failed login
else {
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.incorrect.user_or_pass"));
msgs.add(new UserMessageManager.UserMessage(MessageLevel.ERROR, lang.getString("incorrect.user_or_pass")));
}
doGet(request, response, db);

View file

@ -1,13 +1,16 @@
package zall.page;
import zall.Zallery;
import zall.ZalleryServlet;
import zall.bean.Comment;
import zall.bean.Media;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.MessageLevel;
import zutil.ui.UserMessageManager.UserMessage;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -27,10 +30,10 @@ public class MediaServlet extends ZalleryServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
if (request.getParameter("id") == null && request.getParameter("type") == null) {
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.found.parameter"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found")));
return;
}
try {
@ -46,12 +49,12 @@ public class MediaServlet extends ZalleryServlet {
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, ServletException, IOException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
User user = AuthenticationManager.getUserSession(request.getSession());
long id = Long.parseLong(request.getParameter("id"));
if (request.getParameter("id") == null || request.getParameter("type") == null) {
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.found.parameter"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found")));
return;
}
@ -69,7 +72,7 @@ public class MediaServlet extends ZalleryServlet {
media.addComment(cm);
media.save(db);
msgs.add(UserMessage.MessageType.INFO, lang.getString("info.created.comment"));
msgs.add(new UserMessage(MessageLevel.INFO, lang.getString("comment.created")));
break;
// -----------------------------------------
@ -83,11 +86,11 @@ public class MediaServlet extends ZalleryServlet {
media.setDescription(request.getParameter("description"));
media.save(db);
msgs.add(UserMessage.MessageType.INFO, lang.getString("info.modify.successfully"));
msgs.add(new UserMessage(MessageLevel.SUCCESS, lang.getString("modify.successfully")));
} else
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.allowed.edit.media"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("media.modify.not.allowed")));
} else
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.found.media"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("media.not.found")));
break;
}

View file

@ -1,11 +1,14 @@
package zall.page;
import zall.Zallery;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
import zall.util.UserMessage;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.MessageLevel;
import zutil.ui.UserMessageManager.UserMessage;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -17,33 +20,33 @@ import java.util.logging.Logger;
@WebServlet(ProfileServlet.URI)
public class ProfileServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
private static Logger logger = LogUtil.getLogger();
public static final String URI = "/profile";
private static final String JSP_FILE = "page_profile.jsp";
public static final String URI = "/profile";
private static final String JSP_FILE = "page_profile.jsp";
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException, SQLException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
User user = AuthenticationManager.getUserSession(request.getSession());
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException, SQLException {
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
User user = AuthenticationManager.getUserSession(request.getSession());
if(request.getParameter("id") != null){
User profile_user = User.load(db, Long.parseLong( request.getParameter("id") ));
if(AuthenticationManager.canEdit(user, profile_user)){
request.setAttribute("profile_user", profile_user);
} else {
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.not.allowed.edit.user"));
}
} else {
request.setAttribute("profile_user", user);
}
if (request.getParameter("id") != null) {
User profile_user = User.load(db, Long.parseLong(request.getParameter("id")));
if (AuthenticationManager.canEdit(user, profile_user)) {
request.setAttribute("profile_user", profile_user);
} else {
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("user.modify.not.allowed")));
}
} else {
request.setAttribute("profile_user", user);
}
include(JSP_FILE, request, response);
include(JSP_FILE, request, response);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
doGet(request, response, db);
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
doGet(request, response, db);
}
}

View file

@ -1,13 +1,15 @@
package zall.page;
import zall.Zallery;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.util.UserMessage.MessageType;
import zall.util.ZalleryEmail;
import zall.util.UserMessage;
import zall.manager.EmailManager;
import zutil.ObjectUtil;
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import zutil.ui.UserMessageManager;
import zutil.ui.UserMessageManager.MessageLevel;
import zutil.ui.UserMessageManager.UserMessage;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
@ -31,23 +33,27 @@ public class RegisterServlet extends ZalleryServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException, SQLException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
// Verify email address
String verifyEmailHash = request.getParameter("verifyemail");
if(!ObjectUtil.isEmpty(verifyEmailHash)){
if (!ObjectUtil.isEmpty(verifyEmailHash)) {
User verfUser = User.load(db, Long.parseLong(request.getParameter("id")));
if (verfUser != null) {
if( verfUser.verifyEmail(request.getParameter("hash")) ){
ZalleryEmail.sendNewUserRegistrationToAdmin(verfUser, db);
if (verfUser.verifyEmail(request.getParameter("hash"))) {
EmailManager.sendNewUserRegistrationToAdmin(verfUser, db);
verfUser.save(db);
msgs.add(MessageType.INFO, "Your email has been successfully verified.");
msgs.add(MessageType.WARNING, "The account is waiting account activation by an admin.");
msgs.add(new UserMessage(MessageLevel.SUCCESS, lang.getString("email.verification.success")));
msgs.add(new UserMessage(MessageLevel.WARNING, lang.getString("user.disabled")));
} else {
logger.severe("Email verification failed, incorrect hash " + verfUser.getEmail() +
"(user) " + request.getParameter("hash") + " = (server) " + verfUser.generateEmailVerificationHash());
msgs.add(new UserMessage(MessageLevel.ERROR, "Email verification failed."));
}
else
msgs.add(MessageType.ERROR, "Email verification failed!");
} else {
logger.severe("Email verification failed, unknown user: " + request.getParameter("id"));
msgs.add(new UserMessage(MessageLevel.ERROR, "Email verification failed."));
}
else msgs.add(MessageType.ERROR, "Invalid user id: "+request.getParameter("id"));
}
include(JSP_FILE, request, response);
@ -55,33 +61,33 @@ public class RegisterServlet extends ZalleryServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, IOException, ServletException {
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
UserMessageManager msgs = Zallery.getUserMessage(request.getSession());
/*
* 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);
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)
msgs.add(MessageType.ERROR, lang.getString("error.not.found.first.name"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found.first.name")));
if (lastName == null)
msgs.add(MessageType.ERROR, lang.getString("error.not.found.last.name"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found.last.name")));
if (email == null)
msgs.add(MessageType.ERROR, lang.getString("error.not.found.email"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found.email")));
if (password == null)
msgs.add(MessageType.ERROR, lang.getString("error.not.found.password"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found.password")));
if (passwordRe == null)
msgs.add(MessageType.ERROR, lang.getString("error.not.found.password"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.not.found.password")));
else if (passwordRe.equals(password))
msgs.add(MessageType.ERROR, lang.getString("error.incorrect.password.matching"));
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.incorrect.password.match")));
if(User.load(db, (String)request.getAttribute(INPUT_ID_EMAIL)) != null){
msgs.add(MessageType.ERROR, lang.getString("error.email_exists"));
if (User.load(db, (String) request.getAttribute(INPUT_ID_EMAIL)) != null) {
msgs.add(new UserMessage(MessageLevel.ERROR, lang.getString("parameter.email.exists")));
return;
}
@ -94,11 +100,11 @@ public class RegisterServlet extends ZalleryServlet {
user.setEmail(email);
user.setPassword(password);
user.save(db);
ZalleryEmail.sendVerificationEmail( user );
EmailManager.sendVerificationEmail(user);
request.getSession().setAttribute("user", user);
logger.info("Registered new user: "+user.getName()+".");
msgs.add(MessageType.INFO,
lang.getString("info.created.account") + " " + lang.getString("info.sent.email.verification"));
logger.info("Registered new user: " + user.getName() + ".");
msgs.add(new UserMessage(MessageLevel.INFO,
lang.getString("account.created") + " " + lang.getString("email.verification.sent")));
forward("/login", request, response);
}

View file

@ -22,10 +22,10 @@ public class UserListServlet extends ZalleryServlet {
private static final String JSP_FILE = "page_users.jsp";
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, SQLException, IOException {
List<User> users = User.load(db);
request.setAttribute("users", users);
include(JSP_FILE, request, response);
}
}
}

View file

@ -1,147 +0,0 @@
package zall.util;
import java.util.LinkedList;
import java.util.Queue;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import zutil.log.LogUtil;
/**
* This class represents all the messages to a single user.
* The class is implemented as an Iterator.
*
* <XMP>
* Example HTML:
*
<SCRIPT type="text/javascript">
jQuery(document).ready(function(){
jQuery(".message").click(function(){
jQuery(this).animate({
opacity: 0
}, 300).animate({
height: 0,
border: 0
}, 300, function(){
jQuery(this).css("display","none");
});
});
});
</SCRIPT>
<div class="menu">
<div class="message" style="border: 2px solid #E6E600; padding: 0px; margin: 5px; background: #FFFF99 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b>Warning:</b></center>
</div>
<div class="message" style="border: 2px solid #FF0000; padding: 0px; margin: 5px; background: #FFDDCC none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b>Error:</b></center>
</div>
<div class="message" style="border: 2px solid #039C00; padding: 0px; margin: 5px; background: #9BFB66 none repeat scroll 0%; font-size: 11px; color: black; border-radius: 7px;">
<center><b>Info:</b></center>
</div>
</div>
*
* </XMP>
*
* @author Ziver
*/
public class UserMessage{
public static final Logger logger = LogUtil.getLogger();
public static final String SESSION_USERMESSAGE_KEY = "AJAX_USER_MESSAGES";
/**
* Is the different types of messages
*/
public enum MessageType{
ERROR, WARNING, INFO
}
/**
* This class represents a single message to a user
*/
protected class Message{
MessageType type;
String msg;
}
/** is the queue that contains the messages **/
private Queue<Message> msg_queue;
/** is the current message **/
private Message current;
public UserMessage(){
msg_queue = new LinkedList<>();
}
//******** Queue methods
/**
* Adds a new message to the queue
*
* @param type is the type of the message
* @param msg is the message itself
*/
public void add(MessageType type, String msg){
Message m = new Message();
m.type = type;
m.msg = msg;
msg_queue.add( m );
logger.finer("Queueing(Size: "+msg_queue.size()+") user message: "+type+"= \""+msg+"\"");
}
/**
* @return if there is more messages in the queue
*/
public boolean hasNext(){
return msg_queue.size() != 0;
}
/**
* Polls a new message from the Queue
*
* @return if the poll was successful
*/
public boolean next(){
boolean tmp = hasNext();
current = msg_queue.poll();
return tmp;
}
public int size(){
return msg_queue.size();
}
public void clear(){
msg_queue.clear();
}
//******** Message Methods
/**
* @return the type of the current message
*/
public MessageType getType(){
return current.type;
}
/**
* @return the message of the current one
*/
public String getMessage(){
return current.msg;
}
//******** Static methods
public static UserMessage getUserMessage(HttpSession session){
if( session.getAttribute(SESSION_USERMESSAGE_KEY) == null ){
UserMessage msg = new UserMessage();
msg.setSession( session );
return msg;
}
return (UserMessage) session.getAttribute(SESSION_USERMESSAGE_KEY);
}
public void setSession(HttpSession session) {
session.setAttribute(SESSION_USERMESSAGE_KEY, this);
}
}