From 995cb02aeb0c75a23989462ca1c389f6f26e625e Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 31 Mar 2018 11:42:36 +0200 Subject: [PATCH] oauth2: add command oauth2-put-document (fixes #22948) --- fargo/oauth2/management/__init__.py | 0 fargo/oauth2/management/commands/__init__.py | 0 .../management/commands/oauth2-put-document.py | 33 +++++++++++++++++++++ tests/pdf-sample.pdf | Bin 0 -> 7945 bytes tests/test_oauth2.py | 23 ++++++++++++++ 5 files changed, 56 insertions(+) create mode 100644 fargo/oauth2/management/__init__.py create mode 100644 fargo/oauth2/management/commands/__init__.py create mode 100644 fargo/oauth2/management/commands/oauth2-put-document.py create mode 100644 tests/pdf-sample.pdf diff --git a/fargo/oauth2/management/__init__.py b/fargo/oauth2/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/fargo/oauth2/management/commands/__init__.py b/fargo/oauth2/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/fargo/oauth2/management/commands/oauth2-put-document.py b/fargo/oauth2/management/commands/oauth2-put-document.py new file mode 100644 index 0000000..02295dd --- /dev/null +++ b/fargo/oauth2/management/commands/oauth2-put-document.py @@ -0,0 +1,33 @@ +import os + +from django.core.management.base import BaseCommand +from django.core.files.base import ContentFile +from django.core.urlresolvers import reverse + +from fargo.utils import make_url +from fargo.fargo.models import Document +from fargo.oauth2.models import OAuth2TempFile, OAuth2Client +from fargo.fargo.utils import cleanup + + +class Command(BaseCommand): + help = 'Push documents inside fargo, returns URLs' + + def add_arguments(self, parser): + parser.add_argument('--client-id', type=int) + parser.add_argument('redirect_uri') + parser.add_argument('paths', nargs='+') + + def handle(self, redirect_uri, paths, client_id, **options): + client = OAuth2Client.objects.get(id=client_id) + for path in paths: + with open(path) as file_object: + filename = os.path.basename(path) + f = ContentFile(file_object.read(), name=filename) + document = Document.objects.get_by_file(f) + oauth2_document = OAuth2TempFile.objects.create( + client=client, + document=document, + filename=filename) + uri = reverse('oauth2-put-document-authorize', args=[oauth2_document.pk]) + print 'https://localhost:8000' + make_url(uri, redirect_uri=redirect_uri) diff --git a/tests/pdf-sample.pdf b/tests/pdf-sample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f698ff53d41575b222e6778f87f9e9fd8da4f2b1 GIT binary patch literal 7945 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