grant a privilege for roles (for example editors) and higher

If you use the Members plugin, you can set it up like you want. It also has the possibility to add custom roles (your edit_cpt and so on)

also a lot of plugins also work that way:

<?php if ( current_user_can('manage_options') ) { do_something(); } ?>