changed method getPrivilege
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@100183 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
a06d57950a
commit
505d0b8d6f
|
@ -258,4 +258,6 @@ public interface GWTWorkspaceService extends RemoteService{
|
||||||
|
|
||||||
List<InfoContactModel> getAdministratorsByFolderId(String identifier) throws Exception;
|
List<InfoContactModel> getAdministratorsByFolderId(String identifier) throws Exception;
|
||||||
|
|
||||||
|
WorkspaceACL getACLBySharedFolderId(String identifier) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,5 +212,8 @@ public interface GWTWorkspaceServiceAsync {
|
||||||
* @param identifier
|
* @param identifier
|
||||||
*/
|
*/
|
||||||
void getAdministratorsByFolderId(String identifier, AsyncCallback<List<InfoContactModel>> callback);
|
void getAdministratorsByFolderId(String identifier, AsyncCallback<List<InfoContactModel>> callback);
|
||||||
|
|
||||||
|
|
||||||
|
void getACLBySharedFolderId(String identifier, AsyncCallback<WorkspaceACL> callback);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class DialogShareFolder extends Dialog {
|
||||||
* @param folder
|
* @param folder
|
||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
public DialogShareFolder(String folderParentName, FileModel folder, HandlerManager eventBus) {
|
public DialogShareFolder(String folderParentName, final FileModel folder, HandlerManager eventBus) {
|
||||||
initLayout(folderParentName);
|
initLayout(folderParentName);
|
||||||
this.parentFolder = folder;
|
this.parentFolder = folder;
|
||||||
this.setIcon(Resources.getIconShareFolder());
|
this.setIcon(Resources.getIconShareFolder());
|
||||||
|
@ -154,6 +154,11 @@ public class DialogShareFolder extends Dialog {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<WorkspaceACL> result) {
|
public void onSuccess(List<WorkspaceACL> result) {
|
||||||
permission = new PanelTogglePermission(result);
|
permission = new PanelTogglePermission(result);
|
||||||
|
|
||||||
|
//ONLY IF FOLDER IS ALREADY SHARED, LOOADING CURRENT ACL FROM HL
|
||||||
|
if(folder.isShared())
|
||||||
|
selectAclForFolder(folder);
|
||||||
|
|
||||||
hpPermission.add(permission);
|
hpPermission.add(permission);
|
||||||
hpPermission.layout();
|
hpPermission.layout();
|
||||||
layout();
|
layout();
|
||||||
|
@ -502,4 +507,26 @@ public class DialogShareFolder extends Dialog {
|
||||||
return permission.getSelectedACL();
|
return permission.getSelectedACL();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void selectAclForFolder(FileModel folder){
|
||||||
|
GWT.log("Loading ACL to: "+folder);
|
||||||
|
AppControllerExplorer.rpcWorkspaceService.getACLBySharedFolderId(folder.getIdentifier(), new AsyncCallback<WorkspaceACL>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable arg0) {
|
||||||
|
GWT.log("An error occurred on selecting current ACL "+arg0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WorkspaceACL arg0) {
|
||||||
|
GWT.log("Loaded ACL "+arg0);
|
||||||
|
permission.selectACL(arg0);
|
||||||
|
hpPermission.layout();
|
||||||
|
layout();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gcube.portlets.user.workspace.client.view.sharing;
|
package org.gcube.portlets.user.workspace.client.view.sharing;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.util.GetPermissionIconByACL;
|
import org.gcube.portlets.user.workspace.client.util.GetPermissionIconByACL;
|
||||||
|
@ -21,11 +22,12 @@ import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||||
public class PanelTogglePermission extends LayoutContainer {
|
public class PanelTogglePermission extends LayoutContainer {
|
||||||
|
|
||||||
protected static final String WORKSPACEACLGROUP = "WORKSPACEACLGROUP";
|
protected static final String WORKSPACEACLGROUP = "WORKSPACEACLGROUP";
|
||||||
// private ButtonGroup buttonGroup;
|
|
||||||
|
|
||||||
private HorizontalPanel hp = new HorizontalPanel();
|
private HorizontalPanel hp = new HorizontalPanel();
|
||||||
|
|
||||||
private WorkspaceACL selectedAcl = null;
|
private WorkspaceACL selectedAcl = null;
|
||||||
|
|
||||||
|
private List<ToggleButton> toggles;
|
||||||
|
|
||||||
public PanelTogglePermission(List<WorkspaceACL> acls) {
|
public PanelTogglePermission(List<WorkspaceACL> acls) {
|
||||||
|
|
||||||
|
@ -36,15 +38,14 @@ public class PanelTogglePermission extends LayoutContainer {
|
||||||
hp.mask("Loading ACLs");
|
hp.mask("Loading ACLs");
|
||||||
hp.setVerticalAlign(VerticalAlignment.MIDDLE);
|
hp.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||||
hp.setStyleAttribute("padding-left", "35px");
|
hp.setStyleAttribute("padding-left", "35px");
|
||||||
|
toggles = new ArrayList<ToggleButton>(acls.size());
|
||||||
|
|
||||||
for (WorkspaceACL acl : acls) {
|
for (WorkspaceACL acl : acls) {
|
||||||
if(acl.getUserType().equals(USER_TYPE.OTHER)){
|
if(acl.getUserType().equals(USER_TYPE.OTHER)){
|
||||||
ToggleButton toggle = createToggle(acl);
|
ToggleButton toggle = createToggle(acl);
|
||||||
toggle.setToggleGroup(WORKSPACEACLGROUP);
|
toggle.setToggleGroup(WORKSPACEACLGROUP);
|
||||||
toggle.setStyleAttribute("margin-right", "10px");
|
toggle.setStyleAttribute("margin-right", "10px");
|
||||||
// buttonGroup.add(toggle);
|
toggles.add(toggle);
|
||||||
// listToogle.add(toggle);
|
|
||||||
// add(toggle);
|
|
||||||
hp.add(toggle);
|
hp.add(toggle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,59 +83,24 @@ public class PanelTogglePermission extends LayoutContainer {
|
||||||
if(img!=null)
|
if(img!=null)
|
||||||
bToggle.setIcon(img);
|
bToggle.setIcon(img);
|
||||||
|
|
||||||
// setIcon(bToggle, acl.getId());
|
|
||||||
return bToggle;
|
return bToggle;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void setIcon(ToggleButton bToggle, String id){
|
|
||||||
//
|
|
||||||
// if(id.compareTo("ADMINISTRATOR")==0){
|
|
||||||
//
|
|
||||||
// }else if(id.compareTo("READ_ONLY")==0){
|
|
||||||
// bToggle.setIcon(Resources.getIconReadOnly());
|
|
||||||
// }else if(id.compareTo("WRITE_OWNER")==0){
|
|
||||||
// bToggle.setIcon(Resources.getIconWriteOwn());
|
|
||||||
// }else if(id.compareTo("WRITE_ALL")==0){
|
|
||||||
// bToggle.setIcon(Resources.getIconWriteAll());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
public WorkspaceACL getSelectedACL() {
|
public WorkspaceACL getSelectedACL() {
|
||||||
GWT.log("Selected ACL is: "+selectedAcl);
|
GWT.log("Selected ACL is: "+selectedAcl);
|
||||||
return selectedAcl;
|
return selectedAcl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
public void selectACL(WorkspaceACL acl){
|
||||||
public List<WorkspaceACL> getCheckedGroupList() {
|
for (ToggleButton toogle : toggles) {
|
||||||
|
GWT.log("Comparing toogle.getId(): "+toogle.getId() +" and acl.getId(): "+acl.getId());
|
||||||
List<WorkspaceACL> listDS = new ArrayList<WorkspaceACL>();
|
if(toogle.getId().compareTo(acl.getId())==0){
|
||||||
|
GWT.log("Toogle: "+acl);
|
||||||
List<Radio> values = new ArrayList<Radio>();
|
toogle.toggle(true);
|
||||||
|
selectedAcl = acl;
|
||||||
if (radioGroup.getValue()!=null){
|
return;
|
||||||
Radio radio = radioGroup.getValue();
|
|
||||||
values.add((Radio) radio);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
List<Field<?>> listChecks = radioGroup.getAll();
|
|
||||||
for (Field<?> field : listChecks) {
|
|
||||||
values.add((Radio) field);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Radio radio : values) {
|
|
||||||
if (radio.isEnabled()){
|
|
||||||
WorkspaceACL acl = (WorkspaceACL) radio.getData(WORKSPACEACL);
|
|
||||||
listDS.add(acl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (listDS.size() == 0)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return listDS;
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3105,5 +3105,46 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
throw new Exception(error);
|
throw new Exception(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getACLBySharedFolderId(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceACL getACLBySharedFolderId(String identifier) throws Exception {
|
||||||
|
workspaceLogger.info("Getting ACLBySharedFolderId: "+identifier);
|
||||||
|
if(identifier==null || identifier.isEmpty()){
|
||||||
|
workspaceLogger.warn("Getting ACLBySharedFolderId identifier is null or empty, returning null");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
|
||||||
|
Workspace workspace = getWorkspace();
|
||||||
|
WorkspaceItem item = workspace.getItem(identifier);
|
||||||
|
|
||||||
|
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
||||||
|
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
||||||
|
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
||||||
|
|
||||||
|
workspaceLogger.info("Read getPrivilege from HL: "+sharedFolder.getACLUser());
|
||||||
|
List<WorkspaceACL> wsAcls = builder.getWorkspaceACLFromACLs(Arrays.asList(sharedFolder.getPrivilege()));
|
||||||
|
|
||||||
|
if(wsAcls==null || wsAcls.isEmpty()){
|
||||||
|
workspaceLogger.info("Converted ACLBySharedFolderId is null or empty, returning null");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
workspaceLogger.info("Returning first acl with id: "+wsAcls.get(0).getId());
|
||||||
|
return wsAcls.get(0);
|
||||||
|
|
||||||
|
}else
|
||||||
|
throw new Exception("The item is null or not instanceof "+WorkspaceItemType.SHARED_FOLDER);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
workspaceLogger.error("Error in server ACLBySharedFolderId: "+e.getMessage());
|
||||||
|
workspaceLogger.error(e);
|
||||||
|
String error = ConstantsExplorer.SERVER_ERROR +" getting ACL of WorkspaceSharedFolder";
|
||||||
|
throw new Exception(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue