gruppenimport fertig
This commit is contained in:
parent
3fd036f645
commit
9c8d018e09
|
|
@ -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);
|
||||
|
|
|
|||
62
api/views.py
62
api/views.py
|
|
@ -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"})
|
||||
|
|
|
|||
Loading…
Reference in New Issue