roleName = element.getTextContent(); else if ("capability".equals(element.getLocalName())) caps.add(Capability.valueOf(element.getTextContent().toUpperCase())); else if (logger.isWarnEnabled()) logger.warn("Skipping unknown permission element", element.getTagName());
roleName = element.getTextContent(); else if ("capability".equals(element.getLocalName())) caps.add(Capability.getValueOf(element.getTextContent())); else if (logger.isWarnEnabled()) logger.warn("Skipping unknown permission element", element.getTagName());
@Override public void write(XMLOutputSerializer out) throws Exception { XMLStreamWriter serializer = out.getSerializer(); writeStartReplace(out, "/rapi:metadata/rapi:permissions/rapi:permission[rapi:role-name='"+oldRole+"']", null ); serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(newRole); serializer.writeEndElement(); for (Capability capability: newCapabilities) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.toString().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); serializer.writeEndElement(); } }
@Override public void write(JSONStringWriter serializer) { String pathString = serializer.getPathLanguage() == PathLanguage.JSONPATH ? "$.permissions[?(role-name="+JSONStringWriter.toJSON(oldRole)+")]": "/permissions[role-name = "+JSONStringWriter.toJSON(oldRole)+"]"; writeStartReplace(serializer, pathString, null ); serializer.writeStartEntry("content"); serializer.writeStartObject(); serializer.writeStartEntry("role-name"); serializer.writeStringValue(newRole); serializer.writeStartEntry("capabilities"); serializer.writeStartArray(); for (Capability capability: newCapabilities) { serializer.writeStartItem(); serializer.writeStringValue(capability.toString().toLowerCase()); } serializer.writeEndArray(); serializer.writeEndObject(); serializer.writeEndObject(); serializer.writeEndObject(); } @Override
@Override public void write(JSONStringWriter serializer) { String pathString = serializer.getPathLanguage() == PathLanguage.JSONPATH ? "$.permissions" : "/array-node('permissions')"; writeStartInsert(serializer, pathString, "last-child", null); serializer.writeStartEntry("content"); serializer.writeStartObject(); serializer.writeStartEntry("role-name"); serializer.writeStringValue(role); serializer.writeStartEntry("capabilities"); serializer.writeStartArray(); for (Capability capability: capabilities) { serializer.writeStartItem(); serializer.writeStringValue(capability.toString().toLowerCase()); } serializer.writeEndArray(); serializer.writeEndObject(); serializer.writeEndObject(); serializer.writeEndObject(); } @Override
@Override public void write(JSONStringWriter serializer) { writeStartReplace(serializer, "$.permissions.[*][?(@.role-name="+JSONStringWriter.toJSON(oldRole)+")]", null ); serializer.writeStartEntry("content"); serializer.writeStartObject(); serializer.writeStartEntry("role-name"); serializer.writeStringValue(newRole); serializer.writeStartEntry("capabilities"); serializer.writeStartArray(); for (Capability capability: newCapabilities) { serializer.writeStartItem(); serializer.writeStringValue(capability.toString().toLowerCase()); } serializer.writeEndArray(); serializer.writeEndObject(); serializer.writeEndObject(); serializer.writeEndObject(); } @Override
protected void adaptPermissions(ContentCreateOptions options, DocumentMetadataHandle metadata) { Set<ContentPermission> contentPermissions = new HashSet<>(); DocumentMetadataHandle.DocumentPermissions permissions = metadata.getPermissions(); for (String role : permissions.keySet()) { for (DocumentMetadataHandle.Capability capability : permissions.get(role)) { ContentCapability contentCapability; if (DocumentMetadataHandle.Capability.EXECUTE.equals(capability)) { contentCapability = ContentCapability.EXECUTE; } else if (DocumentMetadataHandle.Capability.INSERT.equals(capability)) { contentCapability = ContentCapability.INSERT; } else if (DocumentMetadataHandle.Capability.READ.equals(capability)) { contentCapability = ContentCapability.READ; } else if (DocumentMetadataHandle.Capability.UPDATE.equals(capability)) { contentCapability = ContentCapability.UPDATE; } else throw new IllegalArgumentException("Unrecognized permission capability: " + capability); contentPermissions.add(new ContentPermission(contentCapability, role)); } } options.setPermissions(contentPermissions.toArray(new ContentPermission[]{})); } }
@Override public void write(XMLOutputSerializer out) throws Exception { XMLStreamWriter serializer = out.getSerializer(); writeStartReplace(out, "/rapi:metadata/rapi:permissions/rapi:permission[rapi:role-name='"+oldRole+"']", null ); serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(newRole); serializer.writeEndElement(); for (Capability capability: newCapabilities) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.toString().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); serializer.writeEndElement(); } }
private void sendPermissionsImpl(XMLStreamWriter serializer) throws XMLStreamException { if ( getPermissions() == null || getPermissions().size() == 0 ) return; serializer.writeStartElement("rapi", "permissions", REST_API_NS); for (Map.Entry<String, Set<Capability>> permission: getPermissions().entrySet()) { serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(permission.getKey()); serializer.writeEndElement(); for (Capability capability: permission.getValue()) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.toString().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); } serializer.writeEndElement(); } private void sendPropertiesImpl(final XMLStreamWriter serializer) throws XMLStreamException, TransformerFactoryConfigurationError, TransformerException {
@Override public void write(JSONStringWriter serializer) { writeStartInsert(serializer, "$.permissions", "last-child", null); serializer.writeStartEntry("content"); serializer.writeStartObject(); serializer.writeStartEntry("role-name"); serializer.writeStringValue(role); serializer.writeStartEntry("capabilities"); serializer.writeStartArray(); for (Capability capability: capabilities) { serializer.writeStartItem(); serializer.writeStringValue(capability.toString().toLowerCase()); } serializer.writeEndArray(); serializer.writeEndObject(); serializer.writeEndObject(); serializer.writeEndObject(); } @Override
@Override public void write(XMLOutputSerializer out) throws Exception { XMLStreamWriter serializer = out.getSerializer(); writeStartInsert(out, "/rapi:metadata/rapi:permissions", "last-child", null); serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(role); serializer.writeEndElement(); for (Capability capability: capabilities) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.toString().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); serializer.writeEndElement(); } }
private void sendPermissionsImpl(XMLStreamWriter serializer) throws XMLStreamException { serializer.writeStartElement("rapi", "permissions", REST_API_NS); for (Map.Entry<String, Set<Capability>> permission: getPermissions().entrySet()) { serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(permission.getKey()); serializer.writeEndElement(); for (Capability capability: permission.getValue()) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.name().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); } serializer.writeEndElement(); } private void sendPropertiesImpl(final XMLStreamWriter serializer) throws XMLStreamException, TransformerFactoryConfigurationError, TransformerException {
@Override public void write(XMLOutputSerializer out) throws Exception { XMLStreamWriter serializer = out.getSerializer(); writeStartInsert(out, "/rapi:metadata/rapi:permissions", "last-child", null); serializer.writeStartElement("rapi", "permission", REST_API_NS); serializer.writeStartElement("rapi", "role-name", REST_API_NS); serializer.writeCharacters(role); serializer.writeEndElement(); for (Capability capability: capabilities) { serializer.writeStartElement("rapi", "capability", REST_API_NS); serializer.writeCharacters(capability.toString().toLowerCase()); serializer.writeEndElement(); } serializer.writeEndElement(); serializer.writeEndElement(); } }
public static final Capability getValueOf(String name) { if ( name != null ) { name = name.replace('-', '_').toUpperCase(); } return valueOf(name); } }
protected DocumentMetadataHandle buildMetadata() { DocumentMetadataHandle h = new DocumentMetadataHandle(); h = h.withCollections(collections); if (permissions != null) { String[] array = permissions.split(","); for (int i = 0; i < array.length; i += 2) { h.getPermissions().add(array[i], Capability.valueOf(array[i + 1].toUpperCase())); } } return h; }
@Test public void testCapabilityEnum() { assertEquals(Capability.EXECUTE, Capability.getValueOf("execute")); assertEquals(Capability.INSERT, Capability.getValueOf("Insert")); assertEquals(Capability.READ, Capability.getValueOf("READ")); assertEquals(Capability.UPDATE, Capability.getValueOf("upDate")); assertEquals(Capability.NODE_UPDATE, Capability.getValueOf("node-Update")); assertEquals(Capability.NODE_UPDATE, Capability.getValueOf("NODE_UPDATE")); }