You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/14 06:42:59 UTC
svn commit: r1384647 - in /incubator/openmeetings/trunk/singlewebapp:
WebContent/openmeetings/css/ src/org/apache/openmeetings/web/app/
src/org/apache/openmeetings/web/pages/
src/org/apache/openmeetings/web/pages/auth/
Author: solomax
Date: Fri Sep 14 04:42:58 2012
New Revision: 1384647
URL: http://svn.apache.org/viewvc?rev=1384647&view=rev
Log:
Wicket: Logoout is implemented;
Wicket live session are now accessible;
Double sign-in is made impossible;
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.html
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css Fri Sep 14 04:42:58 2012
@@ -19,7 +19,17 @@
#topLinks {
position: absolute;
top: 10px;
- right: 0px;
+ right: 10px;
+}
+
+#topLinks span {
+ padding-right: 5px;
+ padding-left: 5px;
+ border-right: 1px solid black;
+}
+
+#topLinks span:last-child {
+ border-right: none;
}
#menu {
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java Fri Sep 14 04:42:58 2012
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.app;
+import java.util.concurrent.ConcurrentHashMap;
+
import org.apache.openmeetings.web.pages.MainPage;
import org.apache.openmeetings.web.pages.auth.SignInPage;
import org.apache.wicket.Page;
@@ -33,11 +35,14 @@ import org.apache.wicket.protocol.http.W
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.mapper.info.PageComponentInfo;
+import org.apache.wicket.session.ISessionStore.UnboundListener;
import org.apache.wicket.settings.IPageSettings;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class Application extends AuthenticatedWebApplication {
+ private ConcurrentHashMap<String, WebSession> liveSessions = new ConcurrentHashMap<String, WebSession>(100); //TODO need to investigate
+
@Override
protected void init() {
IPageSettings pageSettings = getPageSettings();
@@ -69,6 +74,18 @@ public class Application extends Authent
}
}
});
+
+ getSessionStore().registerUnboundListener(new UnboundListener() {
+ public void sessionUnbound(String sessionId) {
+ liveSessions.remove(sessionId);
+ }
+ });
+ }
+
+ void addLiveSession(WebSession session) {
+ if (!liveSessions.containsKey(session.getId())) {
+ liveSessions.put(session.getId(), session);
+ }
}
@Override
@@ -82,7 +99,7 @@ public class Application extends Authent
}
@Override
- protected Class<? extends WebPage> getSignInPageClass() {
+ public Class<? extends WebPage> getSignInPageClass() {
return SignInPage.class;
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java Fri Sep 14 04:42:58 2012
@@ -41,6 +41,14 @@ public class WebSession extends Abstract
}
@Override
+ public void invalidate() {
+ super.invalidate();
+ userId = -1;
+ userLevel = -1;
+ SID = null;
+ }
+
+ @Override
public Roles getRoles() {
Roles r = null;
if (isSignedIn()) {
@@ -70,6 +78,7 @@ public class WebSession extends Abstract
if (u instanceof Users) {
userId = ((Users)u).getUser_id();
+ Application.get().addLiveSession(this);
return true;
}
return false;
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.html?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.html Fri Sep 14 04:42:58 2012
@@ -38,7 +38,11 @@
</script>
</wicket:head>
<wicket:extend>
- <div id="topLinks"><wicket:ommessage key="1188"/>|<wicket:ommessage key="5"/>|<wicket:ommessage key="310"/>|<wicket:ommessage key="284"/></div>
+ <div id="topLinks"><span
+ id="contactsAndMessages"><wicket:ommessage key="1188"/></span><span
+ id="profile"><wicket:ommessage key="5"/></span><span
+ id="logout"><a wicket:id="logout"><wicket:ommessage key="310"/></a></span><span
+ id="reportBug"><wicket:ommessage key="284"/></span></div>
<div id="busy_indicator">Loading ...</div>
<div wicket:id="menu"></div>
<div wicket:id="contents"><div wicket:id="child"></div></div>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java Fri Sep 14 04:42:58 2012
@@ -18,9 +18,12 @@
*/
package org.apache.openmeetings.web.pages;
+import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.components.MenuPanel;
import org.apache.openmeetings.web.components.user.ChatPanel;
import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -35,6 +38,15 @@ public class MainPage extends BasePage {
add(contents);
menu = new MenuPanel("menu", contents);
add(menu);
+ add(new AjaxLink<Void>("logout") {
+ private static final long serialVersionUID = -2994610981053570537L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ getSession().invalidate();
+ setResponsePage(Application.get().getSignInPageClass());
+ }
+ });
add(new ChatPanel("chat"));
}
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1384647&r1=1384646&r2=1384647&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java Fri Sep 14 04:42:58 2012
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.page
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.BasePage;
+import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
@@ -36,6 +37,9 @@ public class SignInPage extends BasePage
}
public SignInPage() {
+ if (WebSession.get().isSignedIn()) {
+ throw new RestartResponseException(Application.get().getHomePage());
+ }
add(new SignInForm("signin"));
}