From 720439c79821adef6bcafddb24def8afc9cd74cc Mon Sep 17 00:00:00 2001 From: Holger Trampe Date: Sat, 23 Oct 2021 20:15:06 +0200 Subject: [PATCH] as --- api/views.py | 66 +++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/api/views.py b/api/views.py index bf399ae..6d1223f 100644 --- a/api/views.py +++ b/api/views.py @@ -379,42 +379,44 @@ def NCAddStandardFiles(request): def NCAddDirs(request): if request.method == "GET": agency = Agency.objects.get(pk=request.GET.get('agencyid')) - dir_to_create = DataDir.objects.get(pk=request.GET.get('dirid')) - sharestring = "" - if(dir_to_create.visibleby.all().count() > 0): - sharestring = " Ordner nur sichtbar durch: " - for cd in dir_to_create.visibleby.all(): - sharestring += cd.agencygroupname + " (" + cd.nc_name + ")" - # Dir has no parent, create - if(len(dir_to_create.parent.name) == 0): - r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt. ' + sharestring + " RESP: " + r.text}) - # Dir has parents, start thinking :) - else: - datadir_parent = None - datadir_parent_dirnames = [] - if(dir_to_create.parent != None and len(dir_to_create.parent.name) > 0): - datadir_parent = dir_to_create.parent - datadir_parent_dirnames = [dir_to_create.parent.name] + if(DataDir.objects.get(pk=request.GET.get('dirid')).exists()): + dir_to_create = DataDir.objects.get(pk=request.GET.get('dirid')) + sharestring = "" + if(dir_to_create.visibleby.all().count() > 0): + sharestring = " Ordner nur sichtbar durch: " + for cd in dir_to_create.visibleby.all(): + sharestring += cd.agencygroupname + " (" + cd.nc_name + ")" + # Dir has no parent, create + if(len(dir_to_create.parent.name) == 0): + r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt. ' + sharestring + " RESP: " + r.text}) + # Dir has parents, start thinking :) + else: + datadir_parent = None + datadir_parent_dirnames = [] + if(dir_to_create.parent != None and len(dir_to_create.parent.name) > 0): + datadir_parent = dir_to_create.parent + datadir_parent_dirnames = [dir_to_create.parent.name] - if(datadir_parent.parent != None): - while(datadir_parent.parent != None and len(datadir_parent.parent.name) > 0): - datadir_parent_dirnames.append(datadir_parent.parent.name) - datadir_parent = datadir_parent.parent + if(datadir_parent.parent != None): + while(datadir_parent.parent != None and len(datadir_parent.parent.name) > 0): + datadir_parent_dirnames.append(datadir_parent.parent.name) + datadir_parent = datadir_parent.parent - if(len(datadir_parent_dirnames) > 0): - datadir_parent_dirnames = datadir_parent_dirnames[::-1] - d_prestring = "" - for d in datadir_parent_dirnames: - new_folder = d_prestring + "/" +d - r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - d_prestring += "/" + d + if(len(datadir_parent_dirnames) > 0): + datadir_parent_dirnames = datadir_parent_dirnames[::-1] + d_prestring = "" + for d in datadir_parent_dirnames: + new_folder = d_prestring + "/" +d + r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + d_prestring += "/" + d - r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ d_prestring + "/" + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - - return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt.' + sharestring + " RESP: " + r.text + " " + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk) + d_prestring + "/" + dir_to_create.name}) + r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ d_prestring + "/" + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) - + return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt.' + sharestring + " RESP: " + r.text + " " + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk) + d_prestring + "/" + dir_to_create.name}) + else: + return JsonResponse({'status' : False, 'message': 'Datei nicht gefunden'}) + return JsonResponse({'status' : False, 'message': 'AUTH ERROR'}) @api_view(['GET'], )