Author: solomax
Date: Tue Jan 21 16:25:57 2014
New Revision: 1560065
URL: http://svn.apache.org/r1560065
Log:
[OPENMEETINGS-870] code clean up;
Download recordings should work as expected;
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/room/Client.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/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java?rev=1560065&r1=1560064&r2=1560065&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
Tue Jan 21 16:25:57 2014
@@ -46,11 +46,8 @@ public class FlvRecordingDao {
public FlvRecording get(Long flvRecordingId) {
try {
-
- String hql = "SELECT c FROM FlvRecording c WHERE
c.flvRecordingId = :flvRecordingId";
-
- TypedQuery<FlvRecording> query = em.createQuery(hql,
FlvRecording.class);
- query.setParameter("flvRecordingId", flvRecordingId);
+ TypedQuery<FlvRecording> query =
em.createNamedQuery("getRecordingById", FlvRecording.class);
+ query.setParameter("id", flvRecordingId);
FlvRecording flvRecording = null;
try {
@@ -82,15 +79,8 @@ public class FlvRecordingDao {
public List<FlvRecording> getFlvRecordings() {
try {
-
- String hql = "SELECT c FROM FlvRecording c WHERE
c.deleted <> :deleted ";
-
- TypedQuery<FlvRecording> query = em.createQuery(hql,
FlvRecording.class);
- query.setParameter("deleted", true);
-
- List<FlvRecording> flvRecordings =
query.getResultList();
-
- return flvRecordings;
+ return em.createQuery("SELECT c FROM FlvRecording c
WHERE c.deleted = false", FlvRecording.class)
+ .getResultList();
} catch (Exception ex2) {
log.error("[getFlvRecordings]: ", ex2);
}
@@ -123,7 +113,7 @@ public class FlvRecordingDao {
String hql = "SELECT c FROM FlvRecording c, Room r
WHERE c.room_id = r.rooms_id "
+ "AND r.externalRoomType LIKE
:externalRoomType AND c.insertedBy LIKE :insertedBy "
- + "AND c.deleted <> :deleted ";
+ + "AND c.deleted = false";
TypedQuery<FlvRecording> query = em.createQuery(hql,
FlvRecording.class);
query.setParameter("externalRoomType",
externalRoomType);
@@ -180,13 +170,12 @@ public class FlvRecordingDao {
public List<FlvRecording> getFlvRecordingsPublic() {
try {
- String hql = "SELECT c FROM FlvRecording c " + "WHERE
c.deleted <> :deleted "
+ String hql = "SELECT c FROM FlvRecording c " + "WHERE
c.deleted = false "
+ "AND (c.ownerId IS NULL OR c.ownerId
= 0) "
+ "AND (c.parentFileExplorerItemId IS
NULL OR c.parentFileExplorerItemId = 0) "
+ "ORDER BY c.isFolder DESC, c.fileName
";
TypedQuery<FlvRecording> query = em.createQuery(hql,
FlvRecording.class);
- query.setParameter("deleted", true);
List<FlvRecording> flvRecordingList =
query.getResultList();
return flvRecordingList;
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java?rev=1560065&r1=1560064&r2=1560065&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
Tue Jan 21 16:25:57 2014
@@ -67,12 +67,11 @@ public class FlvRecordingMetaDataDao {
public List<FlvRecordingMetaData>
getFlvRecordingMetaDataByRecording(Long flvRecordingId) {
try {
- String hql = "SELECT c FROM FlvRecordingMetaData c " +
"WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
- + "AND c.deleted <> :deleted ";
+ String hql = "SELECT c FROM FlvRecordingMetaData c
WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+ + "AND c.deleted = false ";
TypedQuery<FlvRecordingMetaData> query =
em.createQuery(hql, FlvRecordingMetaData.class);
query.setParameter("flvRecordingId", flvRecordingId);
- query.setParameter("deleted", true);
List<FlvRecordingMetaData> flvRecordingMetaDatas =
query.getResultList();
@@ -86,10 +85,9 @@ public class FlvRecordingMetaDataDao {
public List<FlvRecordingMetaData>
getFlvRecordingMetaDataAudioFlvsByRecording(Long flvRecordingId) {
try {
-
- String hql = "SELECT c FROM FlvRecordingMetaData c " +
"WHERE c.flvRecording.flvRecordingId = :flvRecordingId " + "AND ("
- + "(c.isScreenData = false) " + " AND "
+ "(c.isAudioOnly = true OR (c.isAudioOnly = false AND c.isVideoOnly = false))"
- + ")";
+ String hql = "SELECT c FROM FlvRecordingMetaData c
WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+ + "AND c.isScreenData = false AND
c.streamReaderThreadComplete IS NOT NULL "
+ + "AND (c.isAudioOnly = true OR
(c.isAudioOnly = false AND c.isVideoOnly = false))";
TypedQuery<FlvRecordingMetaData> query =
em.createQuery(hql, FlvRecordingMetaData.class);
query.setParameter("flvRecordingId", flvRecordingId);
@@ -97,7 +95,6 @@ public class FlvRecordingMetaDataDao {
List<FlvRecordingMetaData> flvRecordingMetaDatas =
query.getResultList();
return flvRecordingMetaDatas;
-
} catch (Exception ex2) {
log.error("[getFlvRecordingMetaDataAudioFlvsByRecording]: ", ex2);
}
@@ -107,7 +104,7 @@ public class FlvRecordingMetaDataDao {
public FlvRecordingMetaData
getFlvRecordingMetaDataScreenFlvByRecording(Long flvRecordingId) {
try {
- String hql = "SELECT c FROM FlvRecordingMetaData c " +
"WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+ String hql = "SELECT c FROM FlvRecordingMetaData c
WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+ "AND c.isScreenData = true";
TypedQuery<FlvRecordingMetaData> query =
em.createQuery(hql, FlvRecordingMetaData.class);
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java?rev=1560065&r1=1560064&r2=1560065&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
Tue Jan 21 16:25:57 2014
@@ -79,8 +79,8 @@ public class OrganisationUserDao impleme
}
public boolean isUserInOrganization(long orgId, long userId) {
- return null != em.createNamedQuery("isUserInOrganization",
Organisation_Users.class)
- .setParameter("orgId",
orgId).setParameter("userId", userId).getSingleResult();
+ return em.createNamedQuery("isUserInOrganization",
Organisation_Users.class)
+ .setParameter("orgId",
orgId).setParameter("userId", userId).getResultList().size() > 0;
}
public long count() {
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java?rev=1560065&r1=1560064&r2=1560065&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
Tue Jan 21 16:25:57 2014
@@ -59,7 +59,8 @@ import org.simpleframework.xml.Root;
*/
@Entity
@NamedQueries({
- @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM
FlvRecording f WHERE f.fileHash = :fileHash")
+ @NamedQuery(name = "getRecordingById", query = "SELECT f FROM
FlvRecording f WHERE f.flvRecordingId = :id")
+ , @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM
FlvRecording f WHERE f.fileHash = :fileHash")
, @NamedQuery(name = "getRecordingsByExternalUser", query = "SELECT NEW
org.apache.openmeetings.db.dto.file.RecordingObject(c) "
+ "FROM FlvRecording c, User u "
+ "WHERE c.insertedBy = u.user_id AND u.externalUserId
= :externalUserId AND u.externalUserType = :externalUserType "
@@ -68,7 +69,6 @@ import org.simpleframework.xml.Root;
@Table(name = "flvrecording")
@Root(name = "flvrecording")
public class FlvRecording implements Serializable {
-
private static final long serialVersionUID = -2234874663310617072L;
@Id
Modified:
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/room/Client.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/room/Client.java?rev=1560065&r1=1560064&r2=1560065&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/room/Client.java
(original)
+++
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/room/Client.java
Tue Jan 21 16:25:57 2014
@@ -63,10 +63,6 @@ import org.apache.openmeetings.util.Cale
})
@Table(name = "client")
public class Client implements IDataProviderEntity, Serializable {
-
- /**
- *
- */
private static final long serialVersionUID = -5980636447877077730L;
@Id
@@ -872,20 +868,10 @@ public class Client implements IDataProv
@Override
public String toString() {
- return super.toString() //
- + " StreamId: " + this.getStreamid() //
- + " PublicSID: " + this.getPublicSID() //
- + " UserId: " + this.getUser_id() //
- + " RoomId: " + this.room_id //
- + " isScreenClient: " +
this.getIsScreenClient() //
- + " flvRecordingId: " +
this.getFlvRecordingId() //
- + " screenPublishStarted: " +
this.isScreenPublishStarted() //
- + " flvRecordingMetaDataId: " +
this.getFlvRecordingMetaDataId() //
- + " isRecording: " + this.getIsRecording() //
- + " isAVClient: " + this.getIsAVClient() //
- + " broadCastID: " + this.getBroadCastID() //
- + " avsettings: " + this.getAvsettings() //
- + " server: " + server
- ;
+ return "Client [streamid=" + streamid + ", publicSID=" +
publicSID + ", isScreenClient=" + isScreenClient
+ + ", isAVClient=" + isAVClient + ", room_id=" +
room_id + ", broadCastID=" + broadCastID + ", user_id="
+ + user_id + ", avsettings=" + avsettings + ",
isRecording=" + isRecording + ", flvRecordingId="
+ + flvRecordingId + ", flvRecordingMetaDataId="
+ flvRecordingMetaDataId + ", screenPublishStarted="
+ + screenPublishStarted + ", interviewPodId=" +
interviewPodId + ", server=" + server + "]";
}
}
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=1560065&r1=1560064&r2=1560065&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
Tue Jan 21 16:25:57 2014
@@ -94,6 +94,7 @@ public class WebSession extends Abstract
private Locale browserLocale = null;
private int browserTZOffset = Integer.MIN_VALUE;
private Long recordingId;
+ private String externalType;
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
@@ -113,6 +114,7 @@ public class WebSession extends Abstract
SID = null;
sdf = null;
recordingId = null;
+ externalType = null;
}
@Override
@@ -215,6 +217,7 @@ public class WebSession extends Abstract
userId = u.getUser_id();
userLevel = u.getLevel_id();
languageId = u.getLanguage_id();
+ externalType = u.getExternalUserType();
tz = getBean(TimezoneUtil.class).getTimeZone(u);
ISO8601FORMAT.setTimeZone(tz);
//FIXMW locale need to be set by User language first
@@ -280,6 +283,10 @@ public class WebSession extends Abstract
return get().recordingId;
}
+ public static String getExternalType() {
+ return get().externalType;
+ }
+
public static TimeZone getUserTimeZone() {
return get().tz;
}
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=1560065&r1=1560064&r2=1560065&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
Tue Jan 21 16:25:57 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.getExternalType;
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;
@@ -176,14 +177,21 @@ public abstract class RecordingResourceR
}
private FlvRecording getRecording(Long id) {
- FlvRecording r = getBean(FlvRecordingDao.class).get(id);
- if (r.getOwnerId() == null || getUserId() == r.getOwnerId()) {
+ FlvRecordingDao recDao = getBean(FlvRecordingDao.class);
+ FlvRecording r = recDao.get(id);
+ if (r.getOwnerId() == null || r.getOwnerId() == 0
+ || r.getParentFileExplorerItemId() == null ||
r.getParentFileExplorerItemId() == 0
+ || getUserId() == r.getOwnerId()) {
return r;
}
if
(getBean(OrganisationUserDao.class).isUserInOrganization(r.getOrganization_id(),
getUserId())) {
return r;
}
- //TODO investigate if these checks are enough
+ //TODO external group check was added for plugin recording
download
+ String extType = getExternalType();
+ if (extType != null &&
extType.equals(r.getCreator().getExternalUserType())) {
+ return r;
+ }
return null;
}