@Override public boolean isGrantableFrom(ResourcePermission other) { if (other == null) { return false; } if (!other.isWithGrantOption()) { return false; } return this.equalsIgnoreGrantOption(other); }
public static ResourcePermission getInstance(ResourcePermission resourcePermission) { if (resourcePermission instanceof ResourcePermissions.ResourcePermissionImpl) { return resourcePermission; } final ResourcePermission verifiedPermission; if (resourcePermission.isWithGrantOption()) { verifiedPermission = getInstanceWithGrantOption(resourcePermission.getPermissionName()); } else { verifiedPermission = getInstance(resourcePermission.getPermissionName()); } // validate system permission name and id matched if (resourcePermission.isSystemPermission() && verifiedPermission.getSystemPermissionId() != resourcePermission.getSystemPermissionId()) { throw new IllegalArgumentException( "Invalid system permission id for resource permission: " + resourcePermission); } return verifiedPermission; }