CCM NG: ContentSectionManager now passes all tests

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4204 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-07-21 14:15:36 +00:00
parent 45501fedb8
commit fb35554553
13 changed files with 243 additions and 2757 deletions

View File

@ -41,6 +41,8 @@ import javax.persistence.Table;
import org.libreccm.web.ApplicationType;
import java.util.ArrayList;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@ -52,11 +54,17 @@ import static org.librecms.CmsConstants.*;
*/
@Entity
@Table(name = "CONTENT_SECTIONS", schema = DB_SCHEMA)
@NamedQueries(
@NamedQueries({
@NamedQuery(
name = "ContentSection.findByLabel",
query = "SELECT s FROM ContentSection s WHERE s.label = :label")
)
query = "SELECT s FROM ContentSection s WHERE s.label = :label"),
@NamedQuery(
name = "ContentSection.findPermissions",
query = "SELECT p FROM Permission p "
+ "WHERE (p.object = :section "
+ " OR p.object = :rootDocumentsFolder) "
+ "AND p.grantee = :role")
})
@ApplicationType(
name = CONTENT_SECTION_APP_TYPE,
descBundle = "org.librecms.contentsection.ContentSectionResources",
@ -113,6 +121,10 @@ public class ContentSection extends CcmApplication implements Serializable {
@Column(name = "DEFAULT_LOCALE")
private Locale defaultLocale;
public ContentSection() {
roles = new ArrayList<>();
}
public String getLabel() {
return label;
}
@ -182,7 +194,20 @@ public class ContentSection extends CcmApplication implements Serializable {
}
protected void removeRole(final Role role) {
roles.remove(role);
int index = -1;
for (int i = 0; i < roles.size(); i++) {
if (roles.get(i).getName().equals(role.getName())) {
index = i;
}
}
if (index == -1) {
//Role not part of ContentSection
return;
}
roles.remove(index);
}
public Locale getDefaultLocale() {

View File

@ -18,18 +18,28 @@
*/
package org.librecms.contentsection;
import com.arsdigita.kernel.KernelConfig;
import org.libreccm.categorization.Category;
import org.libreccm.categorization.CategoryRepository;
import org.libreccm.configuration.ConfigurationManager;
import org.libreccm.core.CoreConstants;
import org.libreccm.security.AuthorizationRequired;
import org.libreccm.security.Permission;
import org.libreccm.security.PermissionManager;
import org.libreccm.security.RequiresPrivilege;
import org.libreccm.security.Role;
import org.libreccm.security.RoleManager;
import org.libreccm.security.RoleRepository;
import java.util.List;
import java.util.Locale;
import java.util.UUID;
import java.util.stream.Stream;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.transaction.Transactional;
import static org.librecms.CmsConstants.*;
@ -43,6 +53,9 @@ import static org.librecms.contentsection.ContentSection.*;
@RequestScoped
public class ContentSectionManager {
@Inject
private EntityManager entityManager;
@Inject
private ContentSectionRepository sectionRepo;
@ -52,12 +65,14 @@ public class ContentSectionManager {
@Inject
private RoleRepository roleRepo;
@Inject
private RoleManager roleManager;
// @Inject
// private RoleManager roleManager;
@Inject
private PermissionManager permissionManager;
@Inject
private ConfigurationManager confManager;
/**
* Creates a new content section including the default roles.
*
@ -74,14 +89,33 @@ public class ContentSectionManager {
"The name of a ContentSection can't be blank.");
}
final KernelConfig kernelConfig = confManager.findConfiguration(
KernelConfig.class);
final Locale defautLocale
= new Locale(kernelConfig.getDefaultLanguage());
final ContentSection section = new ContentSection();
section.setLabel(name);
section.setDisplayName(name);
section.setPrimaryUrl(name);
section.getTitle().addValue(defautLocale, name);
final Category rootFolder = new Category();
rootFolder.setName(String.format("%s_root", name));
rootFolder.getTitle().addValue(defautLocale, rootFolder.getName());
rootFolder.setDisplayName(rootFolder.getName());
rootFolder.setUuid(UUID.randomUUID().toString());
rootFolder.setUniqueId(rootFolder.getUuid());
rootFolder.setCategoryOrder(1L);
final Category rootAssetFolder = new Category();
rootFolder.setName(String.format("%s_assets", name));
rootAssetFolder.setName(String.format("%s_assets", name));
rootAssetFolder.getTitle().addValue(defautLocale,
rootAssetFolder.getName());
rootAssetFolder.setDisplayName(rootAssetFolder.getName());
rootAssetFolder.setUuid(UUID.randomUUID().toString());
rootAssetFolder.setUniqueId(rootAssetFolder.getUuid());
rootAssetFolder.setCategoryOrder(1L);
section.setRootDocumentFolder(rootFolder);
section.setRootAssetsFolder(rootAssetFolder);
@ -109,7 +143,7 @@ public class ContentSectionManager {
PRIVILEGE_ITEMS_VIEW_PUBLISHED,
PRIVILEGE_ITEMS_PREVIEW);
addRoleToContentSection(section,
MANAGER, name,
MANAGER,
PRIVILEGE_ADMINISTER_ROLES,
PRIVILEGE_ADMINISTER_WORKFLOW,
PRIVILEGE_ADMINISTER_LIFECYLES,
@ -124,7 +158,7 @@ public class ContentSectionManager {
PRIVILEGE_ITEMS_VIEW_PUBLISHED,
PRIVILEGE_ITEMS_PREVIEW);
addRoleToContentSection(section,
PUBLISHER, name,
PUBLISHER,
PRIVILEGE_ITEMS_CATEGORIZE,
PRIVILEGE_ITEMS_CREATE_NEW,
PRIVILEGE_ITEMS_EDIT,
@ -134,7 +168,7 @@ public class ContentSectionManager {
PRIVILEGE_ITEMS_VIEW_PUBLISHED,
PRIVILEGE_ITEMS_PREVIEW);
addRoleToContentSection(section,
CONTENT_READER, name,
CONTENT_READER,
PRIVILEGE_ITEMS_VIEW_PUBLISHED);
return section;
@ -142,7 +176,9 @@ public class ContentSectionManager {
/**
* Renames a content section and all roles associated with it (roles
* starting with the name of the content section).
* starting with the name of the content section). Note that you have to
* rename the localised titles of the content section and the root folders
* manually
*
* @param section The section to rename.
*
@ -156,6 +192,8 @@ public class ContentSectionManager {
final String oldName = section.getLabel();
section.setLabel(name);
section.setDisplayName(name);
section.setPrimaryUrl(name);
section.getRoles().forEach(r -> renameSectionRole(r, oldName, name));
}
@ -197,9 +235,28 @@ public class ContentSectionManager {
final ContentSection contentSection,
final Role role) {
if (contentSection == null) {
throw new IllegalArgumentException(
"Can't remove role from ContentSection null");
}
if (role == null) {
throw new IllegalArgumentException("Role to delete can't be null.");
}
contentSection.removeRole(role);
sectionRepo.save(contentSection);
roleRepo.delete(role);
final TypedQuery<Permission> query = entityManager
.createNamedQuery("ContentSection.findPermissions",
Permission.class);
query.setParameter("section", contentSection);
query.setParameter("rootDocumentsFolder",
contentSection.getRootDocumentsFolder());
query.setParameter("role", role);
final List<Permission> permissions = query.getResultList();
permissions.forEach(p -> entityManager.remove(p));
}
@AuthorizationRequired

View File

@ -23,6 +23,8 @@ import org.libreccm.core.CoreConstants;
import org.libreccm.security.AuthorizationRequired;
import org.libreccm.security.RequiresPrivilege;
import java.util.UUID;
import javax.enterprise.context.RequestScoped;
import javax.persistence.TypedQuery;
import javax.transaction.Transactional;
@ -64,6 +66,11 @@ public class ContentSectionRepository
@Transactional(Transactional.TxType.REQUIRED)
@Override
public void save(final ContentSection section) {
if(isNew(section)) {
section.setUuid(UUID.randomUUID().toString());
section.setApplicationType(ContentSection.class.getName());
}
super.save(section);
}

View File

@ -18,6 +18,8 @@
*/
package org.librecms.contentsection;
import com.arsdigita.kernel.KernelConfig;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
@ -41,6 +43,8 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.libreccm.categorization.CategoryRepository;
import org.libreccm.configuration.ConfigurationManager;
import org.libreccm.security.Role;
import org.libreccm.security.RoleRepository;
import org.libreccm.tests.categories.IntegrationTest;
@ -48,6 +52,7 @@ import org.libreccm.tests.categories.IntegrationTest;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.stream.IntStream;
import javax.inject.Inject;
@ -76,6 +81,12 @@ public class ContentSectionManagerTest {
@Inject
private RoleRepository roleRepository;
@Inject
private ConfigurationManager confManager;
@Inject
private CategoryRepository categoryRepo;
public ContentSectionManagerTest() {
}
@ -197,7 +208,17 @@ public class ContentSectionManagerTest {
@ShouldMatchDataSet(
value = "datasets/org/librecms/contentsection/"
+ "ContentSectionManagerTest/after-create.xml",
excludeColumns = {"object_id"})
excludeColumns = {"object_id",
"root_assets_folder_id",
"root_documents_folder_id",
"permission_id",
"role_id",
"grantee_id",
"unique_id",
"uuid",
"created",
"section_id",
"creation_date"})
@InSequence(100)
public void createSection() {
manager.createContentSection("test");
@ -215,6 +236,27 @@ public class ContentSectionManagerTest {
final ContentSection section = repository.findByLabel("info");
manager.renameContentSection(section, "content");
final KernelConfig kernelConfig = confManager.findConfiguration(
KernelConfig.class);
final Locale defaultLocale = new Locale(kernelConfig
.getDefaultLanguage());
section.getTitle().addValue(defaultLocale, "content");
repository.save(section);
section.getRootDocumentsFolder().setName("content_root");
section.getRootDocumentsFolder().setDisplayName("content_root");
section.getRootDocumentsFolder().getTitle().addValue(
defaultLocale, "content_root");
section.getRootAssetsFolder().setName("content_assets");
section.getRootAssetsFolder().setDisplayName("content_assets");
section.getRootAssetsFolder().getTitle().addValue(
defaultLocale, "content_assets");
categoryRepo.save(section.getRootDocumentsFolder());
categoryRepo.save(section.getRootAssetsFolder());
}
@Test
@ -223,7 +265,11 @@ public class ContentSectionManagerTest {
@ShouldMatchDataSet(
value = "datasets/org/librecms/contentsection/"
+ "ContentSectionManagerTest/after-add-role.xml",
excludeColumns = {"object_id"})
excludeColumns = {"object_id",
"role_id",
"permission_id",
"creation_date",
"grantee_id"})
@InSequence(300)
public void addRole() {
final ContentSection section = repository.findByLabel("info");

View File

@ -1,5 +1,5 @@
DROP SCHEMA IF EXISTS ccm_shortcuts;
DROP SCHEMA IF EXISTS ccm_cms;
DROP SCHEMA IF EXISTS ccm_core;
DROP SEQUENCE IF EXISTS hibernate_sequence;

File diff suppressed because it is too large Load Diff

View File

@ -16,13 +16,15 @@
name="info_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="info_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
@ -37,9 +39,9 @@
locale="en"
localized_value="info" />
<ccm_core.resource_descriptions object_id="-1100"
<!--<ccm_core.resource_descriptions object_id="-1100"
locale="en"
localized_value="Initial content section" />
localized_value="Initial content section" />-->
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
@ -126,7 +128,7 @@
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
@ -161,7 +163,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -191,7 +193,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -231,7 +233,7 @@
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4560"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>

View File

@ -25,25 +25,29 @@
name="info_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="info_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2300"
unique_id="1c423126-1e45-4fd9-9690-35d85d535e75"
name="info_root"
name="test_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2400"
unique_id="b393da77-df18-4eef-aa58-1f11599d82d0"
name="info_assets"
name="test_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
@ -70,12 +74,12 @@
locale="en"
localized_value="test" />
<ccm_core.resource_descriptions object_id="-1100"
<!--<ccm_core.resource_descriptions object_id="-1100"
locale="en"
localized_value="Initial content section" />
<ccm_core.resource_descriptions object_id="-1200"
locale="en"
localized_value="Test content section" />
localized_value="Test content section" />-->
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
@ -189,7 +193,7 @@
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
@ -224,7 +228,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -255,7 +259,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -295,7 +299,7 @@
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4560"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
@ -360,7 +364,7 @@
grantee_id="-33000"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-42500"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2300"
grantee_id="-33000"
creation_date="2016-07-15"/>
@ -395,7 +399,7 @@
grantee_id="-34000"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-43500"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-1200"
grantee_id="-34000"
creation_date="2016-07-15"/>
@ -425,7 +429,7 @@
grantee_id="-34000"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-44100"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2300"
grantee_id="-34000"
creation_date="2016-07-15"/>
@ -465,7 +469,7 @@
grantee_id="-35000"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-45600"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2300"
grantee_id="-35000"
creation_date="2016-07-15"/>

View File

@ -20,10 +20,10 @@
view_published_items, preview_items
info_editor: categorize_items, create_new_items,, edit_items, approve_items,
delete_items, view_published_items, preview_items
delete_itemss, view_published_items, preview_items
info_manager: administer_roles, administer_workflow, administer_lifecyles,
administer_categories, administer_content_items,
administer_categories, administer_content_types,
categorize_items, create_new_items, edit_items,
approve_items, publish_items, delete-items,
view_published_items, preview_items
@ -51,13 +51,15 @@
name="info_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="info_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
@ -72,9 +74,9 @@
locale="en"
localized_value="info" />
<ccm_core.resource_descriptions object_id="-1100"
<!--<ccm_core.resource_descriptions object_id="-1100"
locale="en"
localized_value="Initial content section" />
localized_value="Initial content section" />-->
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
@ -93,6 +95,8 @@
name="info_editor" />
<ccm_core.ccm_roles role_id="-3400"
name="info_manager" />
<ccm_core.ccm_roles role_id="-3500"
name="info_publisher" />
<ccm_core.ccm_roles role_id="-3600"
name="info_content_reader" />
@ -153,7 +157,7 @@
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
@ -188,7 +192,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -218,7 +222,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>

View File

@ -16,13 +16,15 @@
name="content_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="content_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
@ -37,9 +39,9 @@
locale="en"
localized_value="content" />
<ccm_core.resource_descriptions object_id="-1100"
<!--<ccm_core.resource_descriptions object_id="-1100"
locale="en"
localized_value="Initial content section" />
localized_value="Initial content section" />-->
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
@ -122,7 +124,7 @@
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
@ -157,7 +159,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -187,7 +189,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -227,7 +229,7 @@
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4560"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>

View File

@ -20,10 +20,10 @@
view_published_items, preview_items
info_editor: categorize_items, create_new_items,, edit_items, approve_items,
delete_items, view_published_items, preview_items
delete_itemss, view_published_items, preview_items
info_manager: administer_roles, administer_workflow, administer_lifecyles,
administer_categories, administer_content_items,
administer_categories, administer_content_types,
categorize_items, create_new_items, edit_items,
approve_items, publish_items, delete-items,
view_published_items, preview_items
@ -51,13 +51,15 @@
name="info_root"
enabled="true"
visible="true"
abstract_category="false" />
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="info_assets"
enabled="true"
visible="true"
abstract_category="false"/>
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
@ -72,9 +74,9 @@
locale="en"
localized_value="info" />
<ccm_core.resource_descriptions object_id="-1100"
<!--<ccm_core.resource_descriptions object_id="-1100"
locale="en"
localized_value="Initial content section" />
localized_value="Initial content section" />-->
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
@ -157,7 +159,7 @@
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
@ -192,7 +194,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_items"
granted_privilege="administer_content_types"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -222,7 +224,7 @@
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
@ -262,7 +264,7 @@
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4560"
granted_privilege="delete_item"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>

View File

@ -1,3 +1,5 @@
DELETE FROM ccm_cms.content_section_roles;
DELETE FROM ccm_cms.content_sections;
DELETE FROM ccm_core.settings_string_list;
@ -14,10 +16,18 @@ DELETE FROM ccm_core.categorizations;
DELETE FROM ccm_core.category_domains;
DELETE FROM ccm_core.category_titles;
DELETE FROM ccm_core.categories;
DELETE FROM ccm_core.permissions;
DELETE FROM ccm_core.applications;
DELETE FROM ccm_core.resource_titles;
DELETE FROM ccm_core.resources;
DELETE FROM ccm_core.ccm_objects;
DELETE FROM ccm_core.role_memberships;

View File

@ -24,6 +24,7 @@ import org.libreccm.l10n.LocalizedString;
import org.libreccm.web.CcmApplication;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -108,6 +109,12 @@ public class Resource extends CcmObject implements Serializable {
@ManyToOne
private Resource parent;
public Resource() {
title = new LocalizedString();
description = new LocalizedString();
childs = new ArrayList<>();
}
// @Column(name = "resource_type")
// private String resourceType;
public LocalizedString getTitle() {