def METHOD_NAME(request: UserRequest, *args: P.args, **kwargs: P.kwargs):
    _allow_create = allow_create and CONFIG.allow_newstu_appoint
    context = {}
    if not request.user.is_valid():
        _allow_create = False
    cur_part = get_participant(request.user)
    if cur_part is None and _allow_create:
        cur_part = _create_account(request)
        if cur_part is not None:
            succeed('账号不存在，已为您自动创建账号！', context)
        else:
            warn_message = ('创建地下室账户失败，请联系管理员为您解决。'
                            '在此之前，您可以查看实时人数。')
            wrong(warn_message, context)
    if auth_func is not None and not auth_func(cur_part):
        # TODO: task 0 lzp, log it and notify admin
        if cur_part is not None:
            warn_message = ('您访问了未授权的页面，如需访问请先登录。')
            wrong(warn_message, context)
        elif not _allow_create:
            warn_message = ('本页面暂不支持地下室账户创建，您可以先查看实时人数。')
            wrong(warn_message, context)
    if context:
        return redirect(message_url(context, reverse('Appointment:index')))
    return view_function(request, *args, **kwargs)