enhancements on new sharing policy
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@91444 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
7bc879acf9
commit
c013b8c4a2
|
@ -168,6 +168,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
|
||||
private boolean selectRootItem;
|
||||
private FileUploader fileUploader;
|
||||
public static String myLogin;
|
||||
|
||||
public AppControllerExplorer() {
|
||||
Registry.register(ConstantsExplorer.RPC_WORKSPACE_SERVICE, rpcWorkspaceService);
|
||||
|
@ -2045,6 +2046,8 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
public ExplorerPanel getPanel(){
|
||||
|
||||
this.explorerPanel = new ExplorerPanel(true, true);
|
||||
|
||||
loadMyLogin();
|
||||
|
||||
// PollingWorkspace.pollReceivedMessages(-1, 20000); //the parameter -1 force (first) synchronization with HL
|
||||
|
||||
|
@ -2066,15 +2069,33 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
|
||||
this.selectRootItem=selectRootItem;
|
||||
|
||||
loadMyLogin();
|
||||
|
||||
// if(instancingMessages)
|
||||
// PollingWorkspace.pollReceivedMessages(-1, 20000); //the parameter -1 force (first) synchronization with HL
|
||||
|
||||
|
||||
// PollingWorkspace.pollBulkCreator(ConstantsExplorer.TIME_BULK_CREATOR_POLLING);
|
||||
|
||||
return this.explorerPanel;
|
||||
}
|
||||
|
||||
private void loadMyLogin(){
|
||||
|
||||
rpcWorkspaceService.getMyLogin(new AsyncCallback<String>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
GWT.log("Error on loading my login is empty");
|
||||
myLogin = "";
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
GWT.log("My login is: "+result);
|
||||
myLogin = result;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void loadItemFromWorkspace(final String itemIdentifier){
|
||||
|
|
|
@ -199,4 +199,6 @@ public interface GWTWorkspaceService extends RemoteService{
|
|||
void setACLs(String folderId, List<String> listLogins, String aclType)
|
||||
throws Exception;
|
||||
|
||||
String getMyLogin();
|
||||
|
||||
}
|
||||
|
|
|
@ -177,4 +177,6 @@ public interface GWTWorkspaceServiceAsync {
|
|||
void setACLs(String folderId, List<String> listLogins, String aclType,
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void getMyLogin(AsyncCallback<String> callback);
|
||||
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
|||
import com.extjs.gxt.ui.client.widget.form.TextArea;
|
||||
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||
import com.google.gwt.core.shared.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
|
@ -171,8 +172,10 @@ public class DialogShareFolder extends Dialog {
|
|||
public void onSuccess(List<InfoContactModel> result) {
|
||||
|
||||
for (InfoContactModel infoContactModel : result) {
|
||||
listAlreadyShared.add(infoContactModel);
|
||||
suggestPanel.addRecipient(infoContactModel.getName(),false);
|
||||
if(infoContactModel.getName()!=null){
|
||||
listAlreadyShared.add(infoContactModel);
|
||||
suggestPanel.addRecipient(infoContactModel.getName(),false);
|
||||
}
|
||||
}
|
||||
|
||||
lc.unmask();
|
||||
|
@ -190,13 +193,13 @@ public class DialogShareFolder extends Dialog {
|
|||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
|
||||
txtOwner.setValue("Error on retrieving Owner");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(InfoContactModel result) {
|
||||
txtOwner.setValue(result.getName());
|
||||
|
||||
permissionControl(result.getName(), true);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -205,10 +208,34 @@ public class DialogShareFolder extends Dialog {
|
|||
add(txtOwner);
|
||||
add(lc);
|
||||
addListners();
|
||||
enableFormDialog(false); //FORM IS DISABLED BY DEFAULT
|
||||
|
||||
this.show();
|
||||
}
|
||||
|
||||
private void permissionControl(String owner, boolean showAlert){
|
||||
GWT.log("Permission control compare between owner: "+owner +" and my login: "+AppControllerExplorer.myLogin);
|
||||
|
||||
if(AppControllerExplorer.myLogin.compareToIgnoreCase(owner)!=0){
|
||||
enableFormDialog(false);
|
||||
if(showAlert)
|
||||
new MessageBoxAlert("Permission denied", "You have no permissions to change sharing. You are not owner of \""+txtName.getValue()+"\"", null);
|
||||
}else{
|
||||
enableFormDialog(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void enableFormDialog(boolean bool){
|
||||
getButtonById(Dialog.OK).setEnabled(bool);
|
||||
buttonMultiDrag.setEnabled(bool);
|
||||
textAreaDescription.setEnabled(bool);
|
||||
if(permission!=null)
|
||||
permission.setEnabled(bool);
|
||||
|
||||
// setEnabled(bool);
|
||||
|
||||
}
|
||||
|
||||
public FileModel getParentFolder() {
|
||||
return parentFolder;
|
||||
}
|
||||
|
|
|
@ -2534,4 +2534,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
|||
throw new Exception(error);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMyLogin(){
|
||||
ASLSession asl = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
|
||||
return asl.getUsername();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,10 +103,12 @@ public class WsUtil {
|
|||
}else if(user.compareToIgnoreCase(TEST_USER)==0){
|
||||
|
||||
withoutPortal = true;
|
||||
|
||||
//COMMENT THIS IN PRODUCTION ENVIROMENT
|
||||
// }else if(user.compareToIgnoreCase("francesco.mangiacrapa")==0){
|
||||
//
|
||||
// withoutPortal = true;
|
||||
|
||||
// //END UNCOMMENT
|
||||
}else{
|
||||
|
||||
withoutPortal = false;
|
||||
|
|
Loading…
Reference in New Issue