Skip to content

Commit a86353f

Browse files
authored
dotCMS#32152 trying a defensive map to avoid to save the file assets contai… (dotCMS#32153)
trying a defensive map to avoid to save the file assets container or template in favor of contentlet
1 parent a045704 commit a86353f

File tree

6 files changed

+41
-4
lines changed

6 files changed

+41
-4
lines changed

dotCMS/src/main/java/com/dotmarketing/beans/Permission.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.dotmarketing.beans;
22

3+
import com.dotmarketing.portlets.containers.model.FileAssetContainer;
4+
import com.dotmarketing.portlets.contentlet.model.Contentlet;
5+
import com.dotmarketing.portlets.templates.model.FileAssetTemplate;
36
import com.fasterxml.jackson.annotation.JsonIgnore;
47
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
58
import com.fasterxml.jackson.annotation.JsonSetter;
@@ -173,6 +176,13 @@ public void setType ( String type ) {
173176
*/
174177
type = IHTMLPage.class.getCanonicalName();
175178
}
179+
180+
if ( type != null && (type.equals( FileAssetContainer.class.getCanonicalName())
181+
|| type.equals( FileAssetTemplate.class.getCanonicalName() )) ) {
182+
// file asset container/template are contentlets, so we have to map to contentlet
183+
type = Contentlet.class.getCanonicalName();
184+
}
185+
176186
this.type = type;
177187
}
178188

dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/FileAssetContainer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.dotmarketing.exception.DotSecurityException;
1111
import com.dotmarketing.portlets.contentlet.model.Contentlet;
1212
import com.dotmarketing.portlets.fileassets.business.FileAsset;
13+
import com.dotmarketing.portlets.templates.model.Template;
1314
import com.fasterxml.jackson.annotation.JsonIgnore;
1415
import io.vavr.control.Try;
1516

@@ -97,6 +98,12 @@ public void setContainerStructuresAssets(List<FileAsset> containerStructuresAsse
9798
this.containerStructuresAssets = containerStructuresAssets.stream().map(f->f.getInode()).filter(Objects::nonNull).collect(Collectors.toList());
9899
}
99100

101+
// we override it, in order to do the permissionable behind a contentlet object
102+
@Override
103+
public String getPermissionType() {
104+
return Contentlet.class.getCanonicalName();
105+
}
106+
100107
public void addMetaData(final String key, final Object value) {
101108

102109
this.metaDataMap.put (key, value);

dotCMS/src/main/java/com/dotmarketing/portlets/containers/model/SystemContainer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ public SystemContainer() {
4343
super.setMaxContentlets(DEFAULT_MAX_CONTENTS);
4444
}
4545

46+
// we override it, in order to do the permissionable behind a container object
47+
@Override
48+
public String getPermissionType() {
49+
return Container.class.getCanonicalName();
50+
}
51+
4652
@Override
4753
public void setIdentifier(String identifier) {
4854
Logger.debug(this, () -> "System Container ID cannot be overridden.");

dotCMS/src/main/java/com/dotmarketing/portlets/templates/model/FileAssetTemplate.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.dotmarketing.business.Versionable;
88
import com.dotmarketing.exception.DotDataException;
99
import com.dotmarketing.exception.DotSecurityException;
10+
import com.dotmarketing.portlets.contentlet.model.Contentlet;
1011
import com.dotmarketing.portlets.fileassets.business.FileAsset;
1112
import com.dotmarketing.portlets.templates.business.FileAssetTemplateUtil;
1213
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -41,6 +42,12 @@ public FileAssetTemplate() {
4142
this.metaDataMap = new HashMap<>();
4243
}
4344

45+
// we override it, in order to do the permissionable behind a contentlet object
46+
@Override
47+
public String getPermissionType() {
48+
return Contentlet.class.getCanonicalName();
49+
}
50+
4451
@JsonIgnore
4552
public FileAsset getBodyAsset() {
4653
return body;

dotCMS/src/main/java/com/dotmarketing/portlets/templates/model/SystemTemplate.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.dotmarketing.beans.Host;
55
import com.dotmarketing.business.APILocator;
66
import com.dotmarketing.business.Theme;
7+
import com.dotmarketing.portlets.containers.model.Container;
78
import com.dotmarketing.util.Logger;
89

910
import java.util.Date;
@@ -39,6 +40,12 @@ public SystemTemplate() {
3940
super.setDrawed(true);
4041
}
4142

43+
// we override it, in order to do the permissionable behind a template object
44+
@Override
45+
public String getPermissionType() {
46+
return Template.class.getCanonicalName();
47+
}
48+
4249
@Override
4350
public void setIdentifier(String identifier) {
4451
Logger.debug(this, () -> "System Template ID cannot be overridden.");

dotcms-postman/src/main/resources/postman/GraphQLTests.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"info": {
3-
"_postman_id": "c3b5b111-fcba-47b0-96d8-dc6415d12098",
3+
"_postman_id": "2a46e009-62aa-4844-883c-646ab8123846",
44
"name": "GraphQL",
55
"description": "This suite verifies that the GraphQL REST Endpoint is working as expected.\n\n[GraphQL](https://graphql.org/) is an open query language which allows you to perform real-type dynamic queries which specify exactly what data you want, and in what order. The dotCMS GraphQL content delivery API has a number of advantages over querying content via REST:\n\n- A single endpoint to query all content: `api/v1/graphql`.\n \n- Self documenting via schema introspection.\n \n- No over-fetching of data (e.g. unneeded fields).\n \n- No need for multiple requests to get combined data.\n \n- Client control over both the query and the data received.",
66
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
7-
"_exporter_id": "5403727"
7+
"_exporter_id": "781456"
88
},
99
"item": [
1010
{
@@ -2155,7 +2155,7 @@
21552155
" pm.expect(container1.parentPermissionable.hostName, 'FAILED:[container1.parentPermissionable.hostName]').equal(\"demo.dotcms.com\");",
21562156
" pm.expect(container1.path, 'FAILED:[container1.path]').equal(\"//demo.dotcms.com/application/containers/default/\");",
21572157
" pm.expect(container1.permissionId, 'FAILED:[container1.permissionId]').equal(\"69b3d24d-7e80-4be6-b04a-d352d16493ee\");",
2158-
" pm.expect(container1.permissionType, 'FAILED:[container1.permissionType]').equal(\"com.dotmarketing.portlets.containers.model.FileAssetContainer\");",
2158+
" pm.expect(container1.permissionType, 'FAILED:[container1.permissionType]').equal(\"com.dotmarketing.portlets.contentlet.model.Contentlet\");",
21592159
" pm.expect(container1.postLoop, 'FAILED:[container1.postLoop]').equal(\"#dotParse(\\\"//demo.dotcms.com/application/containers/default/postloop.vtl\\\")\");",
21602160
" pm.expect(container1.preLoop, 'FAILED:[container1.preLoop]').equal(\"#dotParse(\\\"//demo.dotcms.com/application/containers/default/preloop.vtl\\\")\");",
21612161
" pm.expect(container1.showOnMenu, 'FAILED:[container1.showOnMenu]').equal(false);",
@@ -2324,7 +2324,7 @@
23242324
" pm.expect(container1.parentPermissionable.hostName, 'FAILED:[container1.parentPermissionable.hostName]').equal(\"demo.dotcms.com\");",
23252325
" pm.expect(container1.path, 'FAILED:[container1.path]').equal(\"//demo.dotcms.com/application/containers/default/\");",
23262326
" pm.expect(container1.permissionId, 'FAILED:[container1.permissionId]').equal(\"69b3d24d-7e80-4be6-b04a-d352d16493ee\");",
2327-
" pm.expect(container1.permissionType, 'FAILED:[container1.permissionType]').equal(\"com.dotmarketing.portlets.containers.model.FileAssetContainer\");",
2327+
" pm.expect(container1.permissionType, 'FAILED:[container1.permissionType]').equal(\"com.dotmarketing.portlets.contentlet.model.Contentlet\");",
23282328
" pm.expect(container1.postLoop, 'FAILED:[container1.postLoop]').equal(\"#dotParse(\\\"//demo.dotcms.com/application/containers/default/postloop.vtl\\\")\");",
23292329
" pm.expect(container1.preLoop, 'FAILED:[container1.preLoop]').equal(\"#dotParse(\\\"//demo.dotcms.com/application/containers/default/preloop.vtl\\\")\");",
23302330
" pm.expect(container1.showOnMenu, 'FAILED:[container1.showOnMenu]').equal(false);",

0 commit comments

Comments
 (0)