[OPENMEETINGS-1438] recording rights are being checked correctly
git-svn-id: https://svn.apache.org/repos/asf/openmeetings/application/trunk@1754069 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
index d397ff9..2926bcd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
@@ -28,6 +28,7 @@
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.app.WebSession;
@@ -75,22 +76,26 @@
}
private static Recording getRecording(Long id) {
+ log.debug("Recording with id {} is requested", id);
Recording r = getBean(RecordingDao.class).get(id);
- // TODO should we process public?
- // || r.getOwnerId() == 0 || r.getParentFileExplorerItemId() == null || r.getParentFileExplorerItemId() == 0
- if (r == null) {
+ if (r == null || r.getType() == Type.Folder || r.isDeleted()) {
+ return null;
+ }
+ //TODO should we check parentId here
+ if (r.getOwnerId() == null && r.getGroupId() == null) {
+ //public
return r;
}
- if (r.getOwnerId() == null || getUserId().equals(r.getOwnerId())) {
+ if (r.getOwnerId() != null && getUserId().equals(r.getOwnerId())) {
+ //own
return r;
}
- if (r.getGroupId() == null || getBean(GroupUserDao.class).isUserInGroup(r.getGroupId(), getUserId())) {
+ if (r.getGroupId() != null && getBean(GroupUserDao.class).isUserInGroup(r.getGroupId(), getUserId())) {
return r;
}
- //TODO external group check was added for plugin recording download
+ //external group check was added for plugin recording download
String extType = getExternalType();
if (extType != null) {
- log.debug("External recording requested: " + extType);
User creator = getBean(UserDao.class).get(r.getInsertedBy());
if (extType.equals(creator.getExternalType())) {
return r;