Mercurial Hosting > nabble
comparison src/nabble/view/web/user/EditProfile.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children | 18cf4872fd7f |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:7ecd1a4ef557 |
---|---|
1 | |
2 package nabble.view.web.user; | |
3 | |
4 import fschmidt.db.DbDatabase; | |
5 import fschmidt.util.java.HtmlUtils; | |
6 import fschmidt.util.servlet.ServletUtils; | |
7 import nabble.model.Db; | |
8 import nabble.model.ModelException; | |
9 import nabble.model.User; | |
10 import nabble.view.lib.Jtp; | |
11 import nabble.view.lib.Shared; | |
12 import nabble.view.lib.help.Help; | |
13 | |
14 import javax.servlet.ServletException; | |
15 import javax.servlet.http.HttpServlet; | |
16 import javax.servlet.http.HttpServletRequest; | |
17 import javax.servlet.http.HttpServletResponse; | |
18 import java.io.IOException; | |
19 import java.io.PrintWriter; | |
20 | |
21 | |
22 public final class EditProfile extends HttpServlet { | |
23 | |
24 protected void service(HttpServletRequest request,HttpServletResponse response) | |
25 throws ServletException, IOException | |
26 { | |
27 PrintWriter out = response.getWriter(); | |
28 User user = Jtp.getUser(request,response); | |
29 if( user==null ) { | |
30 Jtp.login("You must login to edit your profile.",request,response); | |
31 return; | |
32 } | |
33 String password1 = null; | |
34 String password2 = null; | |
35 String name; | |
36 String errorMsg = null; | |
37 | |
38 if ("save".equals(request.getParameter("action")) && "POST".equals(request.getMethod())) { | |
39 password1 = request.getParameter("password1"); | |
40 password2 = request.getParameter("password2"); | |
41 name = request.getParameter("name"); | |
42 if (!password1.equals(password2) ) { | |
43 errorMsg = "The password fields don't match."; | |
44 } else if (password1.length() > 0 && password1.trim().length() == 0) { | |
45 errorMsg = "Your password must contain valid alphanumeric characters."; | |
46 } else { | |
47 DbDatabase db = user.getSite().getDb(); | |
48 db.beginTransaction(); | |
49 try { | |
50 User u = user.getGoodCopy(); | |
51 if (password1.length() > 0) | |
52 u.setPassword(password1); | |
53 u.setName(name); | |
54 u.update(); | |
55 db.commitTransaction(); | |
56 String pwd = u.getPasscookie(); | |
57 ServletUtils.setCookie(request,response,"username", HtmlUtils.urlEncode(name), false, null); | |
58 ServletUtils.setCookie(request,response,"password", HtmlUtils.urlEncode(pwd), false, null); | |
59 | |
60 StringBuffer js = new StringBuffer(); | |
61 js.append("if (parent.nabbleinfo) {"); | |
62 js.append("Nabble.setCookie('username','").append(HtmlUtils.javascriptStringEncode(HtmlUtils.urlEncode(name))).append("');"); | |
63 js.append("Nabble.setCookie('password','").append(HtmlUtils.javascriptStringEncode(HtmlUtils.urlEncode(pwd))).append("');"); | |
64 js.append("}"); | |
65 | |
66 Shared.javascriptRedirect(request,response, "/template/NamlServlet.jtp?macro=user_profile", js.toString()); | |
67 return; | |
68 } catch(ModelException e) { | |
69 errorMsg = e.getMessage(); | |
70 } finally { | |
71 db.endTransaction(); | |
72 } | |
73 } | |
74 } else { | |
75 name = user.getName(); | |
76 } | |
77 | |
78 out.print( "\r\n<html>\r\n <head>\r\n " ); | |
79 Shared.title(request,response,"Edit Personal Information"); | |
80 out.print( "\r\n </head>\r\n <body>\r\n " ); | |
81 Shared.minHeaderGlobal(request, response); | |
82 out.print( "\r\n " ); | |
83 Shared.profileHeading(request,out,user,"Edit Personal Information"); | |
84 out.print( "\r\n " ); | |
85 Shared.errorMessage(request,response,errorMsg, "Please re-enter the information and click on \"Update Information\"."); | |
86 out.print( "\r\n <style>\r\n div.field-title {\r\n margin-top: 0;\r\n }\r\n </style>\r\n <form method=post action=\"EditProfile.jtp\">\r\n <input type=hidden name=\"action\" value=\"save\">\r\n\r\n <div class=\"field-box light-border-color\">\r\n <div class=\"second-font field-title\">Email</div>\r\n <div class=\"weak-color\">\r\n " ); | |
87 out.print( (user.getEmail()) ); | |
88 out.print( "\r\n » <a href=\"ChangeEmail.jtp\">Change Email</a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field-box light-border-color\" id=\"username-field\" >\r\n <div class=\"second-font field-title\">Your User Name</div>\r\n <div class=\"weak-color\">\r\n Your user name must be unique in " ); | |
89 out.print( (user.getSite().getRootNode().getSubjectHtml()) ); | |
90 out.print( ".\r\n </div>\r\n <div><input name=\"name\" size=\"25\" maxlength=\"25\" value=\"" ); | |
91 out.print( (HtmlUtils.htmlEncode(Jtp.hideNull(name))) ); | |
92 out.print( "\" /></div>\r\n </div>\r\n\r\n <div class=\"field-box light-border-color\">\r\n <div class=\"second-font field-title\">Change Password</div>\r\n <div class=\"weak-color\">Nabble encrypts your password (<a href=\"" ); | |
93 out.print( (Help.password.url(request)) ); | |
94 out.print( "\">?</a>)</div>\r\n <table style=\"margin: .4em 0\" class=\"shaded-bg-color\">\r\n <tr valign=\"top\">\r\n <td class=\"form-label\" style=\"padding-top:.6em\">Password: </td>\r\n <td><input type=\"password\" name=\"password1\" size=\"25\" value=\"" ); | |
95 out.print( (Jtp.hideNull(password1)) ); | |
96 out.print( "\"/></td>\r\n </tr>\r\n <tr>\r\n <td class=\"form-label\">Confirm Password: </td>\r\n <td><input type=\"password\" name=\"password2\" size=\"25\" value=\"" ); | |
97 out.print( (Jtp.hideNull(password2)) ); | |
98 out.print( "\"/></td>\r\n </tr>\r\n </table>\r\n </div>\r\n\r\n <div class=\"field-box light-border-color\" style=\"padding-top:0\">\r\n <input type=submit value=\"Update Personal Information\" />\r\n or <a href=\"/template/NamlServlet.jtp?macro=user_profile\">Cancel</a>\r\n </div>\r\n </form>\r\n\r\n " ); | |
99 Shared.footer(request,response); | |
100 out.print( "\r\n " ); | |
101 Shared.analytics(request,response); | |
102 out.print( "\r\n </body>\r\n</html>\r\n" ); | |
103 | |
104 } | |
105 } | |
106 |