package org.ovirt.engine.core.bll; import java.util.Objects; import java.util.function.Predicate; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; import org.ovirt.engine.core.common.businessentities.Permission; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.PermissionDao; @Named @Singleton final class IsSystemSuperUserPredicate implements Predicate<Guid> { private final PermissionDao permissionDao; @Inject public IsSystemSuperUserPredicate(PermissionDao permissionDao) { Objects.requireNonNull(permissionDao, "permissionDao cannot be null"); this.permissionDao = permissionDao; } @Override public boolean test(Guid userId) { Permission superUserPermission = getPermissionDao() .getForRoleAndAdElementAndObjectWithGroupCheck( PredefinedRoles.SUPER_USER.getId(), userId, MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID); return superUserPermission != null; } PermissionDao getPermissionDao() { return permissionDao; } }