Author: solomax
Date: Sun Jan 19 18:34:37 2014
New Revision: 1559543
URL: http://svn.apache.org/r1559543
Log:
[OPENMEETINGS-870] code clean up;
Download recordings should work as expected;
Added:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
Modified:
openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx
openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
openmeetings/trunk/singlewebapp/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/Application.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
Modified:
openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
(original)
+++
openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
Sun Jan 19 18:34:37 2014
@@ -564,7 +564,9 @@
canvas.initroomid = canvas.wicketroomid;
parent.getRoomById.doCall();
} else {
- canvas.thishib.loaderVar.close();
+ if (canvas.thishib.loaderVar != null) {
+ canvas.thishib.loaderVar.close();
+ }
parent.getRoomById.doCall();
}
}
Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx
(original)
+++ openmeetings/trunk/singlewebapp/WebContent/src/base/mainAttributes.lzx Sun
Jan 19 18:34:37 2014
@@ -322,8 +322,8 @@ the LAST RoomClient Object that has been
<attribute name="secureHash" value="" type="string" />
<!-- Attributes for wicket login (since it hard not to break anything)-->
-<attribute name="wicketsid" type="string" />
-<attribute name="wicketroomid" value="0" type="number" />
+<attribute name="wicketsid" type="string" value="null"/>
+<attribute name="wicketroomid" type="number" value="0"/>
<!--- skip loading of Language -->
<attribute name="language_id" value="0" type="number" />
Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
(original)
+++ openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx Sun Jan
19 18:34:37 2014
@@ -437,6 +437,7 @@
hib.userScope = scopeRoomId;
}
+ canvas.setAttribute('wicketsid', null);
var wicketsid = lz.Browser.getInitArg('wicketsid');
var wicketroomid = lz.Browser.getInitArg('wicketroomid');
if (wicketsid != undefined && wicketroomid != undefined &&
!isNaN(wicketroomid)) {
Modified:
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
(original)
+++
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
Sun Jan 19 18:34:37 2014
@@ -258,7 +258,7 @@ public class RoomWebService {
return null;
} catch (Exception err) {
- log.error("[getFlvRecordingByExternalRoomType] ", err);
+
log.error("[getFlvRecordingByExternalRoomTypeAndCreator] ", err);
throw new AxisFault(err.getMessage());
}
}
@@ -288,7 +288,7 @@ public class RoomWebService {
return null;
} catch (Exception err) {
- log.error("[getFlvRecordingByExternalRoomType] ", err);
+ log.error("[getFlvRecordingByExternalRoomTypeByList] ",
err);
throw new AxisFault(err.getMessage());
}
}
Modified:
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
(original)
+++
openmeetings/trunk/singlewebapp/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
Sun Jan 19 18:34:37 2014
@@ -43,9 +43,6 @@ import org.red5.logging.Red5LoggerFactor
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
-
/**
*
* The Service contains methods to login and create hash to directly enter
@@ -539,16 +536,9 @@ public class UserWebService {
RemoteSessionObject remoteSessionObject = new
RemoteSessionObject(
username, firstname, lastname,
profilePictureUrl, email);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -607,18 +597,9 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -680,18 +661,9 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -781,18 +753,9 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -883,19 +846,9 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
- log.debug("allowRecording " + allowRecording);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -980,18 +933,9 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -1080,19 +1024,10 @@ public class UserWebService {
username, firstname, lastname,
profilePictureUrl,
email, externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " +
profilePictureUrl);
- log.debug("email " + email);
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
+ log.debug(remoteSessionObject.toString());
log.debug("showNickNameDialogAsInt" +
showNickNameDialogAsInt);
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
@@ -1165,18 +1100,9 @@ public class UserWebService {
username, firstname, "", "",
"", externalUserId,
externalUserType);
- log.debug("username " + username);
- log.debug("firstname " + firstname);
- log.debug("lastname " + lastname);
- log.debug("profilePictureUrl " + "");
- log.debug("email " + "");
- log.debug("externalUserId " + externalUserId);
- log.debug("externalUserType " +
externalUserType);
-
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
- String xmlString =
xStream.toXML(remoteSessionObject);
+ log.debug(remoteSessionObject.toString());
+
+ String xmlString = remoteSessionObject.toXml();
log.debug("xmlString " + xmlString);
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
Sun Jan 19 18:34:37 2014
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.db.dao.server;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
import java.util.Date;
import java.util.List;
@@ -26,7 +28,6 @@ import javax.persistence.PersistenceCont
import javax.persistence.TypedQuery;
import org.apache.openmeetings.db.entity.server.SOAPLogin;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
import org.apache.openmeetings.util.crypt.ManageCryptStyle;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -34,9 +35,7 @@ import org.springframework.transaction.a
@Transactional
public class SOAPLoginDao {
-
- private static final Logger log = Red5LoggerFactory.getLogger(
- SOAPLoginDao.class,
OpenmeetingsVariables.webAppRootKey);
+ private static final Logger log =
Red5LoggerFactory.getLogger(SOAPLoginDao.class, webAppRootKey);
@PersistenceContext
private EntityManager em;
@@ -82,18 +81,15 @@ public class SOAPLoginDao {
return null;
}
- public SOAPLogin getSOAPLoginByHash(String hash) {
+ public SOAPLogin get(String hash) {
try {
- String hql = "select sl from SOAPLogin as sl "
- + "WHERE sl.hash LIKE :hash";
+ String hql = "select sl from SOAPLogin as sl WHERE
sl.hash LIKE :hash";
TypedQuery<SOAPLogin> query = em.createQuery(hql,
SOAPLogin.class);
query.setParameter("hash", hash);
List<SOAPLogin> sList = query.getResultList();
if (sList.size() > 1) {
- throw new Exception(
- "there are more then one
SOAPLogin with identical hash! "
- + hash);
+ throw new Exception("there are more then one
SOAPLogin with identical hash! " + hash);
}
if (sList.size() == 1) {
@@ -101,12 +97,12 @@ public class SOAPLoginDao {
}
} catch (Exception ex2) {
- log.error("[getSOAPLoginByHash]: ", ex2);
+ log.error("[get]: ", ex2);
}
return null;
}
- public void updateSOAPLogin(SOAPLogin soapLogin) {
+ public void update(SOAPLogin soapLogin) {
try {
if (soapLogin.getSoapLoginId() == 0) {
em.persist(soapLogin);
@@ -116,7 +112,7 @@ public class SOAPLoginDao {
}
}
} catch (Exception ex2) {
- log.error("[updateSOAPLogin]: ", ex2);
+ log.error("[update]: ", ex2);
}
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
Sun Jan 19 18:34:37 2014
@@ -107,7 +107,7 @@ public class SessiondataDao {
return sd;
} catch (Exception ex2) {
- log.error("[updateUser]: ", ex2);
+ log.error("[getSessionByHash]: ", ex2);
}
return null;
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
Sun Jan 19 18:34:37 2014
@@ -265,7 +265,7 @@ public class AbstractUserDao {
* @return
*/
public boolean checkUserLogin(String login, Long id) {
- log.debug("checkUserLogin: email = {}, id = {}", login, id);
+ log.debug("checkUserLogin: login = {}, id = {}", login, id);
long count = em.createNamedQuery("checkUserLogin", Long.class)
.setParameter("login", login)
.setParameter("id", id == null ? 0 : id)
@@ -481,4 +481,11 @@ public class AbstractUserDao {
}
return query.getSingleResult();
}
+
+ public User getExternalUser(String extId, String extType) {
+ return em.createNamedQuery("getExternalUser", User.class)
+ .setParameter("externalId", extId)
+ .setParameter("externalType", extType)
+ .getSingleResult();
+ }
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
Sun Jan 19 18:34:37 2014
@@ -124,4 +124,8 @@ public class AdminUserDao implements IDa
public User getContact(String email, String firstName, String lastName,
Long langId, String tzId, long ownerId) {
return dao.getContact(email, firstName, lastName, langId, tzId,
dao.get(ownerId));
}
+
+ public User getExternalUser(String extId, String extType) {
+ return dao.getExternalUser(extId, extType);
+ }
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
Sun Jan 19 18:34:37 2014
@@ -83,4 +83,8 @@ public class UserDao {
public Long searchCountUserProfile(String text, String offers, String
search) {
return dao.searchCountUserProfile(text, offers, search);
}
+
+ public User getExternalUser(String extId, String extType) {
+ return dao.getExternalUser(extId, extType);
+ }
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
Sun Jan 19 18:34:37 2014
@@ -18,6 +18,19 @@
*/
package org.apache.openmeetings.db.entity.server;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import org.apache.openmeetings.backup.BackupExport;
+import org.red5.logging.Red5LoggerFactory;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+import org.simpleframework.xml.Serializer;
+import org.simpleframework.xml.core.Persister;
+import org.slf4j.Logger;
+
/**
* This Class is marshaled as an XML-Object and stored as a String in the DB
to make
* it more easy to extend it
@@ -25,15 +38,22 @@ package org.apache.openmeetings.db.entit
* @author sebastianwagner
*
*/
+@Root
public class RemoteSessionObject {
-
+ private static final Logger log =
Red5LoggerFactory.getLogger(BackupExport.class, webAppRootKey);
+ @Element
private String username;
+ @Element
private String firstname;
+ @Element
private String lastname;
+ @Element
private String pictureUrl;
+ @Element
private String email;
-
+ @Element
private String externalUserId;
+ @Element
private String externalUserType;
public RemoteSessionObject(String username, String firstname, String
lastname,
@@ -113,5 +133,28 @@ public class RemoteSessionObject {
public void setExternalUserType(String externalUserType) {
this.externalUserType = externalUserType;
}
+
+ public String toXml() throws Exception {
+ StringWriter sw = new StringWriter();
+ Serializer serializer = new Persister();
+ serializer.write(this, sw);
+ return sw.toString();
+ }
+
+ public static RemoteSessionObject fromXml(String xml) {
+ Serializer serializer = new Persister();
+ try {
+ return serializer.read(RemoteSessionObject.class, new
StringReader(xml));
+ } catch (Exception e) {
+ log.error("Unexpected error while restoring object from
XML: " + xml, e);
+ }
+ return null;
+ }
+ @Override
+ public String toString() {
+ return "RemoteSessionObject [username=" + username + ",
firstname=" + firstname + ", lastname=" + lastname
+ + ", pictureUrl=" + pictureUrl + ", email=" +
email + ", externalUserId=" + externalUserId
+ + ", externalUserType=" + externalUserType +
"]";
+ }
}
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/user/User.java
Sun Jan 19 18:34:37 2014
@@ -97,7 +97,8 @@ import org.simpleframework.xml.Root;
@NamedQuery(name = "updatePassword", query = "UPDATE User u SET
u.password = :password WHERE u.user_id = :userId"), //
@NamedQuery(name = "getNondeletedUsers", query = "SELECT u FROM User u
WHERE u.deleted = false"),
@NamedQuery(name = "countNondeletedUsers", query = "SELECT COUNT(u)
FROM User u WHERE u.deleted = false"),
- @NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM
User u WHERE u.deleted = false AND
u.organisation_users.organisation.organisation_id = :organisation_id")
+ @NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM
User u WHERE u.deleted = false AND
u.organisation_users.organisation.organisation_id = :organisation_id"),
+ @NamedQuery(name = "getExternalUser", query = "SELECT u FROM User u
WHERE u.deleted = false AND u.externalUserId LIKE :externalId AND
u.externalUserType LIKE :externalType")
})
@Table(name = "om_user")
@Root(name = "user")
Modified:
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
(original)
+++
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
Sun Jan 19 18:34:37 2014
@@ -919,8 +919,7 @@ public class UserManager implements IUse
if (address != null) {
users.setAdresses(address);
} else {
- users.setAdresses("", "", "",
statemanagement.getStateById(1L), "",
- "", "", "", email);
+ users.setAdresses("", "", "",
statemanagement.getStateById(1L), "", "", "", "", email);
}
users.setAvailible(availible);
@@ -959,7 +958,7 @@ public class UserManager implements IUse
return user_id;
} catch (Exception ex2) {
- log.error("[registerUser]", ex2);
+ log.error("[addUserWithExternalKey]", ex2);
}
return null;
}
Modified:
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
(original)
+++
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
Sun Jan 19 18:34:37 2014
@@ -53,6 +53,7 @@ import org.apache.openmeetings.remote.re
import org.apache.openmeetings.remote.util.SessionVariablesUtil;
import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.wicket.util.string.Strings;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.IConnection;
import org.red5.server.api.Red5;
@@ -61,9 +62,6 @@ import org.red5.server.api.service.IPend
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
-
import edu.emory.mathcs.backport.java.util.Arrays;
/**
@@ -200,7 +198,7 @@ public class MainService implements IPen
log.debug("swfURL " + clientURL);
- SOAPLogin soapLogin =
soapLoginDao.getSOAPLoginByHash(secureHash);
+ SOAPLogin soapLogin = soapLoginDao.get(secureHash);
if (soapLogin.getUsed()) {
@@ -217,8 +215,7 @@ public class MainService implements IPen
}
}
- Long loginReturn = this.loginUserByRemote(soapLogin
- .getSessionHash());
+ Long loginReturn =
loginUserByRemote(soapLogin.getSessionHash());
IConnection current = Red5.getConnectionLocal();
String streamId = current.getClient().getId();
@@ -246,7 +243,7 @@ public class MainService implements IPen
soapLogin.setClientURL(clientURL);
- soapLoginDao.updateSOAPLogin(soapLogin);
+ soapLoginDao.update(soapLogin);
// Create Return Object and hide the validated
// sessionHash that is stored server side
@@ -323,44 +320,23 @@ public class MainService implements IPen
try {
Long users_id = sessiondataDao.checkSession(SID);
Long user_level =
userManager.getUserLevelByID(users_id);
- if (AuthLevelUtil.checkWebServiceLevel(
- user_level)) {
-
+ if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
Sessiondata sd =
sessiondataDao.getSessionByHash(SID);
if (sd == null || sd.getSessionXml() == null) {
return new Long(-37);
} else {
+ RemoteSessionObject userObject =
RemoteSessionObject.fromXml(sd.getSessionXml());
- // XStream xStream = new XStream(new
XppDriver());
- XStream xStream = new XStream(new
DomDriver("UTF-8"));
- xStream.setMode(XStream.NO_REFERENCES);
-
- String xmlString = sd.getSessionXml();
- RemoteSessionObject userObject =
(RemoteSessionObject) xStream
- .fromXML(xmlString);
-
- log.debug("userObject.getUsername(),
userObject.getFirstname(), userObject.getLastname() "
- +
userObject.getUsername()
- + ", "
- +
userObject.getFirstname()
- + ", "
- +
userObject.getLastname());
+ log.debug(userObject.toString());
IConnection current =
Red5.getConnectionLocal();
String streamId =
current.getClient().getId();
- Client currentClient =
this.sessionManager
-
.getClientByStreamId(streamId, null);
+ Client currentClient =
sessionManager.getClientByStreamId(streamId, null);
// Check if this User is simulated in
the OpenMeetings
// Database
-
log.debug("userObject.getExternalUserId() -1- "
- +
userObject.getExternalUserId());
-
- if (userObject.getExternalUserId() !=
null
- &&
userObject.getExternalUserId() != null &&
-
!"".equals(userObject.getExternalUserId())) {
-
+ if
(!Strings.isEmpty(userObject.getExternalUserId())) {
// If so we need to check that
we create this user in
// OpenMeetings and update its
record
@@ -387,7 +363,6 @@ public class MainService implements IPen
currentClient.setUser_id(userId);
SessionVariablesUtil.setUserId(current.getClient(), userId);
} else {
-
user.setPictureuri(userObject.getPictureUrl());
userManager.updateUser(user);
@@ -397,25 +372,19 @@ public class MainService implements IPen
}
}
-
log.debug("userObject.getExternalUserId() -2- "
- +
currentClient.getUser_id());
+
log.debug("userObject.getExternalUserId() -2- " + currentClient.getUser_id());
- currentClient
-
.setUserObject(userObject.getUsername(),
-
userObject.getFirstname(),
-
userObject.getLastname());
+
currentClient.setUserObject(userObject.getUsername(),
userObject.getFirstname(), userObject.getLastname());
currentClient.setPicture_uri(userObject.getPictureUrl());
currentClient.setMail(userObject.getEmail());
log.debug("UPDATE USER BY STREAMID " +
streamId);
if (currentClient.getUser_id() != null)
{
- sessiondataDao.updateUser(SID,
-
currentClient.getUser_id());
+ sessiondataDao.updateUser(SID,
currentClient.getUser_id());
}
-
this.sessionManager.updateClientByStreamId(streamId,
- currentClient, false,
null);
+
sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
return new Long(1);
}
Modified:
openmeetings/trunk/singlewebapp/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/util/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
(original)
+++
openmeetings/trunk/singlewebapp/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
Sun Jan 19 18:34:37 2014
@@ -194,11 +194,11 @@ public class OmFileHelper {
}
public static File getMp4Recording(String name) {
- return new File(getDir(getStreamsDir(), HIBERNATE_DIR), name +
MP4_EXTENSION);
+ return getRecording(name + MP4_EXTENSION);
}
public static File getOggRecording(String name) {
- return new File(getDir(getStreamsDir(), HIBERNATE_DIR), name +
OGG_EXTENSION);
+ return getRecording(name + OGG_EXTENSION);
}
public static File getStreamsSubDir(Long id) {
Modified:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/Application.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/Application.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/Application.java
(original)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/Application.java
Sun Jan 19 18:34:37 2014
@@ -40,6 +40,8 @@ import org.apache.openmeetings.web.user.
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.WelcomeWidgetDescriptor;
+import org.apache.openmeetings.web.util.AviRecordingResourceReference;
+import org.apache.openmeetings.web.util.FlvRecordingResourceReference;
import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
import org.apache.openmeetings.web.util.OggRecordingResourceReference;
import org.apache.openmeetings.web.util.UserDashboardPersister;
@@ -123,6 +125,8 @@ public class Application extends Authent
mountPage("signin", getSignInPageClass());
mountPage("activate", ActivatePage.class);
mountPage("reset", ResetPage.class);
+ mountResource("/recordings/avi/${id}", new
AviRecordingResourceReference());
+ mountResource("/recordings/flv/${id}", new
FlvRecordingResourceReference());
mountResource("/recordings/mp4/${id}", new
Mp4RecordingResourceReference());
mountResource("/recordings/ogg/${id}", new
OggRecordingResourceReference());
}
Modified:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
(original)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
Sun Jan 19 18:34:37 2014
@@ -30,6 +30,7 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@@ -39,12 +40,16 @@ import java.util.TimeZone;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
import org.apache.openmeetings.db.dao.user.IUserManager;
import org.apache.openmeetings.db.dao.user.StateDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
@@ -88,6 +93,7 @@ public class WebSession extends Abstract
private String baseUrl = null;
private Locale browserLocale = null;
private int browserTZOffset = Integer.MIN_VALUE;
+ private Long recordingId;
private static Set<Long> STRINGS_WITH_APP = new HashSet<Long>();
//FIXME need to be removed
static {
STRINGS_WITH_APP.addAll(Arrays.asList(499L, 500L, 506L, 511L,
512L, 513L, 517L, 532L, 622L, 804L
@@ -106,6 +112,7 @@ public class WebSession extends Abstract
userLevel = -1;
SID = null;
sdf = null;
+ recordingId = null;
}
@Override
@@ -161,6 +168,62 @@ public class WebSession extends Abstract
return userId > -1;
}
+ public boolean signIn(String secureHash) {
+ //FIXME code is duplicated from MainService, need to be unified
+ SOAPLoginDao soapDao = getBean(SOAPLoginDao.class);
+ SOAPLogin soapLogin = soapDao.get(secureHash);
+ if (!soapLogin.getUsed()) { //add code for ||
(soapLogin.getAllowSameURLMultipleTimes())
+ SessiondataDao sessionDao =
getBean(SessiondataDao.class);
+ Sessiondata sd =
sessionDao.getSessionByHash(soapLogin.getSessionHash());
+ if (sd != null && sd.getSessionXml() != null) {
+ RemoteSessionObject remoteUser =
RemoteSessionObject.fromXml(sd.getSessionXml());
+ if (remoteUser != null &&
!Strings.isEmpty(remoteUser.getExternalUserId())) {
+ AdminUserDao userDao =
getBean(AdminUserDao.class);
+ User user =
userDao.getExternalUser(remoteUser.getExternalUserId(),
remoteUser.getExternalUserType());
+ if (user == null) {
+ user =
userDao.getNewUserInstance(null);
+
user.setFirstname(remoteUser.getFirstname());
+
user.setLastname(remoteUser.getLastname());
+
user.setLogin(remoteUser.getUsername()); //FIXME check if login UNIQUE
+
user.setExternalUserId(remoteUser.getExternalUserId());
+
user.setExternalUserType(remoteUser.getExternalUserType());
+
user.getAdresses().setEmail(remoteUser.getEmail());
+
user.setPictureuri(remoteUser.getPictureUrl());
+ } else {
+
user.setFirstname(remoteUser.getFirstname());
+
user.setLastname(remoteUser.getLastname());
+
user.setPictureuri(remoteUser.getPictureUrl());
+ }
+ user = userDao.update(user, null);
+
+ soapLogin.setUsed(true);
+ soapLogin.setUseDate(new Date());
+ //soapLogin.setClientURL(clientURL);
//FIXME
+ soapDao.update(soapLogin);
+
+ sessionDao.updateUser(SID,
user.getUser_id());
+ setUser(user);
+ recordingId =
soapLogin.getRoomRecordingId();
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private void setUser(User u) {
+ userId = u.getUser_id();
+ userLevel = u.getLevel_id();
+ languageId = u.getLanguage_id();
+ tz = getBean(TimezoneUtil.class).getTimeZone(u);
+ ISO8601FORMAT.setTimeZone(tz);
+ //FIXMW locale need to be set by User language first
+ sdf = DateFormat.getDateTimeInstance(SHORT, SHORT, getLocale());
+ if (null == getId()) {
+ bind();
+ }
+ }
+
public boolean signIn(String login, String password, String
ldapConfigFileName) {
Sessiondata sessData =
getBean(SessiondataDao.class).startsession();
SID = sessData.getSession_id();
@@ -169,17 +232,7 @@ public class WebSession extends Abstract
:
getBean(ILdapLoginManagement.class).doLdapLogin(login, password, null, null,
SID, ldapConfigFileName);
if (u instanceof User) {
- User user = (User)u;
- userId = user.getUser_id();
- userLevel = user.getLevel_id();
- languageId = user.getLanguage_id();
- tz = getBean(TimezoneUtil.class).getTimeZone(user);
- ISO8601FORMAT.setTimeZone(tz);
- //FIXMW locale need to be set by User language first
- sdf = DateFormat.getDateTimeInstance(SHORT, SHORT,
getLocale());
- if (null == getId()) {
- bind();
- }
+ setUser((User)u);
return true;
}
return false;
@@ -223,6 +276,10 @@ public class WebSession extends Abstract
return get().userId;
}
+ public static Long getRecordingId() {
+ return get().recordingId;
+ }
+
public static TimeZone getUserTimeZone() {
return get().tz;
}
Added:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java?rev=1559543&view=auto
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
(added)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
Sun Jan 19 18:34:37 2014
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class AviRecordingResourceReference extends RecordingResourceReference {
+ private static final long serialVersionUID = 6181482949621024822L;
+
+ public AviRecordingResourceReference() {
+ super(AviRecordingResourceReference.class);
+ }
+
+ @Override
+ public String getContentType() {
+ return "video/avi";
+ }
+
+ @Override
+ String getFileName(FlvRecording r) {
+ return r.getAlternateDownload();
+ }
+
+ @Override
+ File getFile(FlvRecording r) {
+ return getRecording(r.getAlternateDownload());
+ }
+}
Added:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java?rev=1559543&view=auto
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
(added)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
Sun Jan 19 18:34:37 2014
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class FlvRecordingResourceReference extends RecordingResourceReference {
+ private static final long serialVersionUID = 6181482949621024822L;
+
+ public FlvRecordingResourceReference() {
+ super(FlvRecordingResourceReference.class);
+ }
+
+ @Override
+ public String getContentType() {
+ return "video/flv";
+ }
+
+ @Override
+ String getFileName(FlvRecording r) {
+ return r.getFileHash();
+ }
+
+ @Override
+ File getFile(FlvRecording r) {
+ return getRecording(r.getFileHash());
+ }
+}
Modified:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1559543&r1=1559542&r2=1559543&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
(original)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
Sun Jan 19 18:34:37 2014
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.util
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getRecordingId;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.red5.logging.Red5LoggerFactory.getLogger;
@@ -165,21 +166,43 @@ public abstract class RecordingResourceR
abstract String getFileName(FlvRecording r);
abstract File getFile(FlvRecording r);
- private FlvRecording getRecording(Attributes attributes) {
- PageParameters params = attributes.getParameters();
- StringValue id = params.get("id");
- if (WebSession.get().isSignedIn() && !id.isEmpty()) {
- FlvRecording r =
getBean(FlvRecordingDao.class).get(id.toLongObject());
- if (r.getOwnerId() == null || getUserId() ==
r.getOwnerId()) {
+ private Long getLong(StringValue id) {
+ Long result = null;
+ try {
+ result = id.toLongObject();
+ } catch(Exception e) {
+ //no-op
+ }
+ return result;
+ }
+
+ private FlvRecording getRecording(Long id) {
+ FlvRecording r = getBean(FlvRecordingDao.class).get(id);
+ if (r.getOwnerId() == null || getUserId() == r.getOwnerId()) {
+ return r;
+ }
+ //FIXME UGLY need to be optimized
+ for (Organisation_Users ou :
getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
+ if
(ou.getOrganisation().getOrganisation_id().equals(r.getOrganization_id())) {
return r;
}
- //FIXME UGLY need to be optimized
- for (Organisation_Users ou :
getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
- if
(ou.getOrganisation().getOrganisation_id().equals(r.getOrganization_id())) {
- return r;
- }
+ }
+ //TODO investigate if these checks are enough
+ return null;
+ }
+
+ private FlvRecording getRecording(Attributes attributes) {
+ PageParameters params = attributes.getParameters();
+ StringValue idStr = params.get("id");
+ Long id = getLong(idStr);
+ WebSession ws = WebSession.get();
+ if (id != null && ws.isSignedIn()) {
+ return getRecording(id);
+ } else {
+ ws.invalidate();
+ if (ws.signIn(idStr.toString())) {
+ return getRecording(getRecordingId());
}
- //TODO investigate if these checks are enough
}
return null;
}