From b12685070fc50fd281b03481f2ebd40b044ae231 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 23 May 2019 14:56:47 +0200
Subject: [PATCH] Make it possible to force anonymous connection

---
 funkwhale_cli/cli.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/funkwhale_cli/cli.py b/funkwhale_cli/cli.py
index fa892e3..70252b5 100644
--- a/funkwhale_cli/cli.py
+++ b/funkwhale_cli/cli.py
@@ -118,14 +118,14 @@ class lazy_credential():
         return bool(self.value)
 
 
-def set_server(ctx, url, token):
+def set_server(ctx, url, token, use_auth=True):
     ctx.ensure_object(dict)
     ctx.obj["SERVER_URL"] = url
     parsed = urllib.parse.urlparse(url)
     ctx.obj["SERVER_NETLOC"] = parsed.netloc
     ctx.obj["SERVER_PROTOCOL"] = parsed.scheme
     try:
-        token = token or lazy_credential(url, "_")
+        token = (token or lazy_credential(url, "_")) if use_auth else None
     except ValueError as e:
         raise click.ClickException("Error while retrieving password from keyring: {}. Your password may be incorrect.".format(e.args[0]))
     except Exception as e:
@@ -154,6 +154,13 @@ def set_server(ctx, url, token):
     default=False,
     help="Disable logging",
 )
+@click.option(
+    "--no-login",
+    envvar="FUNKWHALE_NO_LOGIN",
+    is_flag=True,
+    default=False,
+    help="Disable authentication/keyring",
+)
 @SERVER_DECORATOR
 @TOKEN_DECORATOR
 @click_log.simple_verbosity_option(logs.logger, expose_value=True)
@@ -161,7 +168,7 @@ def set_server(ctx, url, token):
 def cli(ctx, env_file, url, verbosity, token, quiet):
     ctx.ensure_object(dict)
     logs.logger.disabled = quiet
-    set_server(ctx, url, token)
+    set_server(ctx, url, token, use_auth=not no_login)
 
 
 @cli.command()
-- 
GitLab