gruppenimport fertig

This commit is contained in:
holger.trampe 2021-07-27 00:05:39 +02:00
parent 3fd036f645
commit 9c8d018e09
2 changed files with 64 additions and 7 deletions

View File

@ -19,6 +19,7 @@
console.log('{{ nclink }}');
})
var groupcounter = 0;
function createAgencyGroups(groupid){
$.ajax({
url: "{% url 'api:apiaddgroup' %}",
@ -32,7 +33,13 @@
'groupid' : groupid
},
success: function(data){
console.log('succes: '+data);
if(data['status'] == true){
$("#groups_process_groups").append('<p>' + data['message'] + "</p>");
groupcounter += 1;
if(groupcounter < groupids.length){
createAgencyGroups(groupids[groupcounter]);
}
}
},
error: function(e){
console.log(e);

View File

@ -124,19 +124,69 @@ def userChangedInNc(request, uid, sid):
return JsonResponse({"status" : "NO AUTH"})
from requests.auth import HTTPBasicAuth
import random
import string
from django.contrib.auth.models import Group
from users.models import AgencyGroup
def get_random_number(length = 6):
result_str = ''.join(random.choice("0123456789") for i in range(length))
return result_str
# Returns a new groupID for NC by Groupname and Agency
def create_group_id(agencygroupname, agency):
newgroupid = ""
pregroupstr = "agencymaingroupid_"
if(agencygroupname == "Mitarbeiter"):
newgroupid = pregroupstr + str(agency.pk)
# NORMAL GROUOPS
elif(agencygroupname == "Administratoren"):
newgroupid = pregroupstr + str(agency.pk) + "_defaultadmingroup"
elif(agencygroupname == "Notfallhilfe"):
newgroupid = pregroupstr + str(agency.pk) + "_recover"
else:
newgroupid = pregroupstr + str(agency.pk) + "_subgroup_" + get_random_number()
return newgroupid
@api_view(['POST'], )
def NCAddGroup(request):
if request.method == "POST":
data = {
"groupid": "Unsere Spatengruppe"
}
group = Group.objects.get(name=request.POST.get('groupid'))
aggroup = AgencyGroup.objects.get(group=group)
agency = aggroup.agency
newgroupid = create_group_id(aggroup.agencygroupname, agency)
headers = {
'Accept' : 'application/json',
'Access-Control-Allow-Headers' : 'OCS-APIRequest',
'OCS-APIRequest' : 'true'
}
r = requests.post(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/groups", data=data, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
print(r.text)
request_status = False
trycounter = 0
while(request_status == False or trycounter < 3):
data = {
"groupid" : newgroupid
}
r = requests.post(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/groups", data=data, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
r_status = json.loads(r.text)
if(r_status['ocs']['meta']['statuscode'] == 100):
#if(100 == 100):
data = {
"name": aggroup.agencygroupname,
"id" : newgroupid
}
headers = {
'Authorization': 'Bearer ' + request.COOKIES['nc_session_id']
}
# Group created, set display name
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/regr", data=data, headers=headers)
print(r.text)
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' erzeugt - ID: ' + newgroupid})
else:
trycounter += 1
newgroupid = create_group_id(aggroup.agencygroupname, agency)
return JsonResponse({"status" : "NO AUTH"})