From 315367f20376eda470b5d66aa200d741415d496d Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Wed, 28 Jul 2021 16:25:58 +0200 Subject: [PATCH] =?UTF-8?q?Gruppen=20anlegen=20=C3=A4ndern=20l=C3=B6schen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/templates/adm/adm_import_flow.html | 1 - api/views.py | 1 + .../templates/dasettings/groups_content.html | 22 +++--- dasettings/views.py | 67 +++++++++++++++++- .../__pycache__/settings.cpython-38.pyc | Bin 4514 -> 4512 bytes digitaleagentur/settings.py | 4 +- 6 files changed, 79 insertions(+), 16 deletions(-) diff --git a/adm/templates/adm/adm_import_flow.html b/adm/templates/adm/adm_import_flow.html index dc79e1d..4a41034 100644 --- a/adm/templates/adm/adm_import_flow.html +++ b/adm/templates/adm/adm_import_flow.html @@ -25,7 +25,6 @@ $(document).ready(function(){ // FIRST CALL GROUPS, When Groups finished User will call by Groups createAgencyGroups(groupids[0]); - //DEV //addGroupFolder(); //addDirs(dirids[0]); diff --git a/api/views.py b/api/views.py index 8cbd2c4..787d2ae 100644 --- a/api/views.py +++ b/api/views.py @@ -354,3 +354,4 @@ def NCAddDirs(request): return JsonResponse({'status' : False, 'message': 'AUTH ERROR'}) + diff --git a/dasettings/templates/dasettings/groups_content.html b/dasettings/templates/dasettings/groups_content.html index d7d6af9..4a78727 100644 --- a/dasettings/templates/dasettings/groups_content.html +++ b/dasettings/templates/dasettings/groups_content.html @@ -387,15 +387,15 @@ function updateGroupName(){ }, success: function( data ) { - - if(data['success']){ - window.location.href = window.location.href + "?showtoast=true"; - } - else{ - $("#newGroup").modal("toggle"); - $('#notchange_err').toast('show'); - $("#toast_errcontent").html("Der Gruppenname ist in der Agentur bereits vorhanden!"); - } + if(data['success']){ + //window.location.href = window.location.href + "?showtoast=true"; + $("#newGroup").modal("toggle"); + } + else{ + $("#newGroup").modal("toggle"); + $('#notchange_err').toast('show'); + $("#toast_errcontent").html("Der Gruppenname ist in der Agentur bereits vorhanden!"); + } } }); } @@ -413,9 +413,9 @@ function updateGroupName(){ success: function( data ) { if(data['success']){ - $("#newGroup").modal("toggle"); + $("#newGroup").modal("hide"); $('#notchange_done').toast('show'); - $("#groupname_" + groupupdate_id).html("Gruppe "+data['data']['newvalue']+" "); + $("#groupname_" + groupupdate_id).html("Gruppe "+data['data']['newvalue']+" "); } else{ $('#notchange_err').toast('show'); diff --git a/dasettings/views.py b/dasettings/views.py index 357bf04..c8bbc6e 100644 --- a/dasettings/views.py +++ b/dasettings/views.py @@ -547,6 +547,7 @@ Hier werden die Profilinfos des User zurückgesetzt; Parameter kommen von Settin - Passwort aktualisieren ''' +import requests @login_required def SettingsProfilManagement(request, context): # Check, which form @@ -590,6 +591,10 @@ def SettingsProfilManagement(request, context): context['passwordform'] = passwordform return render(request, 'dasettings/settings.html', context) +def get_random_number(length = 6): + result_str = ''.join(random.choice("0123456789") for i in range(length)) + return result_str + @login_required def SettingsAjaxRouter(request): success = False @@ -645,7 +650,7 @@ def SettingsAjaxRouter(request): tempjob = AgencyJob.objects.get(pk=job_id, agency=request.user.profile.agency) data = {"funcname" : tempjob.name} success = True - # DELETE FINAL AGECY JOB + # DELETE FINAL AGENCY JOB elif request.method == 'GET' and request.GET['action'] == "delete_agencyfunc" : job_id = request.GET['id'] tempjob = AgencyJob.objects.get(pk=job_id, agency=request.user.profile.agency) @@ -663,6 +668,19 @@ def SettingsAjaxRouter(request): group.agencygroupname = request.GET['newvalue'] group.save() data = {"newvalue" : group.agencygroupname} + + # Update Groupname in NC + headers = { + 'Accept' : 'application/json', + 'Access-Control-Allow-Headers' : 'OCS-APIRequest', + 'OCS-APIRequest' : 'true' + } + data_nc = { + "groupid" : group.nc_name, + "newvalue" : request.GET['newvalue'] + } + r = requests.post(settings.NEXTCLOUD_URL + "/apps/agency/updateagencygroup", data=data_nc, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + success = True else: success = False @@ -671,21 +689,66 @@ def SettingsAjaxRouter(request): group = AgencyGroup.objects.get(pk=request.GET['id'], agency=request.user.profile.agency) data = {"groupname" : group.agencygroupname} success = True + # SAVE NEW GROUP ADD GROUP elif request.method == 'GET' and request.GET['action'] == "add_group" : if(checkForGroupName(request, request.GET['newvalue'])): tempgroup = Group(name=str(request.user.profile.agency.pk) + "_" + randomString(8)) tempgroup.save() tempgroup_ag = AgencyGroup(savefordel=False, group=tempgroup, agency=request.user.profile.agency, agencygroupname=request.GET['newvalue']) - tempgroup_ag.save() + success = True data = {"group_id" : tempgroup_ag.pk, "group_name" : tempgroup_ag.agencygroupname} + nc_groupid = "agencymaingroupid_" + str(tempgroup_ag.agency.pk) + "_subgroup_" + get_random_number() + tempgroup_ag.nc_name = nc_groupid + tempgroup_ag.save() + + # ADD group in NC + headers = { + 'Accept' : 'application/json', + 'Access-Control-Allow-Headers' : 'OCS-APIRequest', + 'OCS-APIRequest' : 'true' + } + data_nc = { + "groupid" : nc_groupid, + } + r = requests.post(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/groups", data=data_nc, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + + # Group created, set display name in NC + data_nc = { + "name": tempgroup_ag.agencygroupname, + "id" : nc_groupid + } + + r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/regr", data=data_nc, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + + # Add current User to this Group + # TODO: Hier checken, ob das wirklich nötig ist...? + #data_nc = { + # "groupid" : nc_groupid + #} + + #r = requests.post(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/users/" + request.user.username + "/groups", data=data_nc, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) + else: success = False + # DELETE A GROUP elif request.method == 'GET' and request.GET['action'] == "delete_group" : groupag = AgencyGroup.objects.get(pk=request.GET['id'], agency=request.user.profile.agency) + + # DELETE GROUP IN NC + headers = { + 'Accept' : 'application/json', + 'Access-Control-Allow-Headers' : 'OCS-APIRequest', + 'OCS-APIRequest' : 'true' + } + data_nc = { + "groupid" : groupag.nc_name, + } + r = requests.request("DELETE", settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/groups/" + groupag.nc_name,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) group_to_del = groupag.group group_to_del.delete() success = True + # PERMISSIONS ON GROUP! elif request.method == 'GET' and request.GET['action'] == "change_perm_group" : success = True diff --git a/digitaleagentur/__pycache__/settings.cpython-38.pyc b/digitaleagentur/__pycache__/settings.cpython-38.pyc index 0fc8edd3583be9d6f32fb15376ef6ac143925de3..c78c15e9bc68aac8b69175be76968e0b75e1ae09 100644 GIT binary patch delta 42 vcmZ3ayg->Nl$V!_0SIbcH*(oCb8 delta 44 ycmZ3WyhxcVl$V!_0SM0PZ{)IP=H?1^^mX+Q@^ts~+Z@Ck%gfBh!ajMEz&ilnZ3@!> diff --git a/digitaleagentur/settings.py b/digitaleagentur/settings.py index 8447a4d..22ecf54 100644 --- a/digitaleagentur/settings.py +++ b/digitaleagentur/settings.py @@ -31,8 +31,8 @@ SESSION_COOKIE_AGE = 100*60*60 #CHANNELS_PRESENCE_MAX_AGE = 30 # FOR SUMMERNOTE ORIGIN -X_FRAME_OPTIONS = 'SAMEORIGIN' -#X_FRAME_OPTIONS = 'ALLOWALL' +#X_FRAME_OPTIONS = 'SAMEORIGIN' +X_FRAME_OPTIONS = 'ALLOWALL' # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/