account.jsp
上传用户:guhaomin
上传日期:2007-06-10
资源大小:23203k
文件大小:15k
源码类别:

电子政务应用

开发平台:

Java

  1. <%
  2. /**
  3.  * $RCSfile: account.jsp,v $
  4.  * $Revision: 1.4 $
  5.  * $Date: 2000/12/27 22:39:45 $
  6.  */
  7. %>
  8. <%@ page 
  9. import="java.io.*,
  10.         java.text.*,
  11.             java.util.*,
  12.             java.net.*,
  13.             com.coolservlets.forum.*,
  14.             com.coolservlets.forum.util.*"
  15. errorPage="/mainctrl/bbs/error"
  16. %>
  17. <jsp:useBean id="BusinessName" scope="session" class="com.vnex.intranet.pub.BusinessSession" />
  18. <%! final int CREATE = 1;
  19. final int MANAGE = 2;
  20. final int PASSWORD = 3;
  21. final int LOGIN = 4;
  22. final int VIEW = 5;
  23.     final int FROMOA = 6;
  24. %>
  25. <% ////////////////////////
  26. // Authorization check
  27. // check for the existence of an authorization token
  28. Authorization authToken = SkinUtils.getUserAuthorization(request,response);
  29. // if the token was null, they're not authorized. Since this skin will
  30. // allow guests to view forums, we'll set a "guest" authentication
  31. // token
  32. if( authToken == null ) {
  33. authToken = AuthorizationFactory.getAnonymousAuthorization();
  34. }
  35. %>
  36. <% // Get parameters
  37. int     mode = ParamUtils.getIntParameter(request, "mode", -1);
  38. int     userID  = ParamUtils.getIntParameter(request, "user", -1);
  39. int     forumID = ParamUtils.getIntParameter(request, "forum", -1);
  40. boolean doCreate  = ParamUtils.getBooleanParameter(request, "doCreate");
  41. String  username  = ParamUtils.getParameter(request, "username");     // required to create account
  42. String  password  = ParamUtils.getParameter(request, "password"); // required to create account
  43. // ADD BY X.J.ZHANG
  44.     if ( mode == FROMOA && BusinessName.getDeptId() != -1 )
  45.     {
  46.         username = BusinessName.getUserName();
  47.         password = BusinessName.getPassword();
  48.     }
  49. String  password2  = ParamUtils.getParameter(request, "password2"); // required to create account
  50. String  email     = ParamUtils.getParameter(request, "email"); // required to create account
  51. String  URL = ParamUtils.getParameter(request, "URL");
  52. String  name = ParamUtils.getParameter(request, "name");
  53. String  sig = ParamUtils.getParameter(request, "signature");
  54. boolean emailVisible= ParamUtils.getCheckboxParameter(request, "emailVisible");
  55. boolean nameVisible = ParamUtils.getCheckboxParameter(request, "nameVisible");
  56. boolean autoLogin   = ParamUtils.getCheckboxParameter(request, "autoLogin");
  57. String  message = ParamUtils.getParameter(request, "message");
  58. if (message == null)
  59.     message = "";
  60. boolean emailOK = ( email != null && email.length() != 0 );
  61. boolean usernameOK = ( username != null && username.length() != 0 );
  62. boolean passwordOK = ( password != null && password.length() != 0 );
  63. passwordOK  = ((mode == LOGIN && passwordOK) || ( mode == FROMOA && passwordOK)                                  || (mode == CREATE && (passwordOK && password.equals(password2))) ||
  64.    (mode == MANAGE && ((password == null && password2 == null) || (passwordOK && password.equals(password2)))) );
  65. boolean requiredParamsOK = ( emailOK && usernameOK && passwordOK );
  66. boolean createSuccess  = false;
  67. String redirectPage = "/mainctrl/bbs/account?mode=" + mode; 
  68. User  user = null;
  69. %>
  70. <% // Create a ForumFactory object
  71. ForumFactory forumFactory = ForumFactory.getInstance(authToken);
  72. ProfileManager manager = forumFactory.getProfileManager();
  73. %>
  74. <% // Login in
  75. if (mode == LOGIN || mode ==FROMOA ) {
  76. // check to make sure the username and password are valid (ie, not null or blank)
  77. if( !usernameOK || !passwordOK ) {
  78. System.out.println("n not userNameOk or password Ok");
  79. message = "登陆失败。请检查您的用户名和密码!";
  80. response.sendRedirect( "/mainctrl/bbs/account?message=" + URLEncoder.encode(message) );
  81. return;
  82. }
  83. else {
  84. try {
  85. // get the user's authorization token
  86. System.out.println("request:"+request);
  87. System.out.println("response:"+response);
  88. System.out.println("username:"+username);
  89. System.out.println("password:"+password);
  90. System.out.println("autoLogin:"+autoLogin);
  91. authToken = SkinUtils.setUserAuthorizationByEncryptedPWD(request, response, username, password, autoLogin);
  92. // redirect to the main page
  93. response.sendRedirect( "/mainctrl/bbs/index" );
  94. return;
  95. }
  96. catch( UnauthorizedException ue ) {
  97. System.out.println("n catch exception when login the bbs n:"+ue);
  98. message = "登陆失败。请检查您的用户名和密码!";
  99. response.sendRedirect( "/mainctrl/bbs/account?message=" + URLEncoder.encode(message) );
  100. return;
  101. }
  102. }
  103. }
  104. // Create a new user, or change your account
  105. // check to make sure username, password and email are valid (ie, not null or blank)
  106. else if (doCreate && requiredParamsOK && (mode == CREATE || mode == MANAGE)) {
  107. try {
  108. if (mode == CREATE) {
  109. user = manager.createUser(username, password, email); // throws a UserAlreadyExistsException
  110. message = "帐户创建成功!";
  111. } else {
  112. user = manager.getUser(authToken.getUserID());
  113. message = "帐户修改成功!";
  114. }
  115. if (name != null && !name.equals(user.getName())) {
  116. user.setName(name);
  117. }
  118. if (password != null && mode == MANAGE) {
  119. user.setPassword(password);
  120. }
  121. if (email != null && !email.equals(user.getEmail())) {
  122. user.setEmail(email);
  123. }
  124. if (nameVisible != user.isNameVisible()) {
  125. user.setNameVisible(nameVisible);
  126. }
  127. if (emailVisible != user.isEmailVisible()) {
  128. user.setEmailVisible(emailVisible);
  129. }
  130. // IP, URL and Signature are extended properties:
  131. if (!request.getRemoteAddr().equals(user.getProperty("IP"))) {
  132. user.setProperty("IP", request.getRemoteAddr());
  133. }
  134. if (URL != null && !URL.equals(user.getProperty("URL"))) {
  135. user.setProperty("URL", URL);
  136. }
  137. if (sig != null && !sig.equals(user.getProperty("sig"))) {
  138. user.setProperty("sig", sig);
  139. }
  140. if (mode == CREATE) {
  141. authToken = SkinUtils.setUserAuthorization(request, response, username, password, autoLogin);
  142. }
  143. response.sendRedirect( redirectPage + "&message=" + URLEncoder.encode(message) );
  144. return;
  145. }
  146. catch( UserAlreadyExistsException uaee ) { 
  147. message = "对不起,用户已经存在!";
  148. response.sendRedirect( redirectPage +"&message=" + URLEncoder.encode(message) );
  149. return;
  150. }
  151. catch( UserNotFoundException unfe ) {
  152. message = "对不起,不存在此用户!";
  153. response.sendRedirect( redirectPage +"&message=" + URLEncoder.encode(message) );
  154. return;
  155. }
  156. catch( UnauthorizedException ue ) {
  157. java.io.StringWriter sw = new java.io.StringWriter();
  158. ue.printStackTrace(new PrintWriter(sw,true));
  159. message = "您没有授权。" + sw.toString();
  160. response.sendRedirect( redirectPage +"&message=" + URLEncoder.encode(message) );
  161. return;
  162. }
  163. }
  164. // View or Update a users attributes
  165. // check to make sure username, password and email are valid (ie, not null or blank)
  166. else if (!doCreate && (mode == VIEW || mode == MANAGE)) {
  167. try {
  168. if (mode == VIEW) {
  169. // userID? user = manager.getUser(authToken.getUserID());
  170. message = "帐户创建成功!";
  171. } else {
  172. user = manager.getUser(authToken.getUserID());
  173. }
  174. username = user.getUsername();
  175. name = user.getName();
  176. if (name == null) {
  177. name = (mode == VIEW) ? "不可见" : "";
  178. }
  179. email = user.getEmail();
  180. if (email == null) {
  181. email = (mode == VIEW) ? "不可见" : "";
  182. }
  183. nameVisible = user.isNameVisible();
  184. emailVisible = user.isEmailVisible();
  185. URL = user.getProperty("URL");
  186. sig = user.getProperty("sig");
  187. }
  188. catch( UserNotFoundException unfe ) {
  189. message = "对不起,不存在此用户!";
  190. response.sendRedirect( redirectPage +"&message=" + URLEncoder.encode(message) );
  191. return;
  192. }
  193. }
  194. else if (!doCreate && (mode == CREATE)) {
  195. nameVisible = true;
  196. emailVisible = true;
  197. }
  198. %>
  199. <% // header include
  200. String title = "管理您的帐户";
  201. %>
  202. <%@ include file="/skins/bay/header.jsp" %>
  203. <%-- begin breadcrumbs --%>
  204. <table bgcolor="#666666" cellpadding=0 cellspacing=0 border=0 width="600"> 
  205. <tr>
  206.     <td>
  207.         <font class="strongw"><a href="/mainctrl/home/index"><font color="#FFFFFF">首页</font></a>&gt;&gt;<a href="/mainctrl/communication/main"><font color="#FFFFFF">通信</font></a>&gt;&gt;<a href="/mainctrl/bbs/index" class="normal"><font color="#FFFFFF">论坛主页</font></a>
  208.         &gt;&gt;
  209.         <% if( mode > 0 ) { %>
  210.             <a href="/mainctrl/bbs/account" class="normal"><font color="#FFFFFF">用户帐户</font></a>
  211.             &gt;
  212.             <% if( mode == CREATE ) { %>
  213.                 创建帐户
  214.             <% } else if( mode == MANAGE ) { %>
  215.                 管理帐户
  216.             <% } else if( mode == PASSWORD ) { %>
  217.                 密码帮助
  218.             <% } else if( mode == LOGIN ) { %>
  219.                 用户登录
  220.             <% } else { %>
  221.             
  222.             <% } %>
  223.         <% } else { %>
  224.             用户登陆
  225.         <% } %>
  226.         </font>
  227.     </td>
  228. </tr>
  229. </table>
  230. <%-- end breadcrubms --%>
  231. <font color="#ff0000"><%= message %></font>
  232. <% if(mode == CREATE || mode == MANAGE) { %>
  233. <% // if we're trying to create a user and there's an error, print a message:
  234. if( !createSuccess && doCreate ) { %>
  235. 用户帐户创建失败。请纠正标记字段。
  236. <% } %>
  237. <form action="/mainctrl/bbs/account" method="post">
  238. <table cellspacing=1 cellpadding=2 border=0 bgcolor=#fafafa  width="600">
  239.         <tr>
  240.             <td>
  241.                 <input type="hidden" name="mode" value="<%= mode %>">
  242.                 <input type="hidden" name="doCreate" value="true">
  243.             </td>
  244.         </tr>
  245. <tr bgcolor="#fafafa">
  246. <td>
  247. <font class="strong">用户名:</font>
  248. <% if( !usernameOK && doCreate ) { %>
  249. <font color="#ff0000" face="arial,helvetica"><font class="strong">*</font></font>
  250. <% } %>
  251. </td>
  252. <td>
  253. <% if (mode == CREATE) { %>
  254. <input type="text" name="username" value="<%= username == null ? "" : username %>" size=20 maxlength=30 class=text>&nbsp;*&nbsp;(带*为必填内容)
  255. <% } else {%>
  256. <input type="hidden" name="username" value="<%= username == null ? "" : username %>" class=text>
  257. <%= username == null ? "[error]" : username %>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(带*为必填内容)
  258. <% } %>
  259. </td>
  260. </tr>
  261. <tr bgcolor="#e0e0e0">
  262. <td>
  263. <font class="strong">口令:</font>
  264. <% if( !passwordOK && doCreate ) { %>
  265. <font color="#ff0000" face="arial,helvetica"><font class="strong">*</font></font>
  266. <% } %>
  267. </td>
  268. <td><input class=text type="password" name="password" value="">&nbsp;*
  269. <% if (mode == CREATE) { %>
  270. <% } %>
  271. </td>
  272. </tr>
  273. <tr bgcolor="#fafafa">
  274. <td >
  275. <font class="strong">口令确认:</font>
  276. <% if( !passwordOK && doCreate ) { %>
  277. <font color="#ff0000" face="arial,helvetica"><font class="strong">*</font></font>
  278. <% } %>
  279. </td>
  280. <td><input class=text type="password" name="password2" value="">&nbsp;*
  281. <% if (mode == CREATE) { %>
  282. <% } %>
  283. </tr>
  284. <tr bgcolor="#e0e0e0">
  285. <td>
  286. <font class="strong">Email地址:</font>
  287. <% if( !emailOK && doCreate ) { %>
  288. <font color="#ff0000" face="arial,helvetica"><font class="strong">*</font></font>
  289. <% } %>
  290. </td>
  291. <td><input class=text type="text" name="email" value="<%= email == null ? "" : email %>" size=30 maxlength=30>&nbsp;*
  292. <% if (mode == CREATE) { %>
  293. <% } %>
  294. </td>
  295. </tr>
  296. <tr bgcolor="#fafafa">
  297. <td><font class="strong">姓名:</font></td>
  298. <td><input class=text type="text" name="name" value="<%= name == null ? "" : name %>" size=40 maxlength=50></td>
  299. </tr>
  300. <tr bgcolor="#e0e0e0">
  301. <td><font class="strong">URL:</font></td>
  302. <td><input class=text type="text" name="URL" value="<%= URL == null ? "" : URL %>" size=40 maxlength=255></td>
  303. </tr>
  304. <tr bgcolor="#fafafa">
  305. <td><font class="strong">签字档:</font><br>(不得多于224个字符,或112个汉字)</td>
  306. <td><textarea cols=40 rows=4 name="signature" wrap="virtual"><%= sig == null ? "" : sig %></textarea></td>
  307. </tr>
  308. <tr bgcolor="#e0e0e0">
  309. <td><font class="strong">显示姓名:</font></td>
  310. <td><input class=text type="checkbox" name="nameVisible" <%= nameVisible ? "checked" : "" %>></td>
  311. </tr>
  312. <tr bgcolor="#fafafa">
  313. <td><font class="strong">显示Email:</font></td>
  314. <td><input class=text type="checkbox" name="emailVisible" <%= emailVisible ? "checked" : "" %>></td>
  315. </tr>
  316. <% if (mode == CREATE) { %>
  317.      <tr bgcolor="#e0e0e0">
  318. <td><font class="strong">自动登录:</font></td>
  319. <td><input class=text type="checkbox" name="autoLogin"></td>
  320. </tr>
  321. <% } %>
  322. <tr>
  323. <td><br></td>
  324. <td><input class=text type="submit" value="<%= mode == CREATE ? "创建帐户" : "修改帐户" %>"></td>
  325. </tr>
  326. </table>
  327. </form>
  328. <% } else if( mode == PASSWORD ) { %>
  329. <font face="verdana" >
  330. <font class="strong">发送密码</font>
  331. <li> 还未实现
  332. </font>
  333. <%-- default mode: check if the authorization token references an anonymous user -- that means
  334.  the user is logged in already so we should display her account options
  335. --%>
  336. <% } else { %>
  337. <% user = manager.getUser( authToken.getUserID() );
  338. boolean anonUser = user.isAnonymous();
  339. %>
  340. <% if (anonUser) { %>
  341. <form action="/mainctrl/bbs/account" method="get">
  342. <input type="hidden" name="mode" value="<%= LOGIN %>">
  343. <table cellspacing=1 cellpadding=2 border=0 width="600">
  344.          <tr bgcolor="#fafafa">
  345.         <td colspan="2">如果没有帐户,请<a href="/mainctrl/bbs/account?mode=<%= CREATE %>" ><font class=strong>创建一个</font></a>。</td>
  346. </tr>
  347. <tr bgcolor="#e0e0e0">
  348.         <td colspan="2">我要<a href="/mainctrl/bbs/index" ><font class=strong>匿名访问</font></a></td>
  349. </tr>
  350. <tr bgcolor="#fafafa">
  351. <td align="right"><font face="verdana" class=strong>&nbsp;用户名:</font></td>
  352. <td><input class=text type="text" name="username" size="20"></td>
  353. </tr>
  354. <tr bgcolor="#e0e0e0">
  355. <td align="right"><font face="verdana" class=strong>&nbsp;口令:</font></td>
  356. <td><input class=text type="password" name="password" size="20"></td>
  357. </tr>
  358.          <tr bgcolor="#fafafa">
  359. <td align="right"><font face="verdana" class=strong>&nbsp;自动登陆:</font></td>
  360. <td><input class=text type="checkbox" name="autoLogin"></td>
  361. </tr>
  362. <tr bgcolor="#e0e0e0">
  363. <td align="center" colspan="2"><input class=text type="submit" value="登录"></td>
  364. </tr>
  365. </table>
  366. </form>
  367. <% } else { %>
  368.     <table class=title cellspacing=1 cellpadding=2 border=0 width="600">
  369.         <tr bgcolor="#fafafa">
  370.             <td>您-<font class="strong"><%= user.getUsername() %></font>已经登录。</td>
  371. </tr>
  372.      <tr bgcolor="#e0e0e0">
  373.             <td>我要[<a href="/mainctrl/bbs/index?logout=true" class="normal">退出</a>]</td>
  374.     </tr>
  375.      </table>
  376. <% } %>
  377. <% } %>
  378. <%@ include file="/skins/bay/footer.jsp" %>