You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by er...@apache.org on 2013/08/08 20:57:05 UTC
svn commit: r1511948 - in /rave/trunk:
rave-components/rave-core-api/src/main/java/org/apache/rave/rest/
rave-components/rave-core/src/main/java/org/apache/rave/portal/service/
rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl...
Author: erinnp
Date: Thu Aug 8 18:57:05 2013
New Revision: 1511948
URL: http://svn.apache.org/r1511948
Log:
Add page memebers resource
Added:
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PageUsersResource.java
- copied, changed from r1509789, rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageUsersResource.java
- copied, changed from r1510718, rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java
Modified:
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml
Copied: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PageUsersResource.java (from r1509789, rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java)
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PageUsersResource.java?p2=rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PageUsersResource.java&p1=rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java&r1=1509789&r2=1511948&rev=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PageUsersResource.java Thu Aug 8 18:57:05 2013
@@ -19,17 +19,14 @@
package org.apache.rave.rest;
+import org.apache.rave.rest.model.PageUser;
import org.apache.rave.rest.model.Region;
import org.apache.rave.rest.model.SearchResult;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
-public interface RegionsResource {
-
- /*
- --- Region Operations
- */
+public interface PageUsersResource {
/**
* Returns the regions associated with a page
@@ -39,66 +36,53 @@ public interface RegionsResource {
@GET
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
- SearchResult<Region> getPageRegions();
+ SearchResult<PageUser> getPageUsers();
/**
* Creates a new page region
*
- * @param region the definition of the region
+ * @param user the new page user definition
* @return
*/
@POST
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- Region createPageRegion( Region region);
+ PageUser createPageUser(PageUser user);
/**
* Returns a particular region associated with a page
*
- * @param regionId the region id
+ * @param userId the page user's id
* @return
*/
@GET
- @Path("/{regionId}")
+ @Path("/{userId}")
@Produces(MediaType.APPLICATION_JSON)
- Region getPageRegion( @PathParam("regionId") String regionId);
+ PageUser getPageUser(@PathParam("userId") String userId);
/**
* Update a page region
*
- * @param regionId the region id
- * @param region the new region definition
+ * @param userId the page user's id
+ * @param user the new page user definition
* @return
*/
@PUT
- @Path("/{regionId}")
+ @Path("/{userId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- Region updatePageRegion( @PathParam("regionId") String regionId, Region region);
+ PageUser updatePageUser(@PathParam("userId") String userId, PageUser user);
/**
* Deletes a page region
*
- * @param regionId the region id
+ * @param userId the page user's id
* @return
*/
@DELETE
- @Path("/{regionId}")
+ @Path("/{userId}")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- Region deletePageRegion( @PathParam("regionId") String regionId);
-
- /*
- --- RegionWidget Operations
- */
-
- /**
- * Delegates to the RegionWidgetsResource sub-resource
- *
- * @param regionId the region id
- * @return
- */
- @Path("/{regionId}/regionWidgets")
- RegionWidgetsResource getRegionWidgetsResource( @PathParam("regionId") String regionId);
+ PageUser deletePageUser(@PathParam("userId") String userId);
}
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java Thu Aug 8 18:57:05 2013
@@ -109,4 +109,13 @@ public interface PagesResource {
*/
@Path("/{pageId}/regions")
RegionsResource getRegionsResource(@PathParam("pageId") String pageId);
+
+ /**
+ * Delegates to the RegionsResource sub-resource.
+ *
+ * @param pageId the page id
+ * @return
+ */
+ @Path("/{pageId}/members")
+ PageUsersResource getPageMembersResource(@PathParam("pageId") String pageId);
}
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java Thu Aug 8 18:57:05 2013
@@ -280,6 +280,16 @@ public interface PageService {
Boolean updateSharedPageStatus(String pageId, String shareStatus);
/**
+ * Allows a user to accept or decline a page share
+ *
+ * @param pageId - the id of the page in question
+ * @param shareStatus - a string value defined in PageStatus
+ * @return
+ */
+ @PreAuthorize("hasPermission(#pageId, 'org.apache.rave.model.Page', 'read')")
+ Boolean updateSharedPageStatus(String pageId, String userId, String shareStatus);
+
+ /**
* Update a user who has shared access to a given page, so that they can edit the page (true)
* or can only view it (false)
*
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Thu Aug 8 18:57:05 2013
@@ -429,6 +429,22 @@ public class DefaultPageService implemen
@Override
@Transactional
+ public Boolean updateSharedPageStatus(String pageId, String userId, String shareStatus) {
+ Page page = this.getPage(pageId);
+ for(PageUser pageUser : page.getMembers()){
+ if(pageUser.getUserId().equals(userId)){
+ pageUser.setPageStatus(PageInvitationStatus.get(shareStatus));
+ }
+ }
+ if(pageRepository.save(page) != null){
+ return Boolean.TRUE;
+ }else{
+ return Boolean.FALSE;
+ }
+ }
+
+ @Override
+ @Transactional
public Boolean updatePageEditingStatus(String pageId, String userId, boolean isEditor) {
Page page = this.getPage(pageId);
for(PageUser pageUser : page.getMembers()){
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java Thu Aug 8 18:57:05 2013
@@ -20,6 +20,7 @@
package org.apache.rave.rest.impl;
+import org.apache.rave.rest.PageUsersResource;
import org.apache.rave.rest.exception.ResourceNotFoundException;
import org.apache.rave.model.PageType;
import org.apache.rave.portal.service.PageService;
@@ -31,6 +32,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
+import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;
@@ -41,6 +43,7 @@ public class DefaultPageResource impleme
private PageService pageService;
private DefaultRegionsResource regionsResouce;
+ private DefaultPageUsersResource pageUsersResource;
@Override
public SearchResult<Page> getPages() {
@@ -123,6 +126,14 @@ public class DefaultPageResource impleme
return regionsResouce;
}
+ @Override
+ public PageUsersResource getPageMembersResource(String pageId) {
+ Page page = getPage(pageId);
+ pageUsersResource.setPage(page);
+
+ return pageUsersResource;
+ }
+
@Inject
public void setPageService(PageService pageService) {
this.pageService = pageService;
@@ -132,4 +143,9 @@ public class DefaultPageResource impleme
public void setRegionsResouce(DefaultRegionsResource regionsResouce) {
this.regionsResouce = regionsResouce;
}
+
+ @Inject
+ public void setPageUsersResource(DefaultPageUsersResource pageUsersResource) {
+ this.pageUsersResource = pageUsersResource;
+ }
}
Copied: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageUsersResource.java (from r1510718, rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java)
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageUsersResource.java?p2=rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageUsersResource.java&p1=rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java&r1=1510718&r2=1511948&rev=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageUsersResource.java Thu Aug 8 18:57:05 2013
@@ -20,82 +20,94 @@
package org.apache.rave.rest.impl;
-import org.apache.rave.rest.exception.BadRequestException;
-import org.apache.rave.rest.exception.ResourceNotFoundException;
+import org.apache.rave.portal.service.PageService;
+import org.apache.rave.rest.PageUsersResource;
import org.apache.rave.rest.RegionWidgetsResource;
import org.apache.rave.rest.RegionsResource;
+import org.apache.rave.rest.exception.BadRequestException;
+import org.apache.rave.rest.exception.ResourceNotFoundException;
import org.apache.rave.rest.model.Page;
+import org.apache.rave.rest.model.PageUser;
import org.apache.rave.rest.model.Region;
import org.apache.rave.rest.model.SearchResult;
import javax.inject.Inject;
+import javax.ws.rs.PathParam;
import java.util.List;
-public class DefaultRegionsResource implements RegionsResource {
+public class DefaultPageUsersResource implements PageUsersResource {
private Page page;
-
- private DefaultRegionWidgetsResource regionWidgetsResource;
+ private PageService pageService;
public void setPage(Page page) {
this.page = page;
}
@Override
- public SearchResult<Region> getPageRegions() {
- List<Region> regions = page.getRegions();
- SearchResult<Region> results = new SearchResult<Region>(regions, regions.size());
+ public SearchResult<PageUser> getPageUsers() {
+ List<PageUser> members = page.getMembers();
+ SearchResult<PageUser> result = new SearchResult<PageUser>(members, members.size());
- return results;
+ return result;
}
@Override
- public Region createPageRegion(Region region) {
- throw new BadRequestException("Direct manipulation of Regions is not allowed. " +
- "Too add or delete page regions, edit a page's pageLayoutCode property.");
+ public PageUser createPageUser(PageUser user) {
+ if (user.getPersonId() == null) {
+ throw new BadRequestException("Page user personId property must be defined.");
+ }
+ pageService.addMemberToPage(page.getId(), user.getPersonId());
+ pageService.updatePageEditingStatus(page.getId(), user.getPersonId(), user.isEditor());
+ return null; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
- public Region getPageRegion(String regionId) {
- List<Region> regions = page.getRegions();
- Region match = null;
- for(Region region: regions) {
- if(region.getId().equals(regionId)) {
- match = region;
+ public PageUser getPageUser(String userId) {
+ List<PageUser> members = page.getMembers();
+ PageUser match = null;
+ for (PageUser user : members) {
+ if (user.getPersonId().equals(userId)) {
+ match = user;
break;
}
}
- if(match == null) {
- throw new ResourceNotFoundException(regionId);
+ if (match == null) {
+ throw new ResourceNotFoundException(userId);
}
return match;
}
@Override
- public Region updatePageRegion(String regionId, Region region) {
- throw new BadRequestException("Direct manipulation of Regions is not allowed. " +
- "Too add or delete page regions, edit a page's pageLayoutCode property.");
- }
+ public PageUser updatePageUser(String userId, PageUser user) {
+ PageUser oldUser = getPageUser(userId);
- @Override
- public Region deletePageRegion(String regionId) {
- throw new BadRequestException("Direct manipulation of Regions is not allowed. " +
- "Too add or delete page regions, edit a page's pageLayoutCode property.");
+ if (user.getPersonId() == null) {
+ throw new BadRequestException("Page user status property must be defined.");
+ }
+
+ if(oldUser.isEditor() != user.isEditor()) {
+ pageService.updatePageEditingStatus(page.getId(), userId, user.isEditor());
+ }
+ if(!oldUser.getStatus().equals(user.getStatus())) {
+ pageService.updateSharedPageStatus(page.getId(), userId, user.getStatus());
+ }
+
+ return user;
}
@Override
- public RegionWidgetsResource getRegionWidgetsResource(String regionId) {
- Region region = getPageRegion(regionId);
- regionWidgetsResource.setPage(page);
- regionWidgetsResource.setRegion(region);
+ public PageUser deletePageUser(String userId) {
+ PageUser user = getPageUser(userId);
- return regionWidgetsResource;
+ pageService.removeMemberFromPage(page.getId(), user.getPersonId());
+ return null;
}
@Inject
- public void setRegionWidgetsResource(DefaultRegionWidgetsResource regionWidgetsResource) {
- this.regionWidgetsResource = regionWidgetsResource;
+ public void setPageService(PageService pageService) {
+ this.pageService = pageService;
}
}
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java Thu Aug 8 18:57:05 2013
@@ -31,8 +31,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
import java.util.List;
public class DefaultRegionWidgetsResource implements RegionWidgetsResource {
Modified: rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml?rev=1511948&r1=1511947&r2=1511948&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml (original)
+++ rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml Thu Aug 8 18:57:05 2013
@@ -75,6 +75,7 @@
<bean id="pagesBean" class="org.apache.rave.rest.impl.DefaultPageResource" autowire="byType" />
<bean id="regionsBean" class="org.apache.rave.rest.impl.DefaultRegionsResource" autowire="byType" />
<bean id="regionWidgetsBean" class="org.apache.rave.rest.impl.DefaultRegionWidgetsResource" autowire="byType" />
+ <bean id="pageUsersResource" class="org.apache.rave.rest.impl.DefaultPageUsersResource" autowire="byType" />
<bean id="pagesForRenderBean" class="org.apache.rave.rest.impl.DefaultPageForRenderResource" autowire="byType" />
<bean id="JsonWrapperResponseFilter" class="org.apache.rave.rest.filters.JsonWrapperResponseFilter"/>