package com.constellio.app.modules.rm.extensions; import com.constellio.app.api.extensions.GenericRecordPageExtension; import com.constellio.app.modules.rm.constants.RMPermissionsTo; import com.constellio.app.modules.rm.wrappers.FilingSpace; import com.constellio.app.modules.rm.wrappers.UniformSubdivision; import com.constellio.data.frameworks.extensions.ExtensionBooleanResult; import com.constellio.model.entities.CorePermissions; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.schemas.MetadataSchemaType; import static com.constellio.app.modules.rm.constants.RMTypes.*; import static com.constellio.data.frameworks.extensions.ExtensionBooleanResult.FORCE_TRUE; import static com.constellio.data.frameworks.extensions.ExtensionBooleanResult.NOT_APPLICABLE; import static java.util.Arrays.asList; public class RMGenericRecordPageExtension extends GenericRecordPageExtension { @Override public ExtensionBooleanResult canManageSchema(User user, MetadataSchemaType schemaType) { if (schemaType.getCode().startsWith(FilingSpace.SCHEMA_TYPE)) { return ExtensionBooleanResult.forceTrueIf(user.has(CorePermissions.MANAGE_SECURITY).globally()); } else if (schemaType.getCode().startsWith(UniformSubdivision.SCHEMA_TYPE)) { return ExtensionBooleanResult.forceTrueIf(user.has(RMPermissionsTo.MANAGE_UNIFORMSUBDIVISIONS).globally()); // } else if (schemaType.getCode().startsWith(RetentionRule.SCHEMA_TYPE)) { // return ExtensionBooleanResult.forceTrueIf(user.has(RMPermissionsTo.MANAGE_RETENTIONRULE).globally()); } else { return NOT_APPLICABLE; } } @Override public ExtensionBooleanResult isSchemaTypeConfigurable(MetadataSchemaType schemaType) { return asList(RETENTION_RULE, UNIFORM_SUBDIVISION, CONTAINER_RECORD).contains(schemaType.getCode()) ? FORCE_TRUE : NOT_APPLICABLE; } }