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 2020/09/17 11:30:38 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2297] it is now
should be possible to enter room by externalId/Type
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 4a4fcb6 [OPENMEETINGS-2297] it is now should be possible to enter room by externalId/Type
4a4fcb6 is described below
commit 4a4fcb675e245592bc023d6454e149ed57dbd3d5
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Sep 17 18:27:50 2020 +0700
[OPENMEETINGS-2297] it is now should be possible to enter room by externalId/Type
---
.../openmeetings/core/converter/BaseConverter.java | 6 ++++++
.../openmeetings/core/remote/KurentoHandler.java | 2 +-
.../core/util/ChatWebSocketHelper.java | 15 ++++++++++----
.../openmeetings/core/util/WebSocketHelper.java | 8 ++++++--
.../core/remote/TestRecordingFlowMocked.java | 6 +++---
.../db/bind/adapter/OauthMapAdapter.java | 6 ++----
.../apache/openmeetings/db/dao/room/RoomDao.java | 9 +++++++++
.../openmeetings/db/dao/server/OAuth2Dao.java | 2 +-
.../openmeetings/db/dao/server/SOAPLoginDao.java | 20 +++++++++----------
.../openmeetings/db/dto/room/RoomOptionsDTO.java | 20 +++++++++++++++++++
.../apache/openmeetings/db/entity/room/Room.java | 3 +++
.../db/entity/server/RemoteSessionObject.java | 23 ++++++++++------------
.../openmeetings/db/entity/server/SOAPLogin.java | 22 +++++++++++++++++++++
.../service/calendar/caldav/IcalUtils.java | 9 +++------
.../service/quartz/scheduler/AtomReader.java | 4 ++++
.../apache/openmeetings/util/CalendarHelper.java | 4 ++++
.../apache/openmeetings/web/app/WebSession.java | 11 ++++++++---
.../openmeetings/web/common/InvitationForm.java | 2 +-
.../web/pages/auth/ForgetPasswordDialog.java | 2 +-
.../web/room/wb/WbWebSocketHelper.java | 13 ++++++++----
.../openmeetings/web/util/CalendarWebHelper.java | 14 ++++++++-----
.../openmeetings/webservice/UserWebService.java | 11 ++---------
22 files changed, 145 insertions(+), 67 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index 5599b11..941c31d 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -309,6 +309,12 @@ public abstract class BaseConverter {
return getDimensions(r, 'x');
}
+ /**
+ * This method should be overridden to supply any additional parameters
+ *
+ * @param r - recording to get params from
+ * @return additional conversion parameters
+ */
protected List<String> additionalMp4OutParams(Recording r) {
return List.of();
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index 42d6874..1722358 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -188,7 +188,7 @@ public class KurentoHandler {
try {
KurentoClient copy = client;
client = null;
- if (copy != null && !copy.isClosed()) {
+ if (!copy.isClosed()) {
log.debug("Client will destroyed ...");
copy.destroy();
log.debug(".... Client is destroyed");
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
index 631023b..61d480f 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
@@ -18,6 +18,9 @@
*/
package org.apache.openmeetings.core.util;
+import static org.apache.openmeetings.core.util.WebSocketHelper.doSend;
+import static org.apache.openmeetings.core.util.WebSocketHelper.publish;
+
import java.util.List;
import java.util.function.BiConsumer;
@@ -36,12 +39,16 @@ import org.apache.openmeetings.util.ws.IClusterWsMessage;
import com.github.openjson.JSONArray;
import com.github.openjson.JSONObject;
-public class ChatWebSocketHelper extends WebSocketHelper {
+public class ChatWebSocketHelper {
public static final String ID_TAB_PREFIX = "chatTab-";
public static final String ID_ALL = ID_TAB_PREFIX + "all";
public static final String ID_ROOM_PREFIX = ID_TAB_PREFIX + "r";
public static final String ID_USER_PREFIX = ID_TAB_PREFIX + "u";
+ private ChatWebSocketHelper() {
+ // denied
+ }
+
private static JSONObject setScope(JSONObject o, ChatMessage m, long curUserId) {
String scope, scopeName = null;
if (m.getToUser() != null) {
@@ -117,7 +124,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
if (publish) {
publish(new WsMessageChat(m, msg));
}
- sendRoom(m.getToRoom().getId(), msg
+ WebSocketHelper.sendRoom(m.getToRoom().getId(), msg
, c -> !m.isNeedModeration() || (m.isNeedModeration() && c.hasRight(Right.MODERATOR))
, (o, c) -> setDates(o, m, c.getUser(), false));
}
@@ -130,7 +137,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
if (publish) {
publish(new WsMessageChat2User(userId, m, msg));
}
- sendUser(userId, msg, (o, c) -> setDates(o, m, c.getUser(), false), false);
+ WebSocketHelper.sendUser(userId, msg, (o, c) -> setDates(o, m, c.getUser(), false), false);
}
public static void sendAll(ChatMessage m, JSONObject msg) {
@@ -141,7 +148,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
if (publish) {
publish(new WsMessageChat2All(m, msg));
}
- send(a -> ((IApplication)a).getBean(IClientManager.class).list()
+ WebSocketHelper.send(a -> ((IApplication)a).getBean(IClientManager.class).list()
, (t, c) -> doSend(t, c, msg, (o, cm) -> setDates(o, m, c.getUser(), false), "all"), null);
}
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index cc2b451..10a2de7 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -55,6 +55,10 @@ import com.github.openjson.JSONObject;
public class WebSocketHelper {
private static final Logger log = LoggerFactory.getLogger(WebSocketHelper.class);
+ private WebSocketHelper() {
+ // denied
+ }
+
public static void sendClient(final IWsClient omClient, byte[] b) {
if (omClient != null) {
sendClient(omClient, c -> {
@@ -212,12 +216,12 @@ public class WebSocketHelper {
}).start();
}
- protected static void publish(IClusterWsMessage m) {
+ public static void publish(IClusterWsMessage m) {
IApplication app = getApp();
new Thread(() -> app.publishWsTopic(m)).start();
}
- protected static void sendRoom(final Long roomId, final JSONObject m, Predicate<Client> check, BiFunction<JSONObject, Client, JSONObject> func) {
+ public static void sendRoom(final Long roomId, final JSONObject m, Predicate<Client> check, BiFunction<JSONObject, Client, JSONObject> func) {
log.trace("Sending json WebSocket message to room: {}", m);
sendRoom(roomId, (t, c) -> doSend(t, c, m, func, "room"), check);
}
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
index cdb24f8..724008b 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
@@ -153,7 +153,7 @@ class TestRecordingFlowMocked extends BaseMockedTest {
assertTrue(streamProcessor.isSharing(ROOM_ID));
// Get current Stream, there should be only 1 KStream created as result of this
- assertTrue(c.getStreams().size() == 1);
+ assertEquals(1, c.getStreams().size());
StreamDesc streamDesc = c.getStreams().get(0);
//save UID for stopping the stream later
@@ -175,7 +175,7 @@ class TestRecordingFlowMocked extends BaseMockedTest {
verify(streamProcessor).startBroadcast(any(), any(), any());
// Assert that there is still just 1 stream and has only the activities to Record assigned
- assertTrue(c.getStreams().size() == 1);
+ assertEquals(1, c.getStreams().size());
streamDesc = c.getStreams().get(0);
assertEquals(1, streamDesc.getActivities().size());
assertEquals(Activity.RECORD, streamDesc.getActivities().get(0));
@@ -208,6 +208,6 @@ class TestRecordingFlowMocked extends BaseMockedTest {
// Verify it did also stop the sharing stream
verify(streamProcessor).pauseSharing(any(), any());
// Verify all streams gone
- assertTrue(c.getStreams().size() == 0);
+ assertTrue(c.getStreams().isEmpty());
}
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
index aa932bb..e009901 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
@@ -82,10 +82,8 @@ public class OauthMapAdapter extends XmlAdapter<Object, Map<String, String>> {
key = n;
continue;
}
- if (value == null) {
- value = n;
- break;
- }
+ value = n;
+ break;
}
if (key != null && value != null) {
putValue(map, key.getTextContent(), value.getTextContent());
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index 1f57e55..3d2f039 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -261,6 +261,15 @@ public class RoomDao implements IGroupAdminDataProviderDao<Room> {
}
}
+ public Room getExternal(String externalType, String externalId) {
+ log.debug("getExternal : {} - {}", externalType, externalId);
+ return single(fillLazy(em
+ , oem -> oem.createNamedQuery("getExternalRoomNoType", Room.class)
+ .setParameter("externalId", externalId)
+ .setParameter("externalType", externalType)
+ , GRP_GROUPS));
+ }
+
public Room getExternal(Type type, String externalType, String externalId) {
log.debug("getExternal : {} - {} - {}", type, externalType, externalId);
return single(fillLazy(em
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
index 4a48779..a484cba 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -44,7 +44,7 @@ public class OAuth2Dao implements IDataProviderDao<OAuthServer> {
@PersistenceContext
private EntityManager em;
@Autowired
- private ConfigurationDao cfgDao;;
+ private ConfigurationDao cfgDao;
public List<OAuthServer> getActive() {
if (!isAllowRegisterOauth()) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
index e7b8e3c..8996843 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
@@ -26,6 +26,7 @@ import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
import org.apache.openmeetings.db.entity.server.SOAPLogin;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,21 +41,20 @@ public class SOAPLoginDao {
@PersistenceContext
private EntityManager em;
- public String addSOAPLogin(String sessionHash, Long roomId,
- boolean becomemoderator, boolean showAudioVideoTest,
- boolean allowSameURLMultipleTimes, Long recordingId,
- boolean allowRecording) {
+ public String addSOAPLogin(String sessionHash, RoomOptionsDTO options) {
SOAPLogin soapLogin = new SOAPLogin();
soapLogin.setCreated(new Date());
soapLogin.setUsed(false);
- soapLogin.setRoomId(roomId);
- soapLogin.setAllowSameURLMultipleTimes(allowSameURLMultipleTimes);
+ soapLogin.setRoomId(options.getRoomId());
+ soapLogin.setExternalRoomId(options.getExternalRoomId());
+ soapLogin.setExternalType(options.getExternalType());
+ soapLogin.setAllowSameURLMultipleTimes(options.isAllowSameURLMultipleTimes());
soapLogin.setHash(randomUUID().toString());
- soapLogin.setRecordingId(recordingId);
+ soapLogin.setRecordingId(options.getRecordingId());
soapLogin.setSessionHash(sessionHash);
- soapLogin.setModerator(becomemoderator);
- soapLogin.setShowAudioVideoTest(showAudioVideoTest);
- soapLogin.setAllowRecording(allowRecording);
+ soapLogin.setModerator(options.isModerator());
+ soapLogin.setShowAudioVideoTest(options.isShowAudioVideoTest());
+ soapLogin.setAllowRecording(options.isAllowRecording());
em.persist(soapLogin);
em.flush();
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
index 07c5428..000762a 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
@@ -33,6 +33,8 @@ import com.github.openjson.JSONObject;
public class RoomOptionsDTO implements Serializable {
private static final long serialVersionUID = 1L;
private Long roomId;
+ private String externalRoomId;
+ private String externalType;
private Long recordingId;
private boolean moderator;
private boolean showAudioVideoTest;
@@ -52,6 +54,22 @@ public class RoomOptionsDTO implements Serializable {
return this;
}
+ public String getExternalRoomId() {
+ return externalRoomId;
+ }
+
+ public void setExternalRoomId(String externalRoomId) {
+ this.externalRoomId = externalRoomId;
+ }
+
+ public String getExternalType() {
+ return externalType;
+ }
+
+ public void setExternalType(String externalType) {
+ this.externalType = externalType;
+ }
+
public Long getRecordingId() {
return recordingId;
}
@@ -101,6 +119,8 @@ public class RoomOptionsDTO implements Serializable {
ro.moderator = o.optBoolean("moderator", false);
ro.recordingId = optLong(o, "recordingId");
ro.roomId = optLong(o, "roomId");
+ ro.externalRoomId = o.optString("externalRoomId");
+ ro.externalType = o.optString("externalType");
ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", false);
return ro;
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index 72663a7..e9e021c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -81,6 +81,9 @@ import org.apache.openmeetings.db.entity.user.Group;
@NamedQuery(name = "getExternalRoom", query = "SELECT rg.room FROM RoomGroup rg WHERE "
+ "rg.group.deleted = false AND rg.group.external = true AND rg.group.name = :externalType "
+ "AND rg.room.deleted = false AND rg.room.type = :type AND rg.room.externalId = :externalId")
+@NamedQuery(name = "getExternalRoomNoType", query = "SELECT rg.room FROM RoomGroup rg WHERE "
+ + "rg.group.deleted = false AND rg.group.external = true AND rg.group.name = :externalType "
+ + "AND rg.room.deleted = false AND rg.room.externalId = :externalId")
@NamedQuery(name = "getPublicRoomsOrdered", query = "SELECT r from Room r WHERE r.ispublic= true AND r.deleted= false AND r.appointment = false ORDER BY r.name ASC")
@NamedQuery(name = "getRoomById", query = "SELECT r FROM Room r WHERE r.deleted = false AND r.id = :id")
@NamedQuery(name = "getRoomsByIds", query = "SELECT r FROM Room r WHERE r.deleted = false AND r.id IN :ids")
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
index 284048b..4c9df11 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.db.entity.server;
+import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
+
import com.github.openjson.JSONObject;
/**
@@ -40,10 +42,6 @@ public class RemoteSessionObject {
// def constructor
}
- public RemoteSessionObject(String username, String firstname, String lastname, String pictureUrl, String email) {
- this(username, firstname, lastname, pictureUrl, email, "0", "");
- }
-
/**
* @param username
* - username
@@ -62,15 +60,14 @@ public class RemoteSessionObject {
*
* 06.09.2009 17:05:48 sebastianwagner
*/
- public RemoteSessionObject(String username, String firstname, String lastname, String pictureUrl, String email,
- String externalId, String externalType) {
- this.username = username;
- this.firstname = firstname;
- this.lastname = lastname;
- this.pictureUrl = pictureUrl;
- this.email = email;
- this.externalId = externalId;
- this.externalType = externalType;
+ public RemoteSessionObject(ExternalUserDTO user) {
+ this.username = user.getLogin();
+ this.firstname = user.getFirstname();
+ this.lastname = user.getLastname();
+ this.pictureUrl = user.getProfilePictureUrl();
+ this.email = user.getEmail();
+ this.externalId = user.getExternalId();
+ this.externalType = user.getExternalType();
}
public String getUsername() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
index 9800f9e..6f884a6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
@@ -48,6 +48,12 @@ public class SOAPLogin implements Serializable {
@Column(name = "room_id")
private Long roomId;
+ @Column(name = "external_room_id")
+ private String externalRoomId;
+
+ @Column(name = "external_type")
+ private String externalType;
+
@Column(name = "session_hash")
private String sessionHash;
@@ -102,6 +108,22 @@ public class SOAPLogin implements Serializable {
this.roomId = roomId;
}
+ public String getExternalRoomId() {
+ return externalRoomId;
+ }
+
+ public void setExternalRoomId(String externalRoomId) {
+ this.externalRoomId = externalRoomId;
+ }
+
+ public String getExternalType() {
+ return externalType;
+ }
+
+ public void setExternalType(String externalType) {
+ this.externalType = externalType;
+ }
+
public String getSessionHash() {
return sessionHash;
}
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index f34c217..53a8cae 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -403,7 +403,7 @@ public class IcalUtils {
DateTime start = new DateTime(appointment.getStart()), end = new DateTime(appointment.getEnd());
VEvent meeting = new VEvent(start, end, appointment.getTitle());
- meeting = addVEventpropsfromAppointment(appointment, meeting);
+ addVEventpropsfromAppointment(appointment, meeting);
icsCalendar.getComponents().add(meeting);
return icsCalendar;
@@ -416,8 +416,7 @@ public class IcalUtils {
* @param meeting VEvent of the Appointment
* @return Updated VEvent
*/
- private static VEvent addVEventpropsfromAppointment(Appointment appointment, VEvent meeting) {
-
+ private static void addVEventpropsfromAppointment(Appointment appointment, VEvent meeting) {
if (appointment.getLocation() != null) {
meeting.getProperties().add(new Location(appointment.getLocation()));
}
@@ -457,8 +456,6 @@ public class IcalUtils {
Organizer organizer = new Organizer(orgUri);
organizer.getParameters().add(orgCn);
meeting.getProperties().add(organizer);
-
- return meeting;
}
/**
@@ -488,7 +485,7 @@ public class IcalUtils {
DateTime start = new DateTime(appointment.getStart()), end = new DateTime(appointment.getEnd());
VEvent meeting = new VEvent(start, end, appointment.getTitle());
- meeting = addVEventpropsfromAppointment(appointment, meeting);
+ addVEventpropsfromAppointment(appointment, meeting);
icsCalendar.getComponents().add(meeting);
}
return icsCalendar;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
index 0513a95..ca3e46e 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
@@ -67,6 +67,10 @@ public class AtomReader {
.add(new Field("author"));
}
+ private AtomReader() {
+ // denied
+ }
+
private static Spec add(String name) {
Spec s = new Spec(name);
specs.put(name, s);
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
index b880245..3b2a39f 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
@@ -27,6 +27,10 @@ import java.util.Date;
import java.util.concurrent.TimeUnit;
public class CalendarHelper {
+ private CalendarHelper() {
+ // denied
+ }
+
public static ZoneId getZoneId(String tzId) {
return ZoneId.of(tzId, ZoneId.SHORT_IDS);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index f59f17d..2a312bf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -286,8 +286,13 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
if (sd.getXml() != null) {
RemoteSessionObject remoteUser = RemoteSessionObject.fromString(sd.getXml());
log.debug("Hash data was parsed successfuly ? {}, containg exterlaId ? {}", (remoteUser != null), !Strings.isEmpty(remoteUser.getExternalId()));
- if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalId())) {
- Room r = roomDao.get(soapLogin.getRoomId());
+ if (!Strings.isEmpty(remoteUser.getExternalId())) {
+ Room r;
+ if (Strings.isEmpty(soapLogin.getExternalRoomId()) || Strings.isEmpty(soapLogin.getExternalType())) {
+ r = roomDao.get(soapLogin.getRoomId());
+ } else {
+ r = roomDao.getExternal(soapLogin.getExternalType(), soapLogin.getExternalRoomId());
+ }
if (r == null) {
log.warn("Room was not found");
} else {
@@ -317,7 +322,7 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
soapLogin.setUseDate(new Date());
soapDao.update(soapLogin);
}
- roomId = soapLogin.getRoomId();
+ roomId = r == null ? null : r.getId();
sd.setUserId(user.getId());
sd.setRoomId(roomId);
sessionDao.update(sd);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index 33ef7f0..9657f7d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -87,7 +87,7 @@ public abstract class InvitationForm extends Form<Invitation> {
public enum Action {
GENERATE
, SEND
- };
+ }
public InvitationForm(String id) {
super(id, new CompoundPropertyModel<>(new Invitation()));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index 465449b..7923aa2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -268,5 +268,5 @@ public class ForgetPasswordDialog extends Modal<String> {
wasReset = true;
ForgetPasswordDialog.this.close(target);
}
- };
+ }
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
index af62dae..c7b8232 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
@@ -18,12 +18,13 @@
*/
package org.apache.openmeetings.web.room.wb;
+import static org.apache.openmeetings.core.util.WebSocketHelper.publish;
+import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_SRC;
import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM__SRC;
import java.util.function.Predicate;
-import org.apache.openmeetings.core.util.WebSocketHelper;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.file.BaseFileItem;
import org.apache.openmeetings.util.NullStringer;
@@ -40,10 +41,14 @@ import org.apache.wicket.resource.FileSystemResourceReference;
import com.github.openjson.JSONObject;
-public class WbWebSocketHelper extends WebSocketHelper {
+public class WbWebSocketHelper {
public static final String PARAM_OBJ = "obj";
private static final String PARAM__POSTER = "_poster";
+ private WbWebSocketHelper() {
+ // denied
+ }
+
public static boolean send(IClusterWsMessage inMsg) {
if (inMsg instanceof WsMessageWb) {
WsMessageWb m = (WsMessageWb)inMsg;
@@ -163,7 +168,7 @@ public class WbWebSocketHelper extends WebSocketHelper {
publish(new WsMessageWbFile(roomId, wbId, ruid, file, fi));
}
final JSONObject f = addFileUrl(ruid, file, fi, null);
- WebSocketHelper.sendRoom(
+ sendRoom(
roomId
, new JSONObject().put("type", "wb")
, null
@@ -172,7 +177,7 @@ public class WbWebSocketHelper extends WebSocketHelper {
}
private static void sendWb(Long roomId, WbAction meth, JSONObject obj, Predicate<Client> check) {
- WebSocketHelper.sendRoom(
+ sendRoom(
roomId
, new JSONObject().put("type", "wb")
, check
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
index d5b5106..d05a0c1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
@@ -27,20 +27,24 @@ import java.util.Date;
import org.apache.openmeetings.util.CalendarHelper;
-public class CalendarWebHelper extends CalendarHelper {
+public class CalendarWebHelper {
+ private CalendarWebHelper() {
+ // denied
+ }
+
public static ZoneId getZoneId() {
- return getZoneId(getUserTimeZone().getID());
+ return CalendarHelper.getZoneId(getUserTimeZone().getID());
}
public static Date getDate(LocalDateTime d) {
- return getDate(d, getUserTimeZone().getID());
+ return CalendarHelper.getDate(d, getUserTimeZone().getID());
}
public static Date getDate(LocalDate d) {
- return getDate(d, getUserTimeZone().getID());
+ return CalendarHelper.getDate(d, getUserTimeZone().getID());
}
public static LocalDateTime getDateTime(Date d) {
- return getDateTime(d, getUserTimeZone().getID());
+ return CalendarHelper.getDateTime(d, getUserTimeZone().getID());
}
}
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index 65ca5e2..7d469de 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -300,10 +300,7 @@ public class UserWebService extends BaseWebService {
if (Strings.isEmpty(user.getExternalId()) || Strings.isEmpty(user.getExternalType())) {
return new ServiceResult("externalId and/or externalType are not set", Type.ERROR);
}
- RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
- user.getLogin(), user.getFirstname(), user.getLastname()
- , user.getProfilePictureUrl(), user.getEmail()
- , user.getExternalId(), user.getExternalType());
+ RemoteSessionObject remoteSessionObject = new RemoteSessionObject(user);
log.debug(remoteSessionObject.toString());
@@ -311,11 +308,7 @@ public class UserWebService extends BaseWebService {
log.debug("jsonString {}", xmlString);
- String hash = soapDao.addSOAPLogin(sid, options.getRoomId(),
- options.isModerator(), options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
- options.getRecordingId(),
- options.isAllowRecording()
- );
+ String hash = soapDao.addSOAPLogin(sid, options);
if (hash != null) {
if (options.isAllowSameURLMultipleTimes()) {