added multi drag edit permissions
updated pom version git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@111495 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
d24ad689a5
commit
87bb5e589d
|
@ -0,0 +1,117 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.portlets.widgets.workspacesharingwidget.client;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.permissions.MessageBoxAlert;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.permissions.PanelTogglePermission;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* A dialog to drag and edit permissions of a workspace folder
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* @Jan 27, 2015
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MultiDragContactsEditPermissions extends SimpleMultiDragWorkspaceContact{
|
||||||
|
|
||||||
|
private PanelTogglePermission permission;
|
||||||
|
private HorizontalPanel hpPermission = new HorizontalPanel();
|
||||||
|
private Dialog dialog;
|
||||||
|
/**
|
||||||
|
* @param load
|
||||||
|
* @param workspaceItemId
|
||||||
|
* @param readGroupsFromHL
|
||||||
|
* @param readGroupsFromPortal
|
||||||
|
* @param hiddenMySelf
|
||||||
|
*/
|
||||||
|
public MultiDragContactsEditPermissions(LOAD_CONTACTS_AS load, String workspaceItemId, boolean readGroupsFromHL, boolean readGroupsFromPortal, boolean hiddenMySelf) {
|
||||||
|
super(load, workspaceItemId, readGroupsFromHL, readGroupsFromPortal,hiddenMySelf);
|
||||||
|
|
||||||
|
dialog = super.getMultiDragContact();
|
||||||
|
dialog.setHeight(dialog.getHeight()+100);
|
||||||
|
dialog.mask("Loading");
|
||||||
|
//TODO GET ACL FOR USER
|
||||||
|
WorkspaceSharingController.rpcWorkspaceSharingService.getACLs(new AsyncCallback<List<WorkspaceACL>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<WorkspaceACL> result) {
|
||||||
|
permission = new PanelTogglePermission(result);
|
||||||
|
hpPermission.add(permission);
|
||||||
|
hpPermission.layout();
|
||||||
|
dialog.unmask();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
new MessageBoxAlert("Alert", "Sorry, an error occurred on recovering ACLs",null);
|
||||||
|
// dialog.unmask();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
dialog.add(permission);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dialog getDialog() {
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.widgets.workspacesharingwidget.client.SimpleMultiDragWorkspaceContact#show()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
dialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The HL ID of the selected ACL
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getSelectedAclId(){
|
||||||
|
if(permission.getSelectedACL()!=null)
|
||||||
|
return permission.getSelectedACL().getId();
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The selected ACL
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public WorkspaceACL getSelectedAcl(){
|
||||||
|
if(permission.getSelectedACL()!=null)
|
||||||
|
return permission.getSelectedACL();
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<InfoContactModel> getTargetContacts() {
|
||||||
|
return super.getTargetContacts();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<InfoContactModel> getTargetContactsWithMyLogin() {
|
||||||
|
return super.getTargetContactsWithMyLogin();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -200,6 +200,10 @@ public class SimpleMultiDragWorkspaceContact {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return the multi drag Dialog
|
||||||
|
*/
|
||||||
public Dialog getMultiDragContact() {
|
public Dialog getMultiDragContact() {
|
||||||
return multiDragContact;
|
return multiDragContact;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package org.gcube.portlets.widgets.workspacesharingwidget.client.permissions;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
|
||||||
|
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MessageBoxAlert {
|
||||||
|
|
||||||
|
private MessageBox box = null;
|
||||||
|
|
||||||
|
public MessageBoxAlert(String headerTitle, String msg, Listener<MessageBoxEvent> listener){
|
||||||
|
|
||||||
|
if(listener==null)
|
||||||
|
listener = new Listener<MessageBoxEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleEvent(MessageBoxEvent be) {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
box = MessageBox.alert(headerTitle, msg, listener);
|
||||||
|
box.show();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBox getMessageBoxInsert() {
|
||||||
|
return box;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
package org.gcube.portlets.widgets.workspacesharingwidget.client.permissions;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.resources.GetPermissionIconByACL;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL.USER_TYPE;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.ButtonScale;
|
||||||
|
import com.extjs.gxt.ui.client.Style.IconAlign;
|
||||||
|
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||||
|
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.button.ToggleButton;
|
||||||
|
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
|
||||||
|
import com.google.gwt.core.shared.GWT;
|
||||||
|
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||||
|
|
||||||
|
public class PanelTogglePermission extends LayoutContainer {
|
||||||
|
|
||||||
|
protected static final String WORKSPACEACLGROUP = "WORKSPACEACLGROUP";
|
||||||
|
|
||||||
|
private HorizontalPanel hp = new HorizontalPanel();
|
||||||
|
|
||||||
|
private WorkspaceACL selectedAcl = null;
|
||||||
|
|
||||||
|
private List<ToggleButton> toggles;
|
||||||
|
|
||||||
|
public PanelTogglePermission(List<WorkspaceACL> acls) {
|
||||||
|
|
||||||
|
// setStyleAttribute("margin-top", "10px");
|
||||||
|
setStyleAttribute("margin-bottom", "15px");
|
||||||
|
setSize(350, 40);
|
||||||
|
|
||||||
|
hp.mask("Loading ACLs");
|
||||||
|
hp.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||||
|
hp.setStyleAttribute("padding-left", "35px");
|
||||||
|
toggles = new ArrayList<ToggleButton>(acls.size());
|
||||||
|
|
||||||
|
for (WorkspaceACL acl : acls) {
|
||||||
|
if(acl.getUserType().equals(USER_TYPE.OTHER)){
|
||||||
|
ToggleButton toggle = createToggle(acl);
|
||||||
|
toggle.setToggleGroup(WORKSPACEACLGROUP);
|
||||||
|
toggle.setStyleAttribute("margin-right", "10px");
|
||||||
|
toggles.add(toggle);
|
||||||
|
hp.add(toggle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hp.unmask();
|
||||||
|
add(hp);
|
||||||
|
layout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ToggleButton createToggle(final WorkspaceACL acl) {
|
||||||
|
|
||||||
|
final ToggleButton bToggle = new ToggleButton(acl.getLabel());
|
||||||
|
bToggle.setScale(ButtonScale.MEDIUM);
|
||||||
|
bToggle.setId(acl.getId());
|
||||||
|
bToggle.setAllowDepress(false);
|
||||||
|
bToggle.toggle(acl.getDefaultValue());
|
||||||
|
|
||||||
|
if(acl.getDefaultValue())
|
||||||
|
selectedAcl = acl;
|
||||||
|
|
||||||
|
bToggle.setIconAlign(IconAlign.TOP);
|
||||||
|
bToggle.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
if(bToggle.isPressed()){
|
||||||
|
selectedAcl = acl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
bToggle.setToolTip(new ToolTipConfig(acl.getDescription()));
|
||||||
|
AbstractImagePrototype img = GetPermissionIconByACL.getImage(acl);
|
||||||
|
|
||||||
|
if(img!=null)
|
||||||
|
bToggle.setIcon(img);
|
||||||
|
|
||||||
|
return bToggle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public WorkspaceACL getSelectedACL() {
|
||||||
|
GWT.log("Selected ACL is: "+selectedAcl);
|
||||||
|
return selectedAcl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectACL(WorkspaceACL acl){
|
||||||
|
for (ToggleButton toogle : toggles) {
|
||||||
|
GWT.log("Comparing toogle.getId(): "+toogle.getId() +" and acl.getId(): "+acl.getId());
|
||||||
|
if(toogle.getId().compareTo(acl.getId())==0){
|
||||||
|
GWT.log("Toogle: "+acl);
|
||||||
|
toogle.toggle(true);
|
||||||
|
selectedAcl = acl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -316,50 +316,6 @@ public class GWTWorkspaceSharingBuilder {
|
||||||
return new InfoContactModel();
|
return new InfoContactModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<WorkspaceACL> getWorkspaceACLFromACLs(List<ACLType> types)
|
|
||||||
throws Exception {
|
|
||||||
|
|
||||||
List<WorkspaceACL> acls = new ArrayList<WorkspaceACL>();
|
|
||||||
|
|
||||||
for (ACLType acl : types) {
|
|
||||||
|
|
||||||
switch (acl) {
|
|
||||||
|
|
||||||
case ADMINISTRATOR:
|
|
||||||
// acls.add(new WorkspaceACL(acl.toString(),
|
|
||||||
// ACL_TYPE.ADMINISTRATOR, "Admin", false,
|
|
||||||
// USER_TYPE.ADMINISTRATOR, ""));
|
|
||||||
break;
|
|
||||||
case READ_ONLY:
|
|
||||||
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.READ_ONLY,
|
|
||||||
"Read Only", false, USER_TYPE.OTHER,
|
|
||||||
"Users can read any file but cannot update/delete"));
|
|
||||||
break;
|
|
||||||
case WRITE_OWNER:
|
|
||||||
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_OWNER,
|
|
||||||
"Write Own", true, USER_TYPE.OTHER,
|
|
||||||
"Users can update/delete only their files"));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WRITE_ALL:
|
|
||||||
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_ANY,
|
|
||||||
"Write Any", false, USER_TYPE.OTHER,
|
|
||||||
"Any user can update/delete any file"));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_OWNER,
|
|
||||||
acl.toString(), false, USER_TYPE.OTHER, ""));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (acls.size() == 0)
|
|
||||||
throw new Exception("No ACLs rules found!");
|
|
||||||
|
|
||||||
return acls;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected FileModel buildGXTFileModelItem(WorkspaceItem item,
|
protected FileModel buildGXTFileModelItem(WorkspaceItem item,
|
||||||
FileModel parentFolderModel) throws Exception {
|
FileModel parentFolderModel) throws Exception {
|
||||||
FileModel fileModel = null;
|
FileModel fileModel = null;
|
||||||
|
@ -495,4 +451,48 @@ public class GWTWorkspaceSharingBuilder {
|
||||||
return fileModel;
|
return fileModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<WorkspaceACL> getWorkspaceACLFromACLs(List<ACLType> types)
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
List<WorkspaceACL> acls = new ArrayList<WorkspaceACL>();
|
||||||
|
|
||||||
|
for (ACLType acl : types) {
|
||||||
|
|
||||||
|
switch (acl) {
|
||||||
|
|
||||||
|
case ADMINISTRATOR:
|
||||||
|
// acls.add(new WorkspaceACL(acl.toString(),
|
||||||
|
// ACL_TYPE.ADMINISTRATOR, "Admin", false,
|
||||||
|
// USER_TYPE.ADMINISTRATOR, ""));
|
||||||
|
break;
|
||||||
|
case READ_ONLY:
|
||||||
|
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.READ_ONLY,
|
||||||
|
"Read Only", false, USER_TYPE.OTHER,
|
||||||
|
"Users can read any file but cannot update/delete"));
|
||||||
|
break;
|
||||||
|
case WRITE_OWNER:
|
||||||
|
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_OWNER,
|
||||||
|
"Write Own", true, USER_TYPE.OTHER,
|
||||||
|
"Users can update/delete only their files"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WRITE_ALL:
|
||||||
|
acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_ANY,
|
||||||
|
"Write Any", false, USER_TYPE.OTHER,
|
||||||
|
"Any user can update/delete any file"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// acls.add(new WorkspaceACL(acl.toString(), ACL_TYPE.WRITE_OWNER,
|
||||||
|
// acl.toString(), false, USER_TYPE.OTHER, ""));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (acls.size() == 0)
|
||||||
|
throw new Exception("No ACLs rules found!");
|
||||||
|
|
||||||
|
return acls;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isTestMode(){
|
protected boolean isTestMode(){
|
||||||
return WsUtil.withoutPortal;
|
return !WsUtil.isWithinPortal(); //IS NOT INTO PORTAL
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -546,11 +546,6 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
||||||
return listContactsModel;
|
return listContactsModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
WorkspaceSharingServiceImpl impl = new WorkspaceSharingServiceImpl();
|
WorkspaceSharingServiceImpl impl = new WorkspaceSharingServiceImpl();
|
||||||
|
@ -585,4 +580,6 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,8 +35,8 @@ public class UserUtil {
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
logger.info("Get user full name for: "+portalLogin);
|
logger.info("Get user full name for: "+portalLogin);
|
||||||
logger.info("Into portal: "+!WsUtil.withoutPortal);
|
logger.info("Into portal: "+!WsUtil.isWithinPortal());
|
||||||
if (portalLogin.compareTo(WsUtil.TEST_USER) != 0 && !WsUtil.withoutPortal) { //skip test.user
|
if ((portalLogin.compareTo(WsUtil.TEST_USER) != 0) && (WsUtil.isWithinPortal())) { //skip test.user
|
||||||
|
|
||||||
UserModel curr = null;
|
UserModel curr = null;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,8 @@ import org.gcube.portlets.widgets.workspacesharingwidget.shared.system.VRE;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.liferay.portal.service.UserLocalServiceUtil;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -62,7 +64,22 @@ public class WsUtil {
|
||||||
|
|
||||||
protected static Logger logger = LoggerFactory.getLogger(WsUtil.class);
|
protected static Logger logger = LoggerFactory.getLogger(WsUtil.class);
|
||||||
|
|
||||||
public static boolean withoutPortal = false;
|
// public static boolean withoutPortal = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return true if you're running into the portal, false if in development
|
||||||
|
*/
|
||||||
|
public static boolean isWithinPortal() {
|
||||||
|
try {
|
||||||
|
UserLocalServiceUtil.getService();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
logger.info("Development Mode ON");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static ASLSession getAslSession(HttpSession httpSession)
|
public static ASLSession getAslSession(HttpSession httpSession)
|
||||||
{
|
{
|
||||||
|
@ -95,13 +112,13 @@ public class WsUtil {
|
||||||
//SET HTTP SESSION ATTRIBUTE
|
//SET HTTP SESSION ATTRIBUTE
|
||||||
httpSession.setAttribute(USERNAME_ATTRIBUTE, user);
|
httpSession.setAttribute(USERNAME_ATTRIBUTE, user);
|
||||||
|
|
||||||
withoutPortal = true;
|
// withoutPortal = true;
|
||||||
|
|
||||||
return session;
|
return session;
|
||||||
|
|
||||||
}else if(user.compareToIgnoreCase(TEST_USER)==0){
|
}else if(user.compareToIgnoreCase(TEST_USER)==0){
|
||||||
|
|
||||||
withoutPortal = true;
|
// withoutPortal = true;
|
||||||
|
|
||||||
//COMMENT THIS IN PRODUCTION ENVIROMENT
|
//COMMENT THIS IN PRODUCTION ENVIROMENT
|
||||||
// }else if(user.compareToIgnoreCase("francesco.mangiacrapa")==0){
|
// }else if(user.compareToIgnoreCase("francesco.mangiacrapa")==0){
|
||||||
|
@ -110,7 +127,7 @@ public class WsUtil {
|
||||||
// END UNCOMMENT
|
// END UNCOMMENT
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
withoutPortal = false;
|
// withoutPortal = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SessionManager.getInstance().getASLSession(sessionID, user);
|
return SessionManager.getInstance().getASLSession(sessionID, user);
|
||||||
|
|
|
@ -31,7 +31,15 @@ public class WorkspaceACL implements Serializable{
|
||||||
|
|
||||||
public enum USER_TYPE{ADMINISTRATOR, GROUP, OWNER, OTHER};
|
public enum USER_TYPE{ADMINISTRATOR, GROUP, OWNER, OTHER};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param serverId
|
||||||
|
* @param aclType
|
||||||
|
* @param label
|
||||||
|
* @param defaultValue
|
||||||
|
* @param userType
|
||||||
|
* @param description
|
||||||
|
*/
|
||||||
public WorkspaceACL(String serverId, ACL_TYPE aclType, String label, boolean defaultValue, USER_TYPE userType, String description) {
|
public WorkspaceACL(String serverId, ACL_TYPE aclType, String label, boolean defaultValue, USER_TYPE userType, String description) {
|
||||||
super();
|
super();
|
||||||
this.id = serverId;
|
this.id = serverId;
|
||||||
|
|
Loading…
Reference in New Issue