user management method added
This commit is contained in:
parent
9732195398
commit
9de1e4ad59
|
@ -3,6 +3,7 @@ package org.gcube.common.storagehub.client.dsl;
|
|||
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
|
||||
import org.gcube.common.storagehub.client.proxies.GroupManagerClient;
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.client.proxies.UserManagerClient;
|
||||
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
@ -12,6 +13,7 @@ public class StorageHubClient {
|
|||
private WorkspaceManagerClient wsClient = AbstractPlugin.workspace().build();
|
||||
private ItemManagerClient itemclient = AbstractPlugin.item().build();
|
||||
private GroupManagerClient groupClient = AbstractPlugin.groups().build();
|
||||
private UserManagerClient userClient = AbstractPlugin.users().build();
|
||||
|
||||
public FolderContainer getWSRoot(){
|
||||
return new FolderContainer(itemclient, wsClient.getWorkspace());
|
||||
|
@ -63,4 +65,11 @@ public class StorageHubClient {
|
|||
return new GenericItemContainer(itemclient, wsClient.restoreFromTrash(itemId));
|
||||
}
|
||||
|
||||
public void createUserAccount(String userId) throws StorageHubException {
|
||||
userClient.createUser(userId);
|
||||
}
|
||||
|
||||
public void deleteUserAccount(String userId) throws StorageHubException {
|
||||
userClient.removeUser(userId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,8 @@ import java.util.List;
|
|||
|
||||
import org.gcube.common.storagehub.client.proxies.GroupManagerClient;
|
||||
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
|
||||
import org.gcube.common.storagehub.model.Excludes;
|
||||
import org.gcube.common.storagehub.model.acls.AccessType;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class VREFolderManager {
|
||||
|
||||
|
@ -34,9 +33,9 @@ public class VREFolderManager {
|
|||
return groupClient.getUsersOfGroup(vreTitle);
|
||||
}
|
||||
|
||||
private Item getVreFolder() {
|
||||
/*private Item getVreFolder() {
|
||||
return wsClient.getVreFolder(Excludes.ALL.toArray(new String[0]));
|
||||
}
|
||||
}*/
|
||||
|
||||
public void setAdmin(String userId) throws StorageHubException{
|
||||
groupClient.addAdmin(vreTitle, userId);
|
||||
|
@ -49,5 +48,13 @@ public class VREFolderManager {
|
|||
public List<String> getAdmins() throws StorageHubException{
|
||||
return groupClient.getAdmins(vreTitle);
|
||||
}
|
||||
|
||||
public void createVRE(AccessType accessType, String folderOwner) throws StorageHubException{
|
||||
groupClient.createGroup(vreTitle, accessType, folderOwner);
|
||||
}
|
||||
|
||||
public void removeVRE() throws StorageHubException{
|
||||
groupClient.removeGroup(vreTitle);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ import org.gcube.common.gxrest.response.inbound.GXInboundResponse;
|
|||
import org.gcube.common.storagehub.model.acls.AccessType;
|
||||
import org.gcube.common.storagehub.model.exceptions.BackendGenericError;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.exceptions.UserNotAuthorizedException;
|
||||
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
|
||||
|
||||
public class DefaultGroupManager implements GroupManagerClient {
|
||||
|
||||
|
@ -38,10 +40,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
@ -63,11 +68,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
GXWebTargetAdapterRequest myManager = manager;
|
||||
|
||||
GXInboundResponse response = myManager.path(groupId).path("users").path(userId).delete();
|
||||
|
||||
|
||||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
@ -97,10 +104,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return response.getSource().readEntity(List.class);
|
||||
}
|
||||
};
|
||||
|
@ -126,10 +136,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
@ -146,33 +159,42 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
}
|
||||
|
||||
@Override
|
||||
public void createGroup(String groupId, AccessType accessType) throws StorageHubException {
|
||||
public void createGroup(String groupId, AccessType accessType, String folderOwner) throws StorageHubException {
|
||||
Call<GXWebTargetAdapterRequest, Void> call = new Call<GXWebTargetAdapterRequest, Void>() {
|
||||
@Override
|
||||
public Void call(GXWebTargetAdapterRequest manager) throws Exception {
|
||||
GXWebTargetAdapterRequest myManager = manager;
|
||||
|
||||
MultivaluedMap<String, Object> formData = new MultivaluedHashMap<String, Object>();
|
||||
formData.add("group", groupId);
|
||||
formData.add("accessType", accessType);
|
||||
|
||||
GXInboundResponse response = myManager.post(Entity.entity(formData, MediaType.APPLICATION_FORM_URLENCODED));
|
||||
try (FormDataMultiPart multipart = new FormDataMultiPart()){
|
||||
multipart.field("accessType", accessType, MediaType.APPLICATION_JSON_TYPE);
|
||||
multipart.field("group", groupId);
|
||||
multipart.field("folderOwner", folderOwner);
|
||||
|
||||
|
||||
GXInboundResponse response = myManager.post(Entity.entity(multipart, MediaType.MULTIPART_FORM_DATA_TYPE));
|
||||
|
||||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
try {
|
||||
delegate.make(call);
|
||||
return;
|
||||
}catch(Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}catch(StorageHubException e) {
|
||||
throw e;
|
||||
}catch(Exception e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -189,18 +211,23 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return response.getSource().readEntity(List.class);
|
||||
}
|
||||
};
|
||||
try {
|
||||
List<String> users = delegate.make(call);
|
||||
return users;
|
||||
}catch(Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}catch(StorageHubException e) {
|
||||
throw e;
|
||||
}catch(Exception e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -221,18 +248,23 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
try {
|
||||
delegate.make(call);
|
||||
}catch(Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}catch(StorageHubException e) {
|
||||
throw e;
|
||||
}catch(Exception e1) {
|
||||
throw new RuntimeException(e1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -247,10 +279,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
@ -277,10 +312,13 @@ private final ProxyDelegate<GXWebTargetAdapterRequest> delegate;
|
|||
if (response.isErrorResponse()) {
|
||||
if (response.hasException())
|
||||
throw response.getException();
|
||||
else
|
||||
else if (response.getHTTPCode()==403)
|
||||
throw new UserNotAuthorizedException("the call to this methdo is not allowed for the user");
|
||||
else
|
||||
throw new BackendGenericError();
|
||||
}
|
||||
|
||||
|
||||
return response.getSource().readEntity(List.class);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -23,7 +23,7 @@ public class DefaultUserManager implements UserManagerClient {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addUser(String userId) throws StorageHubException {
|
||||
public void createUser(String userId) throws StorageHubException {
|
||||
Call<GXWebTargetAdapterRequest, Void> call = new Call<GXWebTargetAdapterRequest, Void>() {
|
||||
@Override
|
||||
public Void call(GXWebTargetAdapterRequest manager) throws Exception {
|
||||
|
|
|
@ -13,7 +13,7 @@ public interface GroupManagerClient {
|
|||
|
||||
void removeGroup(String groupId) throws StorageHubException;
|
||||
|
||||
void createGroup(String groupId, AccessType accessType) throws StorageHubException;
|
||||
void createGroup(String groupId, AccessType accessType, String folderOwner) throws StorageHubException;
|
||||
|
||||
List<String> getUsersOfGroup(String groupId) throws StorageHubException;
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
|||
|
||||
public interface UserManagerClient {
|
||||
|
||||
void addUser(String userId) throws StorageHubException;
|
||||
void createUser(String userId) throws StorageHubException;
|
||||
|
||||
void removeUser(String userId) throws StorageHubException;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.gcube.common.storagehub.client.dsl.FileContainer;
|
|||
import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.client.dsl.VREFolderManager;
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
import org.gcube.common.storagehub.model.acls.AccessType;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
|
@ -26,16 +27,32 @@ import org.gcube.common.storagehub.model.items.Item;
|
|||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import ch.qos.logback.classic.pattern.Util;
|
||||
|
||||
|
||||
|
||||
public class Items {
|
||||
|
||||
@BeforeClass
|
||||
public static void setUp(){
|
||||
SecurityTokenProvider.instance.set("d9431600-9fef-41a7-946d-a5b402de30d6-98187548");
|
||||
ScopeProvider.instance.set("/gcube/devsec/devVRE");
|
||||
SecurityTokenProvider.instance.set("b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548");
|
||||
ScopeProvider.instance.set("/gcube");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allRound() throws StorageHubException {
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
VREFolderManager vreFolderMaanger = shc.getVreFolderManager(org.gcube.common.storagehub.client.dsl.Util.getVREGroupFromContext("/gcube/devsec/devVreLucio"));
|
||||
vreFolderMaanger.createVRE(AccessType.READ_ONLY, "lucio.lelii");
|
||||
/*vreFolderMaanger.addUser("lucio.lelii");
|
||||
vreFolderMaanger.addUser("massimiliano.assante");
|
||||
vreFolderMaanger.setAdmin("massimiliano.assante");*/
|
||||
vreFolderMaanger.removeVRE();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void removeUserFromVRE() throws StorageHubException {
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
|
@ -61,6 +78,7 @@ public class Items {
|
|||
StorageHubClient shc = new StorageHubClient();
|
||||
shc.getVreFolderManager().removeAdmin("vfloros");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue