
org.molgenis.data.security.permission.PermissionSetUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of molgenis-data-security Show documentation
Show all versions of molgenis-data-security Show documentation
Security data model and data layer security.
The newest version!
package org.molgenis.data.security.permission;
import static java.lang.String.format;
import static org.molgenis.security.core.PermissionSet.COUNT_MASK;
import static org.molgenis.security.core.PermissionSet.READ_MASK;
import static org.molgenis.security.core.PermissionSet.READ_META_MASK;
import static org.molgenis.security.core.PermissionSet.WRITEMETA_MASK;
import static org.molgenis.security.core.PermissionSet.WRITE_MASK;
import java.util.Optional;
import org.molgenis.data.security.permission.model.LabelledPermission;
import org.molgenis.security.core.PermissionSet;
import org.springframework.security.acls.model.AccessControlEntry;
public class PermissionSetUtils {
public static final String READMETA = "READMETA";
public static final String COUNT = "COUNT";
public static final String READ = "READ";
public static final String WRITE = "WRITE";
public static final String WRITEMETA = "WRITEMETA";
public static final String UNEXPECTED_MASK_MESSAGE = "Unexpected mask '%d'";
private PermissionSetUtils() {}
public static PermissionSet getPermissionSet(AccessControlEntry accessControlEntry) {
int mask = accessControlEntry.getPermission().getMask();
switch (mask) {
case READ_META_MASK:
return PermissionSet.READMETA;
case COUNT_MASK:
return PermissionSet.COUNT;
case READ_MASK:
return PermissionSet.READ;
case WRITE_MASK:
return PermissionSet.WRITE;
case WRITEMETA_MASK:
return PermissionSet.WRITEMETA;
default:
throw new IllegalArgumentException(format(UNEXPECTED_MASK_MESSAGE, mask));
}
}
public static PermissionSet paramValueToPermissionSet(String paramValue) {
switch (paramValue.toUpperCase()) {
case READMETA:
return PermissionSet.READMETA;
case COUNT:
return PermissionSet.COUNT;
case READ:
return PermissionSet.READ;
case WRITE:
return PermissionSet.WRITE;
case WRITEMETA:
return PermissionSet.WRITEMETA;
default:
throw new IllegalArgumentException(format("Unknown PermissionSet '%s'", paramValue));
}
}
public static Optional getPermissionStringValue(LabelledPermission labelledPermission) {
PermissionSet permissionSet = labelledPermission.getPermission();
String permissionStringValue = getPermissionStringValue(permissionSet);
return Optional.ofNullable(permissionStringValue);
}
public static String getPermissionStringValue(PermissionSet permissionSet) {
if (permissionSet != null) {
int mask = permissionSet.getMask();
switch (mask) {
case READ_META_MASK:
return READMETA;
case COUNT_MASK:
return COUNT;
case READ_MASK:
return READ;
case WRITE_MASK:
return WRITE;
case WRITEMETA_MASK:
return WRITEMETA;
default:
throw new IllegalArgumentException(format(UNEXPECTED_MASK_MESSAGE, mask));
}
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy