In novaclient/v1_1/flavors.py the FlavorManager.list method defaults to is_public=True, which means that it will only ever resolve flavours which are marked public, even if the user has permission to access non-public flavours.
If we change this to is_public=None, then the server side will do the right thing - privileged users will be shown all images they can access and unprivileged users will still be restricted to just public images.
The problem turns out to be on the client side.
In novaclient/ v1_1/flavors. py the FlavorManager.list method defaults to is_public=True, which means that it will only ever resolve flavours which are marked public, even if the user has permission to access non-public flavours.
If we change this to is_public=None, then the server side will do the right thing - privileged users will be shown all images they can access and unprivileged users will still be restricted to just public images.