@Override public Collection<String> getAdminRoles() { return extractStringsFromArray("admins", "roles"); }
@Override public void removeMemberRole(String name) throws Exception { JSONArray ary = getArray("members", "roles"); removeStringFromArray(ary, name); }
@Override public void addMemberUser(String name) throws Exception { JSONArray ary = createArray("members", "names"); ary.put(name); }
private JSONArray getArray(String sectionName, String arrayName) { JSONObject section = getSection(sectionName); if( null == section ){ return null; } return section.optJSONArray(arrayName); }
private JSONArray createArray(String sectionName, String arrayName) throws Exception { JSONObject section = createSection(sectionName); JSONArray ary = section.optJSONArray(arrayName); if( null == ary ){ ary = new JSONArray(); section.put(arrayName, ary); } return ary; }
private List<String> extractStringsFromArray(String sectionName, String arrayName){ List<String> result = new Vector<String>(); JSONArray ary = getArray(sectionName, arrayName); if( null != ary ){ for(int i=0,e=ary.length(); i<e; ++i){ String n = ary.optString(i); if( null != n ) { result.add(n); } } } return result; }
@Override public CouchDbSecurityDocument getSecurityDocument() throws Exception { URL securityUrl = new URL(url, "_security"); JSONObject response = ConnectionUtils.getJsonResource(getContext(), securityUrl); ConnectionUtils.captureReponseErrors(response, "Error while fetching security document: "); CouchDbSecurityDocumentImpl security = new CouchDbSecurityDocumentImpl(response); return security; }
@Override public void addAdminUser(String name) throws Exception { JSONArray ary = createArray("admins", "names"); ary.put(name); }
@Override public void removeAdminUser(String name) throws Exception { JSONArray ary = getArray("admins", "names"); removeStringFromArray(ary, name); }
@Override public void addAdminRole(String name) throws Exception { JSONArray ary = createArray("admins", "roles"); ary.put(name); }
@Override public Collection<String> getAdminUsers() { return extractStringsFromArray("admins", "names"); }
@Override public void removeMemberUser(String name) throws Exception { JSONArray ary = getArray("members", "names"); removeStringFromArray(ary, name); }
@Override public void addMemberRole(String name) throws Exception { JSONArray ary = createArray("members", "roles"); ary.put(name); }
@Override public Collection<String> getMemberUsers() { return extractStringsFromArray("members", "names"); }
@Override public void removeAdminRole(String name) throws Exception { JSONArray ary = getArray("admins", "roles"); removeStringFromArray(ary, name); }
@Override public Collection<String> getMemberRoles() { return extractStringsFromArray("members", "roles"); }