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;
        }
        


Reply via email to