Author: bbrossaud Date: 2010-07-28 15:52:36 +0200 (Wed, 28 Jul 2010) New Revision: 105 Url: http://chorem.org/repositories/revision/bow/105 Log: addition permanent token to the bow link and bowLink works in preferences and admin Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java trunk/src/main/webapp/admin.jsp trunk/src/main/webapp/bookmarkHome.jsp trunk/src/main/webapp/bookmarkSearch.jsp trunk/src/main/webapp/preferences.jsp Modified: trunk/src/main/java/org/chorem/bow/ControllerServlet.java =================================================================== --- trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-07-28 09:23:31 UTC (rev 104) +++ trunk/src/main/java/org/chorem/bow/ControllerServlet.java 2010-07-28 13:52:36 UTC (rev 105) @@ -138,12 +138,11 @@ log.debug("Going to actionLogout"); } this.actionLogout(request, response, session); - } else if (action.equals("home") && user != null) { + } else if (action.equals("home")) { if (log.isDebugEnabled()) { log.debug("Going to actionHome.jsp"); } - this.actionHome(request, user); - request.getRequestDispatcher("main.jsp").forward(request, response); + this.actionHome(request, response, session); } else if (action.equals("addUrl") && user != null) { if (log.isDebugEnabled()) { log.debug("Going to actionAddUrl"); @@ -455,7 +454,7 @@ } String searchLine = request.getParameter("searchLine"); if (searchLine == null) { - actionHome(request, user); + initHomePage(request, user); } else { actionSearch(request, user); } @@ -727,12 +726,8 @@ if (login == null) { request.getRequestDispatcher("error.jsp").forward(request, response); } else { - session.setAttribute("user", login); - Preference preference = proxy.restore(Preference.class, login.getWikittyId()); - session.setAttribute("preference", preference); - initializeToken(session, login); - actionHome(request, login); - checkAdmin(email, session); + initSession(session, login); + initHomePage(request, login); sendMail(email, password); request.getRequestDispatcher("main.jsp").forward(request, response); } @@ -752,13 +747,8 @@ password = StringUtil.encodeMD5(password); User login = this.checkLogin(email, password); // check if the user exists if (login != null) { - WikittyProxy proxy = BowProxy.getInstance(); - session.setAttribute("user", login); - Preference preference = proxy.restore(Preference.class, login.getWikittyId()); - session.setAttribute("preference", preference); - initializeToken(session, login); - checkAdmin(email, session); - actionHome(request, login); + initSession(session, login); + initHomePage(request, login); request.getRequestDispatcher("main.jsp").forward(request, response); } else { @@ -843,13 +833,9 @@ return true; } - /* @param request servlet request - * @param user User user - * @description initialize all for the home page - */ - protected void actionHome(HttpServletRequest request, User user) { - WikittyProxy proxy = BowProxy.getInstance(); - Criteria criteria = getBookmarkListCriteriaByUser(user, null); + protected void initHomePage(HttpServletRequest request, User user) { + WikittyProxy proxy = BowProxy.getInstance(); + Criteria criteria = getBookmarkListCriteriaByUser(user, null); if (criteria != null) { Criteria sortCriteria = criteria.addSortDescending(Bookmark.FQ_FIELD_CLICK); PagedResult<Bookmark> result = proxy.findAllByCriteria(Bookmark.class, sortCriteria); // select all bookmarks by user @@ -868,6 +854,37 @@ request.setAttribute("bookmarkActions", bookmarkActions); } } + + protected void initSession(HttpSession session, User user) throws NoSuchAlgorithmException { + WikittyProxy proxy = BowProxy.getInstance(); + session.setAttribute("user", user); + Preference preference = proxy.restore(Preference.class, user.getWikittyId()); + session.setAttribute("preference", preference); + initializeToken(session, user); + checkAdmin(user.getEmail(), session); + } + + /* @param request servlet request + * @param user User user + * @description initialize all for the home page + */ + protected void actionHome(HttpServletRequest request, HttpServletResponse response, HttpSession session) + throws ServletException, IOException, NoSuchAlgorithmException { + User user = (User) session.getAttribute("user"); + if (user == null) { + String token = request.getParameter("token"); + user = checkPermanentToken(token); + if (user != null) { + initSession(session, user); + } + } + if (user != null) { + initHomePage(request, user); + request.getRequestDispatcher("main.jsp").forward(request, response); + } else { + request.getRequestDispatcher("login.jsp").forward(request, response); + } + } /* @param request servlet request * @param response servlet response Modified: trunk/src/main/webapp/admin.jsp =================================================================== --- trunk/src/main/webapp/admin.jsp 2010-07-28 09:23:31 UTC (rev 104) +++ trunk/src/main/webapp/admin.jsp 2010-07-28 13:52:36 UTC (rev 105) @@ -2,13 +2,16 @@ <%@page import="org.chorem.bow.Preference" %> <%@page import="org.chorem.bow.User" %> +<%@page import="org.chorem.bow.TokenActions" %> <% User user = (User) session.getAttribute("user"); Preference preference = (Preference) session.getAttribute("preference"); - if (user != null && preference != null) { + TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); + if (user != null && preference != null && tokenActions != null) { String url = (String) request.getAttribute("bowUrl"); String version = (String) request.getAttribute("version"); + String permanentToken = tokenActions.getPermanentToken(); String check = preference.getColors(); if (check == null) { preference.setColors(""); @@ -35,7 +38,7 @@ <div id="headback"> <div id="head"> <div id="headleft"> - <a class="logo" href="bow">bow</a> + <a class="logo" href="<%=url%>?action=home&token=<%=permanentToken%>">bow</a> </div> </div> </div> Modified: trunk/src/main/webapp/bookmarkHome.jsp =================================================================== --- trunk/src/main/webapp/bookmarkHome.jsp 2010-07-28 09:23:31 UTC (rev 104) +++ trunk/src/main/webapp/bookmarkHome.jsp 2010-07-28 13:52:36 UTC (rev 105) @@ -60,7 +60,7 @@ <div id="headback"> <div id="head"> <div id="headleft"> - <a class="logo" href="<%=url%>?action=home">bow</a>(Bookmarks On the Web) + <a class="logo" href="<%=url%>?action=home&token=<%=permanentToken%>">bow</a>(Bookmarks On the Web) </div> <div id="headright"> <form method="POST" action="bow?action=logout"> Modified: trunk/src/main/webapp/bookmarkSearch.jsp =================================================================== --- trunk/src/main/webapp/bookmarkSearch.jsp 2010-07-28 09:23:31 UTC (rev 104) +++ trunk/src/main/webapp/bookmarkSearch.jsp 2010-07-28 13:52:36 UTC (rev 105) @@ -60,7 +60,7 @@ <div id="headback"> <div id="head"> <div id="headleft"> - <a class="logo" href="<%=url%>?action=home">bow</a>(Bookmarks On the Web) + <a class="logo" href="<%=url%>?action=home&token=<%=permanentToken%>">bow</a>(Bookmarks On the Web) </div> <div id="headright"> <form method="POST" action="bow?action=logout"> Modified: trunk/src/main/webapp/preferences.jsp =================================================================== --- trunk/src/main/webapp/preferences.jsp 2010-07-28 09:23:31 UTC (rev 104) +++ trunk/src/main/webapp/preferences.jsp 2010-07-28 13:52:36 UTC (rev 105) @@ -2,13 +2,16 @@ <%@page import="org.chorem.bow.Preference" %> <%@page import="org.chorem.bow.User" %> +<%@page import="org.chorem.bow.TokenActions" %> <% User user = (User) session.getAttribute("user"); Preference preference = (Preference) session.getAttribute("preference"); - if (user != null && preference != null) { + TokenActions tokenActions = (TokenActions) session.getAttribute("tokenActions"); + if (user != null && preference != null && tokenActions != null) { String url = (String) request.getAttribute("bowUrl"); String version = (String) request.getAttribute("version"); + String permanentToken = tokenActions.getPermanentToken(); String check = preference.getColors(); if (check == null) { preference.setColors(""); @@ -35,7 +38,7 @@ <div id="headback"> <div id="head"> <div id="headleft"> - <a class="logo" href="bow">bow</a> + <a class="logo" href="<%=url%>?action=home&token=<%=permanentToken%>">bow</a> </div> </div> </div>