mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-21 18:09:20 +00:00
Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)
64416: Merged WAT1 (4.3/Cloud) to HEAD-BUG-FIX (4.3/Cloud) 61735: ACE-493: Made Sites Public REST API Get method callable by Admins or by users that are made members of the new "Site Admin" group. ACE-503: Created a new PUT method in Sites Public REST API, such that it is possible to modify the visibility of a site. ACE-511: Created a new DELETE method in Sites Public REST API, such that it is possible to delete a site. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@64562 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.alfresco.rest.api;
|
package org.alfresco.rest.api;
|
||||||
|
|
||||||
import org.alfresco.query.PagingResults;
|
import org.alfresco.query.PagingResults;
|
||||||
@@ -23,6 +24,7 @@ import org.alfresco.rest.api.model.FavouriteSite;
|
|||||||
import org.alfresco.rest.api.model.MemberOfSite;
|
import org.alfresco.rest.api.model.MemberOfSite;
|
||||||
import org.alfresco.rest.api.model.Site;
|
import org.alfresco.rest.api.model.Site;
|
||||||
import org.alfresco.rest.api.model.SiteContainer;
|
import org.alfresco.rest.api.model.SiteContainer;
|
||||||
|
import org.alfresco.rest.api.model.SiteImpl;
|
||||||
import org.alfresco.rest.api.model.SiteMember;
|
import org.alfresco.rest.api.model.SiteMember;
|
||||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||||
import org.alfresco.rest.framework.resource.parameters.Paging;
|
import org.alfresco.rest.framework.resource.parameters.Paging;
|
||||||
@@ -33,32 +35,52 @@ import org.alfresco.service.cmr.site.SiteRole;
|
|||||||
|
|
||||||
public interface Sites
|
public interface Sites
|
||||||
{
|
{
|
||||||
SiteInfo validateSite(String siteShortName);
|
SiteInfo validateSite(String siteShortName);
|
||||||
SiteInfo validateSite(NodeRef nodeRef);
|
|
||||||
|
SiteInfo validateSite(NodeRef nodeRef);
|
||||||
|
|
||||||
CollectionWithPagingInfo<SiteMember> getSiteMembers(String siteShortName, Parameters parameters);
|
CollectionWithPagingInfo<SiteMember> getSiteMembers(String siteShortName, Parameters parameters);
|
||||||
|
|
||||||
Site getSite(String siteId);
|
Site getSite(String siteId);
|
||||||
|
|
||||||
/**
|
SiteImpl updateSite(String siteShortName, SiteImpl site);
|
||||||
* people/<personId>/sites/<siteId>
|
|
||||||
*
|
void deleteSite(String siteShortName);
|
||||||
* @param siteId
|
|
||||||
* @param personId
|
/**
|
||||||
* @return
|
* people/<personId>/sites/<siteId>
|
||||||
*/
|
*
|
||||||
MemberOfSite getMemberOfSite(String personId, String siteShortName);
|
* @param siteId
|
||||||
SiteMember getSiteMember(String personId, String siteShortName);
|
* @param personId
|
||||||
SiteMember addSiteMember(String siteShortName, SiteMember siteMember);
|
* @return
|
||||||
void removeSiteMember(String personId, String siteId);
|
*/
|
||||||
SiteMember updateSiteMember(String siteShortName, SiteMember siteMember);
|
MemberOfSite getMemberOfSite(String personId, String siteShortName);
|
||||||
CollectionWithPagingInfo<MemberOfSite> getSites(String personId, Parameters parameters);
|
|
||||||
SiteContainer getSiteContainer(String siteShortName, String containerId);
|
SiteMember getSiteMember(String personId, String siteShortName);
|
||||||
PagingResults<SiteContainer> getSiteContainers(String siteShortName, Paging paging);
|
|
||||||
CollectionWithPagingInfo<Site> getSites(Parameters parameters);
|
SiteMember addSiteMember(String siteShortName, SiteMember siteMember);
|
||||||
|
|
||||||
|
void removeSiteMember(String personId, String siteId);
|
||||||
|
|
||||||
|
SiteMember updateSiteMember(String siteShortName, SiteMember siteMember);
|
||||||
|
|
||||||
|
CollectionWithPagingInfo<MemberOfSite> getSites(String personId, Parameters parameters);
|
||||||
|
|
||||||
|
SiteContainer getSiteContainer(String siteShortName, String containerId);
|
||||||
|
|
||||||
|
PagingResults<SiteContainer> getSiteContainers(String siteShortName, Paging paging);
|
||||||
|
|
||||||
|
CollectionWithPagingInfo<Site> getSites(Parameters parameters);
|
||||||
|
|
||||||
FavouriteSite getFavouriteSite(String personId, String siteShortName);
|
FavouriteSite getFavouriteSite(String personId, String siteShortName);
|
||||||
|
|
||||||
void addFavouriteSite(String personId, FavouriteSite favouriteSite);
|
void addFavouriteSite(String personId, FavouriteSite favouriteSite);
|
||||||
|
|
||||||
void removeFavouriteSite(String personId, String siteId);
|
void removeFavouriteSite(String personId, String siteId);
|
||||||
|
|
||||||
CollectionWithPagingInfo<FavouriteSite> getFavouriteSites(String personId, Parameters parameters);
|
CollectionWithPagingInfo<FavouriteSite> getFavouriteSites(String personId, Parameters parameters);
|
||||||
|
|
||||||
SiteRole getSiteRole(String siteId);
|
SiteRole getSiteRole(String siteId);
|
||||||
|
|
||||||
SiteRole getSiteRole(String siteId, String personId);
|
SiteRole getSiteRole(String siteId, String personId);
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -16,11 +16,15 @@
|
|||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.alfresco.rest.api.sites;
|
package org.alfresco.rest.api.sites;
|
||||||
|
|
||||||
import org.alfresco.rest.api.Sites;
|
import org.alfresco.rest.api.Sites;
|
||||||
import org.alfresco.rest.api.model.Site;
|
import org.alfresco.rest.api.model.Site;
|
||||||
|
import org.alfresco.rest.api.model.SiteImpl;
|
||||||
import org.alfresco.rest.framework.WebApiDescription;
|
import org.alfresco.rest.framework.WebApiDescription;
|
||||||
|
import org.alfresco.rest.framework.WebApiParam;
|
||||||
|
import org.alfresco.rest.framework.core.ResourceParameter.KIND;
|
||||||
import org.alfresco.rest.framework.resource.EntityResource;
|
import org.alfresco.rest.framework.resource.EntityResource;
|
||||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
||||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||||
@@ -30,21 +34,22 @@ import org.springframework.beans.factory.InitializingBean;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* An implementation of an Entity Resource for a Site
|
* An implementation of an Entity Resource for a Site
|
||||||
*
|
*
|
||||||
* @author Gethin James
|
* @author Gethin James
|
||||||
* @author steveglover
|
* @author steveglover
|
||||||
*/
|
*/
|
||||||
@EntityResource(name="sites", title = "Sites")
|
@EntityResource(name = "sites", title = "Sites")
|
||||||
public class SiteEntityResource implements EntityResourceAction.Read<Site>, EntityResourceAction.ReadById<Site>, InitializingBean
|
public class SiteEntityResource implements EntityResourceAction.Read<Site>, EntityResourceAction.ReadById<Site>,
|
||||||
|
EntityResourceAction.Delete, EntityResourceAction.Update<SiteImpl>, InitializingBean
|
||||||
{
|
{
|
||||||
private Sites sites;
|
private Sites sites;
|
||||||
|
|
||||||
public void setSites(Sites sites)
|
public void setSites(Sites sites)
|
||||||
{
|
{
|
||||||
this.sites = sites;
|
this.sites = sites;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterPropertiesSet()
|
public void afterPropertiesSet()
|
||||||
{
|
{
|
||||||
ParameterCheck.mandatory("sites", this.sites);
|
ParameterCheck.mandatory("sites", this.sites);
|
||||||
@@ -56,21 +61,44 @@ public class SiteEntityResource implements EntityResourceAction.Read<Site>, Enti
|
|||||||
* @see org.alfresco.rest.framework.resource.actions.interfaces.CollectionResourceAction.Get#get()
|
* @see org.alfresco.rest.framework.resource.actions.interfaces.CollectionResourceAction.Get#get()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@WebApiDescription(title="A paged list of visible sites in the network.", description="A site is visible if it is public or if the person is a member")
|
@WebApiDescription(title = "A paged list of visible sites in the network.", description = "A site is visible if it is public or if the person is a member")
|
||||||
|
@WebApiParam(name = "admin", title = "Admin", description = "An optional filter that when is set to true and the user has ‘site-admin’ permission, a paged list of all sites in the network will be returned.", kind = KIND.QUERY_STRING)
|
||||||
public CollectionWithPagingInfo<Site> readAll(Parameters parameters)
|
public CollectionWithPagingInfo<Site> readAll(Parameters parameters)
|
||||||
{
|
{
|
||||||
return sites.getSites(parameters);
|
return sites.getSites(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns information regarding the site 'siteId'.
|
* Returns information regarding the site 'siteId'.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@WebApiDescription(title="Returns site information for site siteId.")
|
@WebApiDescription(title = "Returns site information for site siteId.")
|
||||||
public Site readById(String siteId, Parameters parameters)
|
public Site readById(String siteId, Parameters parameters)
|
||||||
{
|
{
|
||||||
return sites.getSite(siteId);
|
return sites.getSite(siteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PUT sites/{@literal <siteId>}
|
||||||
|
* <p>
|
||||||
|
* Updates the <i>visibility</i> of the site.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@WebApiDescription(title = "Updates the visibility of the site.")
|
||||||
|
public SiteImpl update(String siteId, SiteImpl entity, Parameters parameters)
|
||||||
|
{
|
||||||
|
return sites.updateSite(siteId, entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete sites/{@literal <siteId>}
|
||||||
|
* <p>
|
||||||
|
* Deletes the site.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@WebApiDescription(title = "Deletes the site.")
|
||||||
|
public void delete(String siteId, Parameters parameters)
|
||||||
|
{
|
||||||
|
sites.deleteSite(siteId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -131,7 +131,8 @@ public class TestSites extends EnterpriseTestApi
|
|||||||
}
|
}
|
||||||
catch(PublicApiException e)
|
catch(PublicApiException e)
|
||||||
{
|
{
|
||||||
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
|
// ACE-511: as we added Delete method, the status code needed to be changed from 405 (Method Not Allowed) to 404.
|
||||||
|
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
// invalid site
|
// invalid site
|
||||||
|
Reference in New Issue
Block a user