Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
#18 Cleanup, some comments
  • Loading branch information
rjrudin committed Jun 9, 2015
commit 1682da337740d039a55ffa0c89c0a75d0f83e29f
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
import com.marklogic.xcc.ContentCapability;
import com.marklogic.xcc.ContentPermission;

/**
* Simple implementation that expects permissions to be comma-delimited in the format
* role1,capability1,role2,capability2,etc - just like when using mlcp.
*
*/
public class CommaDelimitedPermissionsParser implements PermissionsParser {

@Override
Expand All @@ -15,21 +20,22 @@ public ContentPermission[] parsePermissions(String text) {
String[] tokens = text.split(",");
for (int i = 0; i < tokens.length; i += 2) {
String role = tokens[i];
String capability = tokens[i + 1];

ContentCapability cc = ContentCapability.READ;
if (capability.equals("execute")) {
cc = ContentCapability.EXECUTE;
} else if (capability.equals("insert")) {
cc = ContentCapability.INSERT;
} else if (capability.equals("update")) {
cc = ContentCapability.UPDATE;
}

list.add(new ContentPermission(cc, role));
list.add(new ContentPermission(parseCapability(tokens[i + 1]), role));
}
}
return list.toArray(new ContentPermission[] {});
}

protected ContentCapability parseCapability(String capability) {
if (capability.equals("execute")) {
return ContentCapability.EXECUTE;
} else if (capability.equals("insert")) {
return ContentCapability.INSERT;
} else if (capability.equals("update")) {
return ContentCapability.UPDATE;
} else if (capability.equals("read")) {
return ContentCapability.READ;
}
throw new IllegalArgumentException("Unrecognized content capability: " + capability);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

import com.marklogic.xcc.DocumentFormat;

/**
* Default impl that currently doesn't provide any support for binary. Feel free to enhance this, subclass it, or roll
* your own.
*/
public class DefaultDocumentFormatGetter implements DocumentFormatGetter {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

import com.marklogic.xcc.DocumentFormat;

/**
* Encapsulates the logic for determining the document format of a given file.
*/
public interface DocumentFormatGetter {

public DocumentFormat getDocumentFormat(File file);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import com.marklogic.xcc.ContentPermission;

/**
* Strategy interface for how XCC permissions are parsed from text.
*/
public interface PermissionsParser {

public ContentPermission[] parsePermissions(String text);
Expand Down