def must_have_permission(permittee, target_obj_or_class, perm_name, allow_redirect=True):
    if isinstance(permittee, str):
        permittee = get_permittee_from_threadlocals(permittee)
        
    if not has_permission(permittee, target_obj_or_class, perm_name):
        raise PermissionDenied(
            perm_name, target_obj_or_class,
            permittee, allow_redirect=allow_redirect)
Returns the migration that comes after this one in the sequence.
dataset/ETHPy150Open fp7-ofelia/ocf/expedient/src/python/expedient/common/permissions/shortcuts.py/must_have_permission--crossover with--dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/South-1.0.2/south/migration/base.py/Migration.next