Revision 9fce5629 web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java

b/web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java
44 44
import com.google.gwt.json.client.JSONValue;
45 45
import java.util.ArrayList;
46 46
import java.util.Date;
47
import java.util.HashMap;
47 48
import java.util.Iterator;
48 49
import java.util.LinkedHashSet;
49 50
import java.util.List;
51
import java.util.Map;
50 52
import java.util.Set;
51 53
import java.util.StringTokenizer;
52 54

  
......
88 90

  
89 91
    private String owner;
90 92

  
93
    private Map<String, Boolean[]> permissions = new HashMap<String, Boolean[]>();
94

  
95
    private String inheritedPermissionsFrom;
96

  
91 97
    public Folder() {};
92 98

  
93 99
    public Folder(String name) {
......
130 136
        this.prefix = prefix;
131 137
    }
132 138

  
139
    private void parsePermissions(String rawPermissions) {
140
        String[] readwrite = rawPermissions.split(";");
141
        for (String s : readwrite) {
142
            String[] part = s.split("=");
143
            String perm = part[0].trim();
144
            String[] users = part[1].split(",");
145
            for (String u : users) {
146
                String user = u.trim();
147
                Boolean[] userPerm = permissions.get(u);
148
                if (userPerm == null) {
149
                    userPerm = new Boolean[2];
150
                    permissions.put(user, userPerm);
151
                }
152
                if (perm.equals("read")) {
153
                    userPerm[0] = Boolean.TRUE;
154
                }
155
                else if (perm.equals("write")) {
156
                    userPerm[1] = Boolean.TRUE;
157
                }
158
            }
159
        }
160
    }
161

  
133 162
    public void populate(String owner, Response response) {
134 163
        this.owner = owner;
135 164
        String header = response.getHeader("Last-Modified");
......
151 180
            }
152 181
        }
153 182

  
183
        inheritedPermissionsFrom = response.getHeader("X-Object-Shared-By");
184
        String rawPermissions = response.getHeader("X-Object-Sharing");
185
        if (rawPermissions != null)
186
            parsePermissions(rawPermissions);
187

  
154 188
        subfolders.clear(); //This is necessary in case we update a pre-existing Folder so that stale subfolders won't show up
155 189
        files.clear();
156 190
        JSONValue json = JSONParser.parseStrict(response.getText());
......
210 244
        this.owner = owner;
211 245
        if (o.containsKey("x_object_meta_trash") && o.get("x_object_meta_trash").isString().stringValue().equals("true"))
212 246
            inTrash = true;
247

  
248
        inheritedPermissionsFrom = unmarshallString(o, "x_object_shared_by");
249
        String rawPermissions = unmarshallString(o, "x_object_sharing");
250
        if (rawPermissions != null)
251
            parsePermissions(rawPermissions);
213 252
    }
214 253

  
215 254
    public static Folder createFromResponse(String owner, Response response, Folder result) {

Also available in: Unified diff