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 <solomax...@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()) {