You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ps...@apache.org on 2012/12/05 15:11:41 UTC

svn commit: r1417432 - /rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java

Author: psharples
Date: Wed Dec  5 14:11:40 2012
New Revision: 1417432

URL: http://svn.apache.org/viewvc?rev=1417432&view=rev
Log:
Added checks to make sure that pages to be deleted are owned by the user, if not then only remove the pageUser reference. See RAVE-859. 

Modified:
    rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java

Modified: rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=1417432&r1=1417431&r2=1417432&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java (original)
+++ rave/trunk/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/repository/impl/JpaPageRepository.java Wed Dec  5 14:11:40 2012
@@ -86,7 +86,23 @@ public class JpaPageRepository implement
         List<Page> pages = getAllPages(userId, pageType);
         int pageCount = pages.size();
         for(Page page : pages) {
-            delete(page);
+            if(page.getOwnerId().equals(userId)){
+                delete(page);
+            }else{
+                // remove any pageUser entries for this user on 
+                // this page as it is a shared page
+                PageUser pageUserToRemove = null;
+                for(PageUser pageUser : page.getMembers()){
+                    if(pageUser.getUserId().equals(userId)){
+                        pageUserToRemove = pageUser;
+                        break;
+                    }
+                }
+                if(pageUserToRemove != null){
+                    page.getMembers().remove(pageUserToRemove);
+                    save(page);
+                }
+            }
         }
         return pageCount;
     }