@Override public String getSafeDescription() { return "Components requiring additional permission: " + requiredPermission.getPermissionLabel(); } };
public static RequiredPermission valueOfPermissionIdentifier(final String permissionIdentifier) { return Arrays.stream(RequiredPermission.values()) .filter(candidate -> candidate.getPermissionIdentifier().equals(permissionIdentifier)) .findFirst().orElse(null); } }
@Override public CurrentUserEntity getCurrentUser() { final NiFiUser user = NiFiUserUtils.getNiFiUser(); final CurrentUserEntity entity = new CurrentUserEntity(); entity.setIdentity(user.getIdentity()); entity.setAnonymous(user.isAnonymous()); entity.setProvenancePermissions(dtoFactory.createPermissionsDto(authorizableLookup.getProvenance())); entity.setCountersPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getCounters())); entity.setTenantsPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getTenant())); entity.setControllerPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getController())); entity.setPoliciesPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getPolicies())); entity.setSystemPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getSystem())); entity.setCanVersionFlows(CollectionUtils.isNotEmpty(flowRegistryClient.getRegistryIdentifiers())); entity.setRestrictedComponentsPermissions(dtoFactory.createPermissionsDto(authorizableLookup.getRestrictedComponents())); final Set<ComponentRestrictionPermissionDTO> componentRestrictionPermissions = new HashSet<>(); Arrays.stream(RequiredPermission.values()).forEach(requiredPermission -> { final PermissionsDTO restrictionPermissions = dtoFactory.createPermissionsDto(authorizableLookup.getRestrictedComponents(requiredPermission)); final RequiredPermissionDTO requiredPermissionDto = new RequiredPermissionDTO(); requiredPermissionDto.setId(requiredPermission.getPermissionIdentifier()); requiredPermissionDto.setLabel(requiredPermission.getPermissionLabel()); final ComponentRestrictionPermissionDTO componentRestrictionPermissionDto = new ComponentRestrictionPermissionDTO(); componentRestrictionPermissionDto.setRequiredPermission(requiredPermissionDto); componentRestrictionPermissionDto.setPermissions(restrictionPermissions); componentRestrictionPermissions.add(componentRestrictionPermissionDto); }); entity.setComponentRestrictionPermissions(componentRestrictionPermissions); return entity; }
private Set<ExplicitRestrictionDTO> getExplicitRestrictions(final Class<?> cls) { final Restricted restricted = cls.getAnnotation(Restricted.class); if (restricted == null) { return null; } final Restriction[] restrictions = restricted.restrictions(); if (restrictions == null || restrictions.length == 0) { return null; } return Arrays.stream(restrictions).map(restriction -> { final RequiredPermissionDTO requiredPermission = new RequiredPermissionDTO(); requiredPermission.setId(restriction.requiredPermission().getPermissionIdentifier()); requiredPermission.setLabel(restriction.requiredPermission().getPermissionLabel()); final ExplicitRestrictionDTO usageRestriction = new ExplicitRestrictionDTO(); usageRestriction.setRequiredPermission(requiredPermission); usageRestriction.setExplanation(restriction.explanation()); return usageRestriction; }).collect(Collectors.toSet()); }
@Override public String getIdentifier() { return RESTRICTED_COMPONENTS_RESOURCE.getIdentifier() + "/" + requiredPermission.getPermissionIdentifier(); }
Arrays.stream(RequiredPermission.values()).forEach(requiredPermission -> resources.add(ResourceFactory.getRestrictedComponentsResource(requiredPermission)));
final RequiredPermission requiredPermission = RequiredPermission.valueOfPermissionIdentifier(slashRequiredPermission.substring(1));
@Override public String getName() { return requiredPermission.getPermissionLabel(); }
writeSimpleElement(xmlStreamWriter, "td", restriction.requiredPermission().getPermissionLabel()); writeSimpleElement(xmlStreamWriter, "td", restriction.explanation()); xmlStreamWriter.writeEndElement();
private void writeRestriction(final Restriction restriction) throws IOException { writeStartElement("restriction"); final RequiredPermission permission = restriction.requiredPermission(); final String label = permission == null ? null : permission.getPermissionLabel(); writeTextElement("requiredPermission", label); writeTextElement("explanation", restriction.explanation()); writeEndElement(); }