From 6e6bed34681e36daf4f72103caf3b8922e34bc63 Mon Sep 17 00:00:00 2001 From: tosmers Date: Mon, 26 Sep 2016 18:15:51 +0000 Subject: [PATCH] [UPDATE] - bugfixes in conversion routine from trunk to ng git-svn-id: https://svn.libreccm.org/ccm/trunk@4325 8810af33-2d31-482b-a856-94f89814c4df --- .../kernel/permissions/Permission.java | 11 ++-- .../categorization/CategoryConversion.java | 5 +- .../core/security/PermissionConversion.java | 13 ++-- .../modules/core/categorization/Category.java | 64 +++++++++---------- .../modules/core/security/Permission.java | 8 ++- 5 files changed, 56 insertions(+), 45 deletions(-) diff --git a/ccm-core/src/com/arsdigita/kernel/permissions/Permission.java b/ccm-core/src/com/arsdigita/kernel/permissions/Permission.java index ee2b68db0..04fc24258 100755 --- a/ccm-core/src/com/arsdigita/kernel/permissions/Permission.java +++ b/ccm-core/src/com/arsdigita/kernel/permissions/Permission.java @@ -21,6 +21,7 @@ package com.arsdigita.kernel.permissions; import com.arsdigita.domain.DomainCollection; import com.arsdigita.kernel.Group; +import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.Session; import com.arsdigita.persistence.SessionManager; import com.arsdigita.web.Web; @@ -329,14 +330,12 @@ public class Permission extends DomainObject { List permissionList = new ArrayList<>(); final Session session = SessionManager.getSession(); - DomainCollection collection = new DomainCollection(session.retrieve( - Permission.BASE_DATA_OBJECT_TYPE)); + DataCollection collection = session.retrieve(Permission + .BASE_DATA_OBJECT_TYPE); while (collection.next()) { - Permission permission = (Permission) collection.getDomainObject(); - if (permission != null) { - permissionList.add(permission); - } + Permission permission = new Permission(collection.getDataObject()); + permissionList.add(permission); } collection.close(); diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java index 213af5bfa..babec1075 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/categorization/CategoryConversion.java @@ -98,7 +98,8 @@ public class CategoryConversion { categorizedObject); // set opposed associations - category.addObject(categorization); + //category.addObject(categorization); Todo + category.addObjectId(categorization.getCategorizationId()); categorizedObject.addCategory(categorization); } } @@ -135,7 +136,7 @@ public class CategoryConversion { //category.setParentCategory(parentCategory); //parentCategory.addSubCategory(category); - // to avoid infinite recursion + // to avoid infinite recursion Todo category.setParentCategoryId(parentCategory.getUniqueId()); parentCategory.addSubCategoryId(category.getUniqueId()); } diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java index 70202a3cb..7cc09bcf0 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/security/PermissionConversion.java @@ -86,10 +86,15 @@ public class PermissionConversion { } // set creationUser - User creationUser = NgCollection.users.get(trunkPermission - .getCreationUser().getID().longValue()); - if (creationUser != null) - permission.setCreationUser(creationUser); + com.arsdigita.kernel.User trunkCreationUser = trunkPermission + .getCreationUser(); + if (trunkCreationUser != null) { + User creationUser = NgCollection.users.get(trunkCreationUser + .getID().longValue()); + + if (creationUser != null) + permission.setCreationUser(creationUser); + } } } diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Category.java b/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Category.java index 46050fc41..6dfef2701 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Category.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/categorization/Category.java @@ -60,8 +60,9 @@ public class Category extends CcmObject { private Category parentCategory; private long categoryOrder; - // to avoid infinite recursion - private List subCategoriesId; + // to avoid infinite recursion Todo + private List objectIds; + private List subCategoryIds; private String parentCategoryId; @@ -71,28 +72,6 @@ public class Category extends CcmObject { this.uniqueId = trunkCategory.getID().toString(); this.name = trunkCategory.getName(); -// CategoryLocalizationCollection categoryLocalizationCollection = trunkCategory.getCategoryLocalizationCollection(); -// -// if (categoryLocalizationCollection != null && categoryLocalizationCollection.next()) { -// -// CategoryLocalization categoryLocalization = categoryLocalizationCollection.getCategoryLocalization(); -// -// if (categoryLocalization != null) { -// -// String strLocale = categoryLocalization.getLocale(); -// String name = categoryLocalization.getName(); -// String description = categoryLocalization.getDescription(); -// -// if (strLocale != null) { -// Locale locale = new Locale(strLocale); -// if (name != null) -// this.title.addValue(locale, name); -// if (description != null) -// this.description.addValue(locale, description); -// } -// } -// } - CategoryLocalizationCollection categoryLocalizationCollection = trunkCategory.getCategoryLocalizationCollection(); @@ -127,8 +106,12 @@ public class Category extends CcmObject { ? defaultParent.getNumberOfChildCategories() + 1 : 0; - // to avoid infinite recursion - this.subCategoriesId = new ArrayList<>(); + + // to avoid infinite recursion Todo + this.objectIds = new ArrayList<>(); + this.subCategoryIds = new ArrayList<>(); + //this.parantCategoryId + NgCollection.categories.put(this.getObjectId(), this); } @@ -244,20 +227,37 @@ public class Category extends CcmObject { } - public List getSubCategoriesId() { - return subCategoriesId; + + public List getObjectIds() { + return objectIds; } - public void setSubCategoriesId(final List subCategoriesId) { - this.subCategoriesId = subCategoriesId; + public void setObjectIds(final List objectIds) { + this.objectIds = objectIds; + } + + public void addObjectId(final long object) { + this.objectIds.add(object); + } + + public void removeObjectId(final long object) { + this.objectIds.remove(object); + } + + public List getSubCategoryIds() { + return subCategoryIds; + } + + public void setSubCategoryIds(final List subCategoryIds) { + this.subCategoryIds = subCategoryIds; } public void addSubCategoryId(final String subCategoryId) { - this.subCategoriesId.add(subCategoryId); + this.subCategoryIds.add(subCategoryId); } public void removeSubCategoryId(final String subCategoryId) { - this.subCategoriesId.remove(subCategoryId); + this.subCategoryIds.remove(subCategoryId); } public String getParentCategoryId() { diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java b/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java index b9d7fb65d..372860ccd 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/security/Permission.java @@ -42,7 +42,7 @@ public class Permission implements Identifiable { private String creationIp; public Permission(final com.arsdigita.kernel.permissions.Permission trunkPermission) { - this.permissionId = trunkPermission.getID().longValue(); + this.permissionId = NgCollection.permissions.size() + 1; this.grantedPrivilege = trunkPermission.getPrivilege().getName(); //this.object; @@ -55,6 +55,12 @@ public class Permission implements Identifiable { NgCollection.permissions.put(this.permissionId, this); } + /** + * Constructor to copy a given Permission. Needed for purposes of + * creating permissions for multiple grantees from the trunk object. + * + * @param ngPermission The Permission to be copied. + */ public Permission(final Permission ngPermission) { this.permissionId = NgCollection.permissions.size() + 1; this.grantedPrivilege = ngPermission.getGrantedPrivilege();