package com.diodesoftware.scb.admin;
import com.diodesoftware.scb.ClipUtil;
import com.diodesoftware.scb.ClipSession;
import com.diodesoftware.scb.email.EmailMgr;
import com.diodesoftware.scb.tables.User;
import com.diodesoftware.scb.agents.UserAgent;
import com.diodesoftware.scb.agents.CookieAgent;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletContext;
import java.sql.Connection;
import org.apache.log4j.Logger;
/**
* Created by IntelliJ IDEA.
* User: Rob
* Date: Jul 3, 2006
* Time: 5:58:32 PM
* To change this template use File | Settings | File Templates.
*/
public class CreateAccountPage extends AdminPage {
protected String fileName;
private static Logger log = Logger.getLogger(CreateAccountPage.class);
public String doPage(HttpServletRequest request,
HttpServletResponse response,
ServletContext context,
Connection con) {
String errorMsg = null;
String run = request.getParameter("run");
UserAgent userAgent = UserAgent.getInstance();
CookieAgent cookieAgent = CookieAgent.getInstance();
String username = null;
String email = null;
String pagename = "create.html";
if (run != null) {
username = request.getParameter("username");
String password = request.getParameter("password");
String passwordVerify = request.getParameter("passwordVerify");
email = request.getParameter("email");
if (ClipUtil.isBlank(username)) {
errorMsg = "Username required";
} else if (ClipUtil.isBlank(password)) {
errorMsg = "Password is required";
} else if (!password.equals(passwordVerify)) {
errorMsg = "Passwords don't match";
}
if (errorMsg == null) {
int userId = userAgent.createUser(username, password, email, con);
if (userId == -1) {
errorMsg = "Username is already in use";
} else {
ClipSession session = ClipSession.getSession(request);
session.setUser(userAgent.load(userId, con));
ClipSession.getSession(request).setLoggedIn(true);
MenuPage mp = new MenuPage();
String s = mp.doPage(request, response, context, con);
//String redirectURL = "http://cl1p.net/cl1p-admin/accountCreated";
//session.setRedirect(redirectURL);
return s;
}
}
}
String loginMsg = null;
String login = request.getParameter("login");
if (login != null) {
User user = UserAgent.getInstance().login(request.getParameter("username"),
request.getParameter("password"), con);
if (user == null) {
loginMsg = "Invalid login";
} else {
ClipSession session = ClipSession.getSession(request);
if(request.getParameter("lcookie")!=null){
CookieAgent.getInstance().create(user.getNumber(), con, request, response);
}
session.setUser(user);
ClipSession.getSession(request).setLoggedIn(true);
MenuPage mp = new MenuPage();
return mp.doPage(request, response, context, con);
}
}
String forgot = request.getParameter("forgot");
if(forgot != null){
username = request.getParameter("username");
User user = UserAgent.getInstance().load(username, con);
if(user != null){
String emailTo = user.getEmail();
if(emailTo != null){
String newPassword = ClipUtil.genString(10);
user.setPassword(newPassword);
UserAgent.getInstance().save(user,con);
String subject = "cl1p.net account";
String message = "Your password has been reset to " + newPassword + ".";
try{
EmailMgr.getInstance().send("sys@cl1p.net", emailTo, subject, message, con);
}catch(Exception e){
log.error("Error sending email", e);
}
}
}
}
//Page page = new Page(context.getRealPath(pagename));
errorMsg = ClipUtil.blankNull(errorMsg);
email = ClipUtil.blankNull(email);
loginMsg = ClipUtil.blankNull(loginMsg);
request.setAttribute("RGDM-USERNAME", username);
request.setAttribute("RGDM-MESSAGE", errorMsg);
request.setAttribute("RGDM-EMAIL", email);
request.setAttribute("RGDM-LOGIN-MESSAGE", loginMsg);
return null;
}
}