diff --git a/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml b/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml
index 22a97f7e2..3c20db8e4 100644
--- a/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml
+++ b/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml
@@ -71,6 +71,9 @@
+
+
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/AbstractAssetForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/AbstractAssetForm.java
index 9c79e61b0..b8595be24 100644
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/AbstractAssetForm.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/AbstractAssetForm.java
@@ -340,6 +340,11 @@ public abstract class AbstractAssetForm
if (selectedAsset.isPresent()) {
+ name.setValue(state,
+ selectedAsset
+ .get()
+ .getDisplayName());
+
title.setValue(state,
selectedAsset
.get()
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/forms/ImageForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/forms/ImageForm.java
index f6c3d5c3b..490b40171 100644
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/forms/ImageForm.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/assets/forms/ImageForm.java
@@ -104,7 +104,7 @@ public class ImageForm extends AbstractBinaryAssetForm {
}
}
}
-
+
@Override
protected Class getAssetClass() {
return Image.class;
@@ -132,7 +132,6 @@ public class ImageForm extends AbstractBinaryAssetForm {
//
// return image;
// }
-
@Override
protected void updateAsset(final Asset asset,
final FormSectionEvent event)
@@ -144,8 +143,18 @@ public class ImageForm extends AbstractBinaryAssetForm {
final Image image = (Image) asset;
- image.setHeight(Long.parseLong((String) height.getValue(state)));
- image.setWidth(Long.parseLong((String) width.getValue(state)));
+ if (height.getValue(state) == null
+ || ((String) height.getValue(state)).trim().isEmpty()) {
+ image.setHeight(-1);
+ } else {
+ image.setHeight(Long.parseLong((String) height.getValue(state)));
+ }
+ if (width.getValue(state) == null
+ || ((String) width.getValue(state)).trim().isEmpty()) {
+ image.setWidth(-1);
+ } else {
+ image.setWidth(Long.parseLong((String) width.getValue(state)));
+ }
updateData(image, state);
}
@@ -172,5 +181,4 @@ public class ImageForm extends AbstractBinaryAssetForm {
// protected BinaryAsset createBinaryAsset(final PageState state) {
// return new Image();
// }
-
}
diff --git a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
index 68b694854..ef20797c2 100644
--- a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
+++ b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java
@@ -69,12 +69,10 @@ public class BinaryAsset extends Asset implements Serializable {
private LocalizedString description;
@Column(name = "FILENAME", length = 512, nullable = false)
- @NotEmpty
private String fileName;
@Column(name = "MIME_TYPE", length = 512, nullable = false)
@Convert(converter = MimeTypeConverter.class)
- @NotNull
private MimeType mimeType;
@Column(name = "ASSET_DATA")
diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java
index 3d36b4ec9..e97598cc9 100644
--- a/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java
+++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetManager.java
@@ -117,7 +117,9 @@ public class AssetManager {
asset.getTitle().addValue(locale, title);
assetRepo.save(asset);
- categoryManager.addObjectToCategory(asset, folder);
+ categoryManager.addObjectToCategory(asset,
+ folder,
+ CmsConstants.CATEGORIZATION_TYPE_FOLDER);
permissionManager.copyPermissions(folder, asset, true);
return asset;
diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java
index 5eca5f75a..9d6223b22 100644
--- a/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java
+++ b/ccm-cms/src/main/java/org/librecms/contentsection/AssetRepository.java
@@ -25,16 +25,18 @@ import org.libreccm.categorization.Categorization;
import org.libreccm.categorization.Category;
import org.libreccm.categorization.CategoryManager;
import org.libreccm.categorization.ObjectNotAssignedToCategoryException;
-import org.libreccm.core.CcmObject;
import org.libreccm.core.CcmObjectRepository;
import org.libreccm.core.UnexpectedErrorException;
import org.libreccm.security.AuthorizationRequired;
+import org.libreccm.security.Permission;
import org.libreccm.security.PermissionChecker;
+import org.libreccm.security.PermissionManager;
import org.libreccm.security.RequiresPrivilege;
import org.libreccm.security.Role;
import org.libreccm.security.Shiro;
import org.libreccm.security.User;
import org.librecms.contentsection.privileges.AssetPrivileges;
+import org.librecms.contentsection.rs.Assets;
import java.util.Collections;
import java.util.List;
@@ -62,25 +64,28 @@ public class AssetRepository
.getLogger(AssetRepository.class);
@Inject
- private Shiro shiro;
-
- @Inject
- private PermissionChecker permissionChecker;
-
- @Inject
- private EntityManager entityManager;
-
- @Inject
- private CcmObjectRepository ccmObjectRepo;
+ private AssetManager assetManager;
@Inject
private CategoryManager categoryManager;
+ @Inject
+ private CcmObjectRepository ccmObjectRepo;
+
+ @Inject
+ private EntityManager entityManager;
+
@Inject
private FolderRepository folderRepo;
@Inject
- private AssetManager assetManager;
+ private PermissionChecker permissionChecker;
+
+ @Inject
+ private PermissionManager permissionManager;
+
+ @Inject
+ private Shiro shiro;
@Override
public Long getEntityId(final Asset asset) {
@@ -193,6 +198,13 @@ public class AssetRepository
}
}
+ final List permissions = asset.getPermissions();
+ for (final Permission permission : permissions) {
+ permissionManager.revokePrivilege(permission.getGrantedPrivilege(),
+ permission.getGrantee(),
+ asset);
+ }
+
ccmObjectRepo.delete(asset);
}
}
@@ -542,7 +554,7 @@ public class AssetRepository
Asset.class)
.setParameter("folder", folder)
.setParameter("name", name);
-// setAuthorizationParameters(query);
+ setAuthorizationParameters(query);
try {
return Optional.of(query.getSingleResult());
@@ -594,7 +606,7 @@ public class AssetRepository
}
if (folder.isPresent()) {
- LOGGER.debug("transaction is active? {}",
+ LOGGER.debug("transaction is active? {}",
entityManager.isJoinedToTransaction());
LOGGER.debug("Folder for path {} found...", path);
// LOGGER.debug("Assets in the folder:");
diff --git a/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/h2/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql b/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/h2/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql
new file mode 100644
index 000000000..3bf12c53c
--- /dev/null
+++ b/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/h2/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql
@@ -0,0 +1,2 @@
+ALTER TABLE ccm_cms.binary_assets ALTER COLUMN mime_type SET NULL;
+ALTER TABLE ccm_cms.binary_assets ALTER COLUMN filename SET NULL;
\ No newline at end of file
diff --git a/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/pgsql/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql b/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/pgsql/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql
new file mode 100644
index 000000000..31d2d8ce9
--- /dev/null
+++ b/ccm-cms/src/main/resources/db/migrations/org/librecms/ccm_cms/pgsql/V7_0_0_14__remove_not_null_binary_asset_mimetype.sql
@@ -0,0 +1,2 @@
+ALTER TABLE ccm_cms.binary_assets ALTER COLUMN mime_type DROP NOT NULL;
+ALTER TABLE ccm_cms.binary_assets ALTER COLUMN filename DROP NOT NULL;
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
index f8c4c2a57..61dd5bd32 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
@@ -385,3 +385,4 @@ image_step.description=Attach images
related_info_step_description=Add related information
cms.ui.authoring.file_upload.auto_detect=(Auto-Detect)
cms.ui.upload_new_content=Upload new content
+cms.ui.asset.name=Name
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
index 26c6475b0..cf9025d60 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
@@ -382,3 +382,4 @@ image_step.description=Bilder hinzuf\u00fcgen
related_info_step_description=Weiterf\u00fchrende Informationen hinzuf\u00fcgen
cms.ui.authoring.file_upload.auto_detect=(Automatisch erkennen)
cms.ui.upload_new_content=Neuen Inhalt hochladen
+cms.ui.asset.name=Name
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
index e64423fa4..6a8a620f3 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
@@ -341,3 +341,4 @@ image_step.description=Attach images
related_info_step_description=Add related information
cms.ui.authoring.file_upload.auto_detect=(Auto-Detect)
cms.ui.upload_new_content=Upload new content
+cms.ui.asset.name=Name
diff --git a/ccm-cms/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_cms_schema.sql b/ccm-cms/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_cms_schema.sql
index 129c16ab2..e485d2bb5 100644
--- a/ccm-cms/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_cms_schema.sql
+++ b/ccm-cms/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_cms_schema.sql
@@ -170,8 +170,8 @@ create schema CCM_CORE;
create table CCM_CMS.BINARY_ASSETS (
ASSET_DATA blob,
- FILENAME varchar(512) not null,
- MIME_TYPE varchar(512) not null,
+ FILENAME varchar(512),
+ MIME_TYPE varchar(512),
DATA_SIZE bigint,
OBJECT_ID bigint not null,
primary key (OBJECT_ID)
diff --git a/ccm-cms/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_cms_schema.sql b/ccm-cms/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_cms_schema.sql
index b7d615029..625ef09a7 100644
--- a/ccm-cms/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_cms_schema.sql
+++ b/ccm-cms/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_cms_schema.sql
@@ -170,8 +170,8 @@ create schema CCM_CORE;
create table CCM_CMS.BINARY_ASSETS (
ASSET_DATA oid,
- FILENAME varchar(512) not null,
- MIME_TYPE varchar(512) not null,
+ FILENAME varchar(512),
+ MIME_TYPE varchar(512),
DATA_SIZE int8,
OBJECT_ID int8 not null,
primary key (OBJECT_ID)