human
I wrote the below code

    def decorator(f):
        @app_view
        @login_required
        @functools.wraps(f)
        def wrapper(request, addon, *args, **kw):
            from mkt.submit.views import _resume
            def fun():
                return f(request, addon_id=addon.id, addon=addon, *args, **kw)
            if (allow_editors and acl.check_reviewer(request)):
                return fun()
            if (staff and (acl.action_allowed(request, 'Apps', 'Configure') or acl.action_allowed(request, 'Apps', 'ViewConfiguration'))):
                return fun()
            if support:
                if (acl.check_addon_ownership(request, addon, support=True) or acl.check_addon_ownership(request, addon, dev=True)):
                    return fun()
            elif (request.method == 'POST'):
                if acl.check_addon_ownership(request, addon, dev=(not owner_for_post)):
                    return fun()
            elif acl.check_addon_ownership(request, addon, viewer=True, ignore_disabled=True):
                if (not skip_submit_check):
                    try:
                        step = addon.appsubmissionchecklist.get_next()
                    except ObjectDoesNotExist:
                        step = None
                    if ((not getattr(f, 'submitting', False)) and step):
                        return _resume(addon, step)
                return fun()
            raise PermissionDenied
        return wrapper
    if callable(owner_for_post):
        f = owner_for_post
        owner_for_post = False
        return decorator(f)
    else:
        return decorator

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def dev_required(owner_for_post=False, allow_editors=False, support=False, webapp=False, skip_submit_check=False, staff=False):