Revert "Work in progress. Do not rely on this commit"
[pithos-web-client] / src / gr / grnet / pithos / web / client / commands / RemoveUserCommand.java
index d39a3ab..0edfb9c 100644 (file)
  */
 package gr.grnet.pithos.web.client.commands;
 
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.core.client.Scheduler;
-import com.google.gwt.http.client.Response;
-import com.google.gwt.http.client.URL;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.PopupPanel;
-import gr.grnet.pithos.web.client.Const;
 import gr.grnet.pithos.web.client.Pithos;
 import gr.grnet.pithos.web.client.Resource;
 import gr.grnet.pithos.web.client.grouptree.Group;
@@ -48,82 +41,86 @@ import gr.grnet.pithos.web.client.grouptree.User;
 import gr.grnet.pithos.web.client.rest.PostRequest;
 import gr.grnet.pithos.web.client.rest.RestException;
 
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.http.client.Response;
+import com.google.gwt.http.client.URL;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.PopupPanel;
+
 /**
  * Display the 'new folder' dialog for creating a new folder.
+ *
  */
 public class RemoveUserCommand implements Command {
-    private PopupPanel containerPanel;
+       private PopupPanel containerPanel;
 
     User user;
 
     Pithos app;
 
-    /**
-     * @param aContainerPanel
-     */
-    public RemoveUserCommand(Pithos _app, PopupPanel aContainerPanel, User _user) {
+       /**
+        * @param aContainerPanel
+        */
+       public RemoveUserCommand(Pithos _app, PopupPanel aContainerPanel, User _user){
         app = _app;
-        containerPanel = aContainerPanel;
-        user = _user;
-    }
-
-    @Override
-    public void execute() {
-        if(containerPanel != null) {
-            containerPanel.hide();
-        }
-        final String groupName = user.getGroup();
-        final Group group = app.getAccount().getGroup(groupName);
-        if(group == null) {
-            return;
-        }
-        group.removeUser(user);
-        String path = "?update=";
-        PostRequest updateGroup = new PostRequest(app, app.getApiPath(), app.getUserID(), path) {
-
-            @Override
-            public void onSuccess(Resource result) {
-                app.fetchAccount(new Command() {
-
-                    @Override
-                    public void execute() {
-                        Group updatedGroup2 = app.getAccount().getGroup(groupName);
-                        if(updatedGroup2 != null) {
-                            app.updateGroupNode(updatedGroup2);
-                        }
-                        else {
-                            app.updateGroupNode(null);
-                        }
-                    }
-                });
-            }
+               containerPanel = aContainerPanel;
+           user = _user;
+       }
 
-            @Override
-            public void onError(Throwable t) {
-                GWT.log("", t);
-                app.setError(t);
-                if(t instanceof RestException) {
-                    app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText());
-                }
-                else {
-                    app.displayError("System error updating group:" + t.getMessage());
-                }
-            }
+       @Override
+       public void execute() {
+        if (containerPanel != null)
+                   containerPanel.hide();
+       final String groupName = user.getGroup();
+       final Group group = app.getAccount().getGroup(groupName);
+       if (group == null)
+               return;
+       group.removeMember(user.getName());
+       String path = "?update=";
+       PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) {
+                       
+                       @Override
+                       public void onSuccess(Resource result) {
+                               app.fetchAccount(new Command() {
+                                       
+                                       @Override
+                                       public void execute() {
+                                               Group updatedGroup2 = app.getAccount().getGroup(groupName);
+                                               if (updatedGroup2 != null)
+                                                       app.updateGroupNode(updatedGroup2);
+                                               else {
+                                                       app.updateGroupNode(null);
+                                               }
+                                       }
+                               });
+                       }
+                       
+                       @Override
+                       public void onError(Throwable t) {
+                               GWT.log("", t);
+                               app.setError(t);
+                               if (t instanceof RestException) {
+                                       app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText());
+                               }
+                               else
+                                       app.displayError("System error updating group:" + t.getMessage());
+                       }
 
-            @Override
-            protected void onUnauthorized(Response response) {
-                app.sessionExpired();
-            }
-        };
-        updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken());
-        final String groupMembers;
-        if(!group.getUsers().isEmpty()) {
-            groupMembers = group.encodeUserIDsForXAccountGroup();
-        }
-        else {
-            groupMembers = "~";
-        }
-        updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), groupMembers);
-        Scheduler.get().scheduleDeferred(updateGroup);
-    }
+                       @Override
+                       protected void onUnauthorized(Response response) {
+                               app.sessionExpired();
+                       }
+               };
+               updateGroup.setHeader("X-Auth-Token", app.getUserToken());
+               String groupMembers = "";
+               if (!group.getMembers().isEmpty()) {
+                       for (String u : group.getMembers())
+                               groupMembers += (URL.encodePathSegment(u) + ",");
+               }
+               else
+                       groupMembers = "~";
+               updateGroup.setHeader("X-Account-Group-" + URL.encodePathSegment(group.getName()), groupMembers);
+               Scheduler.get().scheduleDeferred(updateGroup);
+       }
 }