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 2016/08/22 04:36:52 UTC

svn commit: r1757105 - in /openmeetings/application: branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/ branches/3.1.x/openmeetings-w...

Author: solomax
Date: Mon Aug 22 04:36:51 2016
New Revision: 1757105

URL: http://svn.apache.org/viewvc?rev=1757105&view=rev
Log:
[OPENMEETINGS-1138] room invitation hash seems to work

Modified:
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java Mon Aug 22 04:36:51 2016
@@ -97,6 +97,7 @@ public class InvitationDao {
 					i.setAllowEntry(true);
 					break;
 			}
+			em.detach(i); // required to disable password update
 			if (hidePass) {
 				i.setPassword(null);
 			}

Modified: openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java Mon Aug 22 04:36:51 2016
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.service.room;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
-import static org.apache.openmeetings.util.CalendarHelper.getZoneId;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.Date;
@@ -49,15 +48,12 @@ import org.apache.openmeetings.service.m
 import org.apache.openmeetings.service.mail.template.CreatedAppointmentTemplate;
 import org.apache.openmeetings.service.mail.template.InvitationTemplate;
 import org.apache.openmeetings.service.mail.template.UpdatedAppointmentTemplate;
-import org.apache.openmeetings.util.CalendarHelper;
 import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.mail.IcalHandler;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.threeten.bp.LocalDateTime;
-import org.threeten.bp.ZonedDateTime;
 
 /**
  * 

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 04:36:51 2016
@@ -20,11 +20,11 @@ package org.apache.openmeetings.web.app;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
+import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 import static org.red5.logging.Red5LoggerFactory.getLogger;
 import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
-import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 04:36:51 2016
@@ -73,10 +73,12 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseAtInterceptPageException;
+import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -155,6 +157,7 @@ public class WebSession extends Abstract
 
 	@Override
 	public Roles getRoles() {
+		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -188,7 +191,7 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes(boolean redirect) {
+	public void checkHashes() {
 		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
 		StringValue secureHash = params.getParameterValue(SECURE_HASH);
 		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
@@ -224,14 +227,12 @@ public class WebSession extends Abstract
 			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
 				if (roomId != null) {
 					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					if (redirect) {
-						throw new RestartResponseAtInterceptPageException(SwfPage.class, pp);
-					}
-				} else if (recordingId != null && redirect){
-					throw new RestartResponseAtInterceptPageException(RecordingPage.class, pp);
+					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
+				} else if (recordingId != null){
+					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
 				}
 			}
-		} catch (RestartResponseAtInterceptPageException e) {
+		} catch (RestartResponseException e) {
 			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java Mon Aug 22 04:36:51 2016
@@ -27,15 +27,6 @@ import org.apache.openmeetings.web.app.W
 public abstract class BaseInitedPage extends BasePage {
 	private static final long serialVersionUID = 1L;
 
-	public BaseInitedPage() {
-		super();
-		WebSession.get().checkHashes(getHashRedirect());
-	}
-
-	protected boolean getHashRedirect() {
-		return true;
-	}
-
 	@Override
 	protected String getApplicationName() {
 		return getBean(ConfigurationDao.class).getAppName();

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java Mon Aug 22 04:36:51 2016
@@ -53,7 +53,7 @@ public abstract class BasePage extends A
 	protected abstract boolean isRtl();
 	protected abstract String getLanguageCode();
 	protected abstract String getApplicationName();
-	
+
 	public BasePage() {
 		options = new HashMap<String, String>();
 		options.put("fragmentIdentifierSuffix", "");
@@ -68,7 +68,7 @@ public abstract class BasePage extends A
 		add(new Label("pageTitle", appName));
 		add(header = new HeaderPanel("header", appName));
 	}
-	
+
 	protected OmUrlFragment getUrlFragment(IRequestParameters params) {
 		for (AreaKeys key : AreaKeys.values()) {
 			StringValue type = params.getParameterValue(key.name());
@@ -78,11 +78,11 @@ public abstract class BasePage extends A
 		}
 		return null;
 	}
-	
+
 	public HeaderPanel getHeader() {
 		return header;
 	}
-	
+
 	@Override
 	protected Map<String, String> getOptions() {
 		return options;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java Mon Aug 22 04:36:51 2016
@@ -50,7 +50,7 @@ public class InvitationPasswordDialog ex
 	private final IUpdatable comp;
 
 	public InvitationPasswordDialog(String id, IUpdatable comp) {
-		super(id, Application.getString(524));
+		super(id, Application.getString(230));
 		this.comp = comp;
 		password.setLabel(Model.of(Application.getString(536))).add(new IValidator<String>(){
 			private static final long serialVersionUID = 1L;
@@ -68,7 +68,8 @@ public class InvitationPasswordDialog ex
 	@Override
 	public void onConfigure(JQueryBehavior behavior) {
 		super.onConfigure(behavior);
-		behavior.setOption("autoOpen", WebSession.get().getInvitation().isPasswordProtected());
+		Invitation i = WebSession.get().getInvitation();
+		behavior.setOption("autoOpen", i != null && i.isPasswordProtected());
 		behavior.setOption("closeOnEscape", false);
 		behavior.setOption("dialogClass", Options.asString("no-close"));
 		behavior.setOption("resizable", false);

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java Mon Aug 22 04:36:51 2016
@@ -39,9 +39,9 @@ public class RecordingPage extends BaseI
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
 	public RecordingPage(PageParameters p) {
+		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;
-		WebSession ws = WebSession.get();
 		if (!hash.isEmpty()) {
 			ws.signIn(hash.toString(), true);
 		}
@@ -60,11 +60,6 @@ public class RecordingPage extends BaseI
 	}
 
 	@Override
-	protected boolean getHashRedirect() {
-		return false;
-	}
-
-	@Override
 	protected void onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target) {
 	}
 	

Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java Mon Aug 22 04:36:51 2016
@@ -97,6 +97,7 @@ public class InvitationDao {
 					i.setAllowEntry(true);
 					break;
 			}
+			em.detach(i); // required to disable password update
 			if (hidePass) {
 				i.setPassword(null);
 			}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 04:36:51 2016
@@ -20,11 +20,11 @@ package org.apache.openmeetings.web.app;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
+import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 import static org.red5.logging.Red5LoggerFactory.getLogger;
 import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
-import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 04:36:51 2016
@@ -73,10 +73,12 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseAtInterceptPageException;
+import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -155,6 +157,7 @@ public class WebSession extends Abstract
 
 	@Override
 	public Roles getRoles() {
+		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -188,7 +191,7 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes(boolean redirect) {
+	public void checkHashes() {
 		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
 		StringValue secureHash = params.getParameterValue(SECURE_HASH);
 		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
@@ -224,14 +227,12 @@ public class WebSession extends Abstract
 			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
 				if (roomId != null) {
 					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					if (redirect) {
-						throw new RestartResponseAtInterceptPageException(SwfPage.class, pp);
-					}
-				} else if (recordingId != null && redirect){
-					throw new RestartResponseAtInterceptPageException(RecordingPage.class, pp);
+					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
+				} else if (recordingId != null){
+					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
 				}
 			}
-		} catch (RestartResponseAtInterceptPageException e) {
+		} catch (RestartResponseException e) {
 			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java Mon Aug 22 04:36:51 2016
@@ -27,15 +27,6 @@ import org.apache.openmeetings.web.app.W
 public abstract class BaseInitedPage extends BasePage {
 	private static final long serialVersionUID = 1L;
 
-	public BaseInitedPage() {
-		super();
-		WebSession.get().checkHashes(getHashRedirect());
-	}
-
-	protected boolean getHashRedirect() {
-		return true;
-	}
-
 	@Override
 	protected String getApplicationName() {
 		return getBean(ConfigurationDao.class).getAppName();

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java Mon Aug 22 04:36:51 2016
@@ -53,7 +53,7 @@ public abstract class BasePage extends A
 	protected abstract boolean isRtl();
 	protected abstract String getLanguageCode();
 	protected abstract String getApplicationName();
-	
+
 	public BasePage() {
 		options = new HashMap<String, String>();
 		options.put("fragmentIdentifierSuffix", "");
@@ -68,7 +68,7 @@ public abstract class BasePage extends A
 		add(new Label("pageTitle", appName));
 		add(header = new HeaderPanel("header", appName));
 	}
-	
+
 	protected OmUrlFragment getUrlFragment(IRequestParameters params) {
 		for (AreaKeys key : AreaKeys.values()) {
 			StringValue type = params.getParameterValue(key.name());
@@ -78,11 +78,11 @@ public abstract class BasePage extends A
 		}
 		return null;
 	}
-	
+
 	public HeaderPanel getHeader() {
 		return header;
 	}
-	
+
 	@Override
 	protected Map<String, String> getOptions() {
 		return options;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java Mon Aug 22 04:36:51 2016
@@ -50,7 +50,7 @@ public class InvitationPasswordDialog ex
 	private final IUpdatable comp;
 
 	public InvitationPasswordDialog(String id, IUpdatable comp) {
-		super(id, Application.getString(524));
+		super(id, Application.getString(230));
 		this.comp = comp;
 		password.setLabel(Model.of(Application.getString(536))).add(new IValidator<String>(){
 			private static final long serialVersionUID = 1L;
@@ -68,7 +68,8 @@ public class InvitationPasswordDialog ex
 	@Override
 	public void onConfigure(JQueryBehavior behavior) {
 		super.onConfigure(behavior);
-		behavior.setOption("autoOpen", WebSession.get().getInvitation().isPasswordProtected());
+		Invitation i = WebSession.get().getInvitation();
+		behavior.setOption("autoOpen", i != null && i.isPasswordProtected());
 		behavior.setOption("closeOnEscape", false);
 		behavior.setOption("dialogClass", Options.asString("no-close"));
 		behavior.setOption("resizable", false);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java Mon Aug 22 04:36:51 2016
@@ -39,9 +39,9 @@ public class RecordingPage extends BaseI
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
 	public RecordingPage(PageParameters p) {
+		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;
-		WebSession ws = WebSession.get();
 		if (!hash.isEmpty()) {
 			ws.signIn(hash.toString(), true);
 		}
@@ -60,11 +60,6 @@ public class RecordingPage extends BaseI
 	}
 
 	@Override
-	protected boolean getHashRedirect() {
-		return false;
-	}
-
-	@Override
 	protected void onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target) {
 	}
 	

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java Mon Aug 22 04:36:51 2016
@@ -97,6 +97,7 @@ public class InvitationDao {
 					i.setAllowEntry(true);
 					break;
 			}
+			em.detach(i); // required to disable password update
 			if (hidePass) {
 				i.setPassword(null);
 			}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 04:36:51 2016
@@ -20,11 +20,11 @@ package org.apache.openmeetings.web.app;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
+import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 import static org.red5.logging.Red5LoggerFactory.getLogger;
 import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
-import static org.apache.openmeetings.web.app.WebSession.INVITATION_HASH;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 04:36:51 2016
@@ -73,10 +73,12 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseAtInterceptPageException;
+import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.core.request.handler.PageProvider;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -155,6 +157,7 @@ public class WebSession extends Abstract
 
 	@Override
 	public Roles getRoles() {
+		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -188,7 +191,7 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes(boolean redirect) {
+	public void checkHashes() {
 		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
 		StringValue secureHash = params.getParameterValue(SECURE_HASH);
 		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
@@ -224,14 +227,12 @@ public class WebSession extends Abstract
 			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
 				if (roomId != null) {
 					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					if (redirect) {
-						throw new RestartResponseAtInterceptPageException(SwfPage.class, pp);
-					}
-				} else if (recordingId != null && redirect){
-					throw new RestartResponseAtInterceptPageException(RecordingPage.class, pp);
+					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
+				} else if (recordingId != null){
+					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
 				}
 			}
-		} catch (RestartResponseAtInterceptPageException e) {
+		} catch (RestartResponseException e) {
 			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java Mon Aug 22 04:36:51 2016
@@ -27,15 +27,6 @@ import org.apache.openmeetings.web.app.W
 public abstract class BaseInitedPage extends BasePage {
 	private static final long serialVersionUID = 1L;
 
-	public BaseInitedPage() {
-		super();
-		WebSession.get().checkHashes(getHashRedirect());
-	}
-
-	protected boolean getHashRedirect() {
-		return true;
-	}
-
 	@Override
 	protected String getApplicationName() {
 		return getBean(ConfigurationDao.class).getAppName();

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java Mon Aug 22 04:36:51 2016
@@ -53,7 +53,7 @@ public abstract class BasePage extends A
 	protected abstract boolean isRtl();
 	protected abstract String getLanguageCode();
 	protected abstract String getApplicationName();
-	
+
 	public BasePage() {
 		options = new HashMap<String, String>();
 		options.put("fragmentIdentifierSuffix", "");
@@ -68,7 +68,7 @@ public abstract class BasePage extends A
 		add(new Label("pageTitle", appName));
 		add(header = new HeaderPanel("header", appName));
 	}
-	
+
 	protected OmUrlFragment getUrlFragment(IRequestParameters params) {
 		for (AreaKeys key : AreaKeys.values()) {
 			StringValue type = params.getParameterValue(key.name());
@@ -78,11 +78,11 @@ public abstract class BasePage extends A
 		}
 		return null;
 	}
-	
+
 	public HeaderPanel getHeader() {
 		return header;
 	}
-	
+
 	@Override
 	protected Map<String, String> getOptions() {
 		return options;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/InvitationPasswordDialog.java Mon Aug 22 04:36:51 2016
@@ -50,7 +50,7 @@ public class InvitationPasswordDialog ex
 	private final IUpdatable comp;
 
 	public InvitationPasswordDialog(String id, IUpdatable comp) {
-		super(id, Application.getString(524));
+		super(id, Application.getString(230));
 		this.comp = comp;
 		password.setLabel(Model.of(Application.getString(536))).add(new IValidator<String>(){
 			private static final long serialVersionUID = 1L;
@@ -68,7 +68,8 @@ public class InvitationPasswordDialog ex
 	@Override
 	public void onConfigure(JQueryBehavior behavior) {
 		super.onConfigure(behavior);
-		behavior.setOption("autoOpen", WebSession.get().getInvitation().isPasswordProtected());
+		Invitation i = WebSession.get().getInvitation();
+		behavior.setOption("autoOpen", i != null && i.isPasswordProtected());
 		behavior.setOption("closeOnEscape", false);
 		behavior.setOption("dialogClass", Options.asString("no-close"));
 		behavior.setOption("resizable", false);

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java?rev=1757105&r1=1757104&r2=1757105&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java Mon Aug 22 04:36:51 2016
@@ -39,9 +39,9 @@ public class RecordingPage extends BaseI
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
 	public RecordingPage(PageParameters p) {
+		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;
-		WebSession ws = WebSession.get();
 		if (!hash.isEmpty()) {
 			ws.signIn(hash.toString(), true);
 		}
@@ -60,11 +60,6 @@ public class RecordingPage extends BaseI
 	}
 
 	@Override
-	protected boolean getHashRedirect() {
-		return false;
-	}
-
-	@Override
 	protected void onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target) {
 	}