Author: solomax
Date: Thu Sep 1 15:52:02 2016
New Revision: 1758795
URL: http://svn.apache.org/viewvc?rev=1758795&view=rev
Log:
[OPENMEETINGS-1455] login from Moodle was tested
Modified:
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
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/common/MainPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.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/common/MainPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
Modified:
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
Thu Sep 1 15:52:02 2016
@@ -43,8 +43,7 @@ public class SOAPLoginDao {
public String addSOAPLogin(String sessionHash, Long roomId,
boolean becomemoderator, boolean showAudioVideoTest,
boolean allowSameURLMultipleTimes, Long recordingId,
- boolean showNickNameDialog, String landingZone,
- boolean allowRecording) {
+ String landingZone, boolean allowRecording) {
try {
SOAPLogin soapLogin = new SOAPLogin();
soapLogin.setCreated(new Date());
@@ -54,9 +53,8 @@ public class SOAPLoginDao {
soapLogin.setHash(UUID.randomUUID().toString());
soapLogin.setRecordingId(recordingId);
soapLogin.setSessionHash(sessionHash);
- soapLogin.setBecomemoderator(becomemoderator);
+ soapLogin.setModerator(becomemoderator);
soapLogin.setShowAudioVideoTest(showAudioVideoTest);
- soapLogin.setShowNickNameDialog(showNickNameDialog);
soapLogin.setLandingZone(landingZone);
soapLogin.setAllowRecording(allowRecording);
Modified:
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
Thu Sep 1 15:52:02 2016
@@ -34,7 +34,6 @@ public class RoomOptionsDTO implements S
private Long recordingId;
private boolean moderator;
private boolean showAudioVideoTest;
- private boolean showNickNameDialog;
private boolean allowSameURLMultipleTimes;
private boolean allowRecording;
@@ -72,14 +71,6 @@ public class RoomOptionsDTO implements S
this.showAudioVideoTest = showAudioVideoTest;
}
- public boolean isShowNickNameDialog() {
- return showNickNameDialog;
- }
-
- public void setShowNickNameDialog(boolean showNickNameDialog) {
- this.showNickNameDialog = showNickNameDialog;
- }
-
public boolean isAllowSameURLMultipleTimes() {
return allowSameURLMultipleTimes;
}
@@ -113,7 +104,6 @@ public class RoomOptionsDTO implements S
ro.recordingId = optLong(o, "recordingId");
ro.roomId = optLong(o, "roomId");
ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest",
false);
- ro.showNickNameDialog = o.optBoolean("showNickNameDialog",
false);
return ro;
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
Thu Sep 1 15:52:02 2016
@@ -55,8 +55,8 @@ public class SOAPLogin implements Serial
@Column(name="use_date")
private Date useDate;
- @Column(name="becomemoderator")
- private boolean becomemoderator;
+ @Column(name="moderator")
+ private boolean moderator;
@Column(name="showaudiovideotest")
private boolean showAudioVideoTest;
@@ -64,9 +64,6 @@ public class SOAPLogin implements Serial
@Column(name="allow_same_url_multiple_times")
private boolean allowSameURLMultipleTimes;
- @Column(name="show_nick_name_dialog")
- private boolean showNickNameDialog;
-
@Column(name="client_url")
private String clientURL;
@@ -128,11 +125,11 @@ public class SOAPLogin implements Serial
this.useDate = useDate;
}
- public boolean isBecomemoderator() {
- return becomemoderator;
+ public boolean isModerator() {
+ return moderator;
}
- public void setBecomemoderator(boolean becomemoderator) {
- this.becomemoderator = becomemoderator;
+ public void setModerator(boolean moderator) {
+ this.moderator = moderator;
}
public boolean getShowAudioVideoTest() {
@@ -149,13 +146,6 @@ public class SOAPLogin implements Serial
this.allowSameURLMultipleTimes = allowSameURLMultipleTimes;
}
- public boolean getShowNickNameDialog() {
- return showNickNameDialog;
- }
- public void setShowNickNameDialog(boolean showNickNameDialog) {
- this.showNickNameDialog = showNickNameDialog;
- }
-
public String getClientURL() {
return clientURL;
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
Thu Sep 1 15:52:02 2016
@@ -78,18 +78,6 @@
]]>
</method>
- <method name="getTestingUrl">
- <![CDATA[
- return getUrl() + '?swf=networktesting' + ($debug ? 'debug' :
'') + '.swf10.swf';
- ]]>
- </method>
-
- <method name="getAppBaseUrl">
- <![CDATA[
- return getUrl() + "swf";
- ]]>
- </method>
-
<method name="myinit">
<![CDATA[
canvas.mediaerrortimeout = 30000;
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=1758795&r1=1758794&r2=1758795&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
Thu Sep 1 15:52:02 2016
@@ -142,14 +142,11 @@ public class Application extends Authent
getRootRequestMapperAsCompound().add(new
NoVersionMapper(getHomePage()));
getRootRequestMapperAsCompound().add(new
NoVersionMapper("notinited", NotInitedPage.class));
- getRootRequestMapperAsCompound().add(new NoVersionMapper("swf",
HashPage.class));
- //getRootRequestMapperAsCompound().add(new
NoVersionMapper("/hash", HashPage.class));
- getRootRequestMapperAsCompound().add(new
NoVersionMapper("/recording/${hash}", HashPage.class));
+ getRootRequestMapperAsCompound().add(new
NoVersionMapper("/hash", HashPage.class));
getRootRequestMapperAsCompound().add(new
NoVersionMapper("signin", getSignInPageClass()));
mountPage("install", InstallWizardPage.class);
mountPage("activate", ActivatePage.class);
mountPage("reset", ResetPage.class);
- mountPage("/hash", HashPage.class);
mountResource("/recordings/avi/${id}", new
AviRecordingResourceReference());
mountResource("/recordings/flv/${id}", new
FlvRecordingResourceReference());
mountResource("/recordings/mp4/${id}", new
Mp4RecordingResourceReference());
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=1758795&r1=1758794&r2=1758795&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
Thu Sep 1 15:52:02 2016
@@ -101,6 +101,7 @@ public class WebSession extends Abstract
private UserDashboard dashboard;
private Locale browserLocale = null;
private Invitation i = null;
+ private SOAPLogin soap = null;
private Long roomId = null;
private Long recordingId = null;
private Long loginError = null;
@@ -122,6 +123,7 @@ public class WebSession extends Abstract
ISO8601FORMAT = null;
sdf = null;
i = null;
+ soap = null;
roomId = null;
recordingId = null;
externalType = null;
@@ -169,28 +171,34 @@ public class WebSession extends Abstract
public void checkHashes(StringValue secure, StringValue invitation) {
try {
if (!secure.isEmpty()) {
- if (isSignedIn()) {
- invalidate();
+ if (!isSignedIn() || soap == null ||
!soap.getHash().equals(secure.toString())) {
+ // otherwise already logged-in with the
same hash
+ if (isSignedIn()) {
+ invalidate();
+ }
+ signIn(secure.toString(), true);
}
- signIn(secure.toString(), true);
}
if (!invitation.isEmpty()) {
- if (isSignedIn()) {
- invalidate();
- }
- i =
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
- if (i.isAllowEntry()) {
- Set<Right> rights = new HashSet<>();
- if (i.getRoom() != null) {
- rights.add(Right.Room);
- roomId = i.getRoom().getId();
- } else if (i.getAppointment() != null
&& i.getAppointment().getRoom() != null) {
- rights.add(Right.Room);
- roomId =
i.getAppointment().getRoom().getId();
- } else if (i.getRecording() != null) {
- recordingId =
i.getRecording().getId();
+ if (!isSignedIn() || i == null ||
!i.getHash().equals(invitation.toString())) {
+ // otherwise already logged-in with the
same hash
+ if (isSignedIn()) {
+ invalidate();
+ }
+ i =
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
+ if (i != null && i.isAllowEntry()) {
+ Set<Right> rights = new
HashSet<>();
+ if (i.getRoom() != null) {
+ rights.add(Right.Room);
+ roomId =
i.getRoom().getId();
+ } else if (i.getAppointment()
!= null && i.getAppointment().getRoom() != null) {
+ rights.add(Right.Room);
+ roomId =
i.getAppointment().getRoom().getId();
+ } else if (i.getRecording() !=
null) {
+ recordingId =
i.getRecording().getId();
+ }
+ setUser(i.getInvitee(), rights);
}
- setUser(i.getInvitee(), rights);
}
}
} catch (Exception e) {
@@ -243,6 +251,7 @@ public class WebSession extends Abstract
sessionDao.update(sd);
setUser(user, null);
recordingId =
soapLogin.getRecordingId();
+ soap = soapLogin;
return true;
}
}
@@ -255,6 +264,7 @@ public class WebSession extends Abstract
Long _recordingId = recordingId;
Long _roomId = roomId;
Invitation _i = i;
+ SOAPLogin _soap = soap;
replaceSession(); // required to prevent session fixation
if (_sid != null) {
SID = _sid;
@@ -265,9 +275,12 @@ public class WebSession extends Abstract
if (_roomId != null) {
roomId = _roomId;
}
- if (i != null) {
+ if (_i != null) {
i = _i;
}
+ if (_soap != null) {
+ soap = _soap;
+ }
userId = u.getId();
if (rights == null || rights.isEmpty()) {
this.rights =
Collections.unmodifiableSet(u.getRights());
@@ -380,6 +393,10 @@ public class WebSession extends Abstract
return i;
}
+ public SOAPLogin getSoapLogin() {
+ return soap;
+ }
+
public static String getExternalType() {
return get().externalType;
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
Thu Sep 1 15:52:02 2016
@@ -116,15 +116,6 @@ public class MainPanel extends Panel {
updateContents(PROFILE_MESSAGES, target);
}
});
- topLinks.add(new ConfirmableAjaxBorder("logout",
getString("310"), getString("634")) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
- getSession().invalidate();
-
setResponsePage(Application.get().getSignInPageClass());
- }
- });
topLinks.add(new AjaxLink<Void>("profile") {
private static final long serialVersionUID = 1L;
@@ -244,6 +235,20 @@ public class MainPanel extends Panel {
}
});
}
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ topLinks.add(new ConfirmableAjaxBorder("logout",
getString("310"), getString("634")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
+ getSession().invalidate();
+
setResponsePage(Application.get().getSignInPageClass());
+ }
+ });
+ }
private List<IMenuItem> getMainMenu() {
List<IMenuItem> menu = new ArrayList<>();
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
Thu Sep 1 15:52:02 2016
@@ -56,10 +56,9 @@ import com.googlecode.wicket.jquery.ui.w
public class HashPage extends BaseInitedPage implements IUpdatable {
private static final long serialVersionUID = 1L;
- public static final String SECURE_HASH = "secureHash";
public static final String PANEL_MAIN = "panel-main";
- public static final String INVITATION_HASH = "invitationHash";
- private static final String HASH = "hash";
+ public static final String INVITATION_HASH = "invitation";
+ private static final String HASH = "secure";
private final WebMarkupContainer recContainer = new
WebMarkupContainer("panel-recording");
private final VideoInfo vi = new VideoInfo("info", null);
private final VideoPlayer vp = new VideoPlayer("player", null);
@@ -67,10 +66,7 @@ public class HashPage extends BaseInited
private boolean error = true;
public HashPage(PageParameters p) {
- StringValue secure = p.get(SECURE_HASH);
- if (secure.isEmpty()) {
- secure = p.get(HASH);
- }
+ StringValue secure = p.get(HASH);
StringValue invitation = p.get(INVITATION_HASH);
WebSession ws = WebSession.get();
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Thu Sep 1 15:52:02 2016
@@ -43,6 +43,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.db.entity.room.RoomGroup;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -184,6 +185,8 @@ public class RoomPanel extends BasePanel
} else if (getRoomClients(r.getId()).size() >=
r.getNumberOfPartizipants()) {
accessDenied = new
ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
room.setVisible(false);
+ } else if (r.getId().equals(WebSession.get().getRoomId())) {
+ // secureHash/invitationHash, already checked
} else {
boolean allowed = false;
String deniedMessage = null;
@@ -359,10 +362,15 @@ public class RoomPanel extends BasePanel
//We are setting initial rights here
Client c = getClient();
addUserToRoom(c.setRoomId(getRoom().getId()));
- User u = getBean(UserDao.class).get(getUserId());
- Right rr = AuthLevelUtil.getRoomRight(u, r,
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null,
getRoomClients(r.getId()).size());
- if (rr != null) {
- c.getRights().add(rr);
+ SOAPLogin soap = WebSession.get().getSoapLogin();
+ if (soap != null && soap.isModerator()) {
+ c.getRights().add(Right.superModerator);
+ } else {
+ User u =
getBean(UserDao.class).get(getUserId());
+ Right rr = AuthLevelUtil.getRoomRight(u, r,
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null,
getRoomClients(r.getId()).size());
+ if (rr != null) {
+ c.getRights().add(rr);
+ }
}
}
}
Modified:
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
Thu Sep 1 15:52:02 2016
@@ -292,7 +292,6 @@ public class UserWebService implements U
String hash = soapLoginDao.addSOAPLogin(sid,
options.getRoomId(),
options.isModerator(),
options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
options.getRecordingId(),
- options.isShowNickNameDialog(),
"room", // LandingZone,
options.isAllowRecording()
);
Modified:
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
(original)
+++
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
Thu Sep 1 15:52:02 2016
@@ -43,8 +43,7 @@ public class SOAPLoginDao {
public String addSOAPLogin(String sessionHash, Long roomId,
boolean becomemoderator, boolean showAudioVideoTest,
boolean allowSameURLMultipleTimes, Long recordingId,
- boolean showNickNameDialog, String landingZone,
- boolean allowRecording) {
+ String landingZone, boolean allowRecording) {
try {
SOAPLogin soapLogin = new SOAPLogin();
soapLogin.setCreated(new Date());
@@ -54,9 +53,8 @@ public class SOAPLoginDao {
soapLogin.setHash(UUID.randomUUID().toString());
soapLogin.setRecordingId(recordingId);
soapLogin.setSessionHash(sessionHash);
- soapLogin.setBecomemoderator(becomemoderator);
+ soapLogin.setModerator(becomemoderator);
soapLogin.setShowAudioVideoTest(showAudioVideoTest);
- soapLogin.setShowNickNameDialog(showNickNameDialog);
soapLogin.setLandingZone(landingZone);
soapLogin.setAllowRecording(allowRecording);
Modified:
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
(original)
+++
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
Thu Sep 1 15:52:02 2016
@@ -34,7 +34,6 @@ public class RoomOptionsDTO implements S
private Long recordingId;
private boolean moderator;
private boolean showAudioVideoTest;
- private boolean showNickNameDialog;
private boolean allowSameURLMultipleTimes;
private boolean allowRecording;
@@ -72,14 +71,6 @@ public class RoomOptionsDTO implements S
this.showAudioVideoTest = showAudioVideoTest;
}
- public boolean isShowNickNameDialog() {
- return showNickNameDialog;
- }
-
- public void setShowNickNameDialog(boolean showNickNameDialog) {
- this.showNickNameDialog = showNickNameDialog;
- }
-
public boolean isAllowSameURLMultipleTimes() {
return allowSameURLMultipleTimes;
}
@@ -113,7 +104,6 @@ public class RoomOptionsDTO implements S
ro.recordingId = optLong(o, "recordingId");
ro.roomId = optLong(o, "roomId");
ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest",
false);
- ro.showNickNameDialog = o.optBoolean("showNickNameDialog",
false);
return ro;
}
Modified:
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
(original)
+++
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
Thu Sep 1 15:52:02 2016
@@ -55,8 +55,8 @@ public class SOAPLogin implements Serial
@Column(name="use_date")
private Date useDate;
- @Column(name="becomemoderator")
- private boolean becomemoderator;
+ @Column(name="moderator")
+ private boolean moderator;
@Column(name="showaudiovideotest")
private boolean showAudioVideoTest;
@@ -64,9 +64,6 @@ public class SOAPLogin implements Serial
@Column(name="allow_same_url_multiple_times")
private boolean allowSameURLMultipleTimes;
- @Column(name="show_nick_name_dialog")
- private boolean showNickNameDialog;
-
@Column(name="client_url")
private String clientURL;
@@ -128,11 +125,11 @@ public class SOAPLogin implements Serial
this.useDate = useDate;
}
- public boolean isBecomemoderator() {
- return becomemoderator;
+ public boolean isModerator() {
+ return moderator;
}
- public void setBecomemoderator(boolean becomemoderator) {
- this.becomemoderator = becomemoderator;
+ public void setModerator(boolean moderator) {
+ this.moderator = moderator;
}
public boolean getShowAudioVideoTest() {
@@ -149,13 +146,6 @@ public class SOAPLogin implements Serial
this.allowSameURLMultipleTimes = allowSameURLMultipleTimes;
}
- public boolean getShowNickNameDialog() {
- return showNickNameDialog;
- }
- public void setShowNickNameDialog(boolean showNickNameDialog) {
- this.showNickNameDialog = showNickNameDialog;
- }
-
public String getClientURL() {
return clientURL;
}
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=1758795&r1=1758794&r2=1758795&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
Thu Sep 1 15:52:02 2016
@@ -142,14 +142,11 @@ public class Application extends Authent
getRootRequestMapperAsCompound().add(new
NoVersionMapper(getHomePage()));
getRootRequestMapperAsCompound().add(new
NoVersionMapper("notinited", NotInitedPage.class));
- getRootRequestMapperAsCompound().add(new NoVersionMapper("swf",
HashPage.class));
- //getRootRequestMapperAsCompound().add(new
NoVersionMapper("/hash", HashPage.class));
- getRootRequestMapperAsCompound().add(new
NoVersionMapper("/recording/${hash}", HashPage.class));
+ getRootRequestMapperAsCompound().add(new
NoVersionMapper("/hash", HashPage.class));
getRootRequestMapperAsCompound().add(new
NoVersionMapper("signin", getSignInPageClass()));
mountPage("install", InstallWizardPage.class);
mountPage("activate", ActivatePage.class);
mountPage("reset", ResetPage.class);
- mountPage("/hash", HashPage.class);
mountResource("/recordings/avi/${id}", new
AviRecordingResourceReference());
mountResource("/recordings/flv/${id}", new
FlvRecordingResourceReference());
mountResource("/recordings/mp4/${id}", new
Mp4RecordingResourceReference());
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=1758795&r1=1758794&r2=1758795&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
Thu Sep 1 15:52:02 2016
@@ -101,6 +101,7 @@ public class WebSession extends Abstract
private UserDashboard dashboard;
private Locale browserLocale = null;
private Invitation i = null;
+ private SOAPLogin soap = null;
private Long roomId = null;
private Long recordingId = null;
private Long loginError = null;
@@ -122,6 +123,7 @@ public class WebSession extends Abstract
ISO8601FORMAT = null;
sdf = null;
i = null;
+ soap = null;
roomId = null;
recordingId = null;
externalType = null;
@@ -169,28 +171,34 @@ public class WebSession extends Abstract
public void checkHashes(StringValue secure, StringValue invitation) {
try {
if (!secure.isEmpty()) {
- if (isSignedIn()) {
- invalidate();
+ if (!isSignedIn() || soap == null ||
!soap.getHash().equals(secure.toString())) {
+ // otherwise already logged-in with the
same hash
+ if (isSignedIn()) {
+ invalidate();
+ }
+ signIn(secure.toString(), true);
}
- signIn(secure.toString(), true);
}
if (!invitation.isEmpty()) {
- if (isSignedIn()) {
- invalidate();
- }
- i =
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
- if (i.isAllowEntry()) {
- Set<Right> rights = new HashSet<>();
- if (i.getRoom() != null) {
- rights.add(Right.Room);
- roomId = i.getRoom().getId();
- } else if (i.getAppointment() != null
&& i.getAppointment().getRoom() != null) {
- rights.add(Right.Room);
- roomId =
i.getAppointment().getRoom().getId();
- } else if (i.getRecording() != null) {
- recordingId =
i.getRecording().getId();
+ if (!isSignedIn() || i == null ||
!i.getHash().equals(invitation.toString())) {
+ // otherwise already logged-in with the
same hash
+ if (isSignedIn()) {
+ invalidate();
+ }
+ i =
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
+ if (i != null && i.isAllowEntry()) {
+ Set<Right> rights = new
HashSet<>();
+ if (i.getRoom() != null) {
+ rights.add(Right.Room);
+ roomId =
i.getRoom().getId();
+ } else if (i.getAppointment()
!= null && i.getAppointment().getRoom() != null) {
+ rights.add(Right.Room);
+ roomId =
i.getAppointment().getRoom().getId();
+ } else if (i.getRecording() !=
null) {
+ recordingId =
i.getRecording().getId();
+ }
+ setUser(i.getInvitee(), rights);
}
- setUser(i.getInvitee(), rights);
}
}
} catch (Exception e) {
@@ -243,6 +251,7 @@ public class WebSession extends Abstract
sessionDao.update(sd);
setUser(user, null);
recordingId =
soapLogin.getRecordingId();
+ soap = soapLogin;
return true;
}
}
@@ -255,6 +264,7 @@ public class WebSession extends Abstract
Long _recordingId = recordingId;
Long _roomId = roomId;
Invitation _i = i;
+ SOAPLogin _soap = soap;
replaceSession(); // required to prevent session fixation
if (_sid != null) {
SID = _sid;
@@ -265,9 +275,12 @@ public class WebSession extends Abstract
if (_roomId != null) {
roomId = _roomId;
}
- if (i != null) {
+ if (_i != null) {
i = _i;
}
+ if (_soap != null) {
+ soap = _soap;
+ }
userId = u.getId();
if (rights == null || rights.isEmpty()) {
this.rights =
Collections.unmodifiableSet(u.getRights());
@@ -380,6 +393,10 @@ public class WebSession extends Abstract
return i;
}
+ public SOAPLogin getSoapLogin() {
+ return soap;
+ }
+
public static String getExternalType() {
return get().externalType;
}
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
Thu Sep 1 15:52:02 2016
@@ -116,15 +116,6 @@ public class MainPanel extends Panel {
updateContents(PROFILE_MESSAGES, target);
}
});
- topLinks.add(new ConfirmableAjaxBorder("logout",
getString("310"), getString("634")) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
- getSession().invalidate();
-
setResponsePage(Application.get().getSignInPageClass());
- }
- });
topLinks.add(new AjaxLink<Void>("profile") {
private static final long serialVersionUID = 1L;
@@ -244,6 +235,20 @@ public class MainPanel extends Panel {
}
});
}
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ topLinks.add(new ConfirmableAjaxBorder("logout",
getString("310"), getString("634")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
+ getSession().invalidate();
+
setResponsePage(Application.get().getSignInPageClass());
+ }
+ });
+ }
private List<IMenuItem> getMainMenu() {
List<IMenuItem> menu = new ArrayList<>();
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
Thu Sep 1 15:52:02 2016
@@ -56,10 +56,9 @@ import com.googlecode.wicket.jquery.ui.w
public class HashPage extends BaseInitedPage implements IUpdatable {
private static final long serialVersionUID = 1L;
- public static final String SECURE_HASH = "secureHash";
public static final String PANEL_MAIN = "panel-main";
- public static final String INVITATION_HASH = "invitationHash";
- private static final String HASH = "hash";
+ public static final String INVITATION_HASH = "invitation";
+ private static final String HASH = "secure";
private final WebMarkupContainer recContainer = new
WebMarkupContainer("panel-recording");
private final VideoInfo vi = new VideoInfo("info", null);
private final VideoPlayer vp = new VideoPlayer("player", null);
@@ -67,10 +66,7 @@ public class HashPage extends BaseInited
private boolean error = true;
public HashPage(PageParameters p) {
- StringValue secure = p.get(SECURE_HASH);
- if (secure.isEmpty()) {
- secure = p.get(HASH);
- }
+ StringValue secure = p.get(HASH);
StringValue invitation = p.get(INVITATION_HASH);
WebSession ws = WebSession.get();
Modified:
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Thu Sep 1 15:52:02 2016
@@ -41,6 +41,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.db.entity.room.RoomGroup;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -187,6 +188,8 @@ public class RoomPanel extends BasePanel
} else if (getRoomClients(r.getId()).size() >=
r.getNumberOfPartizipants()) {
accessDenied = new
ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
room.setVisible(false);
+ } else if (r.getId().equals(WebSession.get().getRoomId())) {
+ // secureHash/invitationHash, already checked
} else {
boolean allowed = false;
String deniedMessage = null;
@@ -362,10 +365,15 @@ public class RoomPanel extends BasePanel
//We are setting initial rights here
Client c = getClient();
addUserToRoom(c.setRoomId(getRoom().getId()));
- User u = getBean(UserDao.class).get(getUserId());
- Right rr = AuthLevelUtil.getRoomRight(u, r,
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null,
getRoomClients(r.getId()).size());
- if (rr != null) {
- c.getRights().add(rr);
+ SOAPLogin soap = WebSession.get().getSoapLogin();
+ if (soap != null && soap.isModerator()) {
+ c.getRights().add(Right.superModerator);
+ } else {
+ User u =
getBean(UserDao.class).get(getUserId());
+ Right rr = AuthLevelUtil.getRoomRight(u, r,
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null,
getRoomClients(r.getId()).size());
+ if (rr != null) {
+ c.getRights().add(rr);
+ }
}
}
}
Modified:
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
(original)
+++
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
Thu Sep 1 15:52:02 2016
@@ -292,7 +292,6 @@ public class UserWebService implements U
String hash = soapLoginDao.addSOAPLogin(sid,
options.getRoomId(),
options.isModerator(),
options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
options.getRecordingId(),
- options.isShowNickNameDialog(),
"room", // LandingZone,
options.isAllowRecording()
);