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