예제 #1
0
        description="WEB server for file transfer",
        formatter_class=argparse.RawDescriptionHelpFormatter)

    parser.add_argument("-d", "--dir", type=Path, default=Path().cwd())
    parser.add_argument("--port", type=int, default=60000)
    parser.add_argument("-u", "--user", type=str, default="nano")
    parser.add_argument("-p",
                        "--passwd",
                        type=str,
                        default=generate_password(10))

    args = parser.parse_args()

    path_view = PathView.as_view('path_view')

    path_view_auth = auth.login_required(path_view)
    app.add_url_rule('/', view_func=path_view_auth)

    app.add_url_rule('/<path:p>', view_func=path_view_auth)

    users.update({args.user: generate_password_hash(args.passwd)})

    root = Path(args.dir).resolve().absolute()

    port = str(args.port)

    cert_file = temp_dir / "cert_file.crt"
    key_file = temp_dir / "key_file.key"
    create_self_signed_cert(cert_file, key_file)

    upnp_add_port_mapping(internal_port=args.port,
예제 #2
0
파일: api.py 프로젝트: alairock/airduct

def optional_require(func):
    @wraps(func)
    def inside_optional_require(*args, **kwargs):
        require_login = getenv('BASIC-AUTH_ENABLED', False)
        if require_login:
            # mad props to @matt from pythondev.slack.com for () at the end of old_login_required(func)()
            return old_login_required(func)(*args, **kwargs)
        else:
            return func(*args, **kwargs)

    return inside_optional_require


auth.login_required = optional_require


@app.route('/heartbeat')
def heartbeat():
    return jsonify({'success': True})


@app.route('/')
def home():
    return jsonify({'success': True})


@app.route('/api/schedules')
@auth.login_required
def schedules():