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"));
 	}