import und login verbessert

This commit is contained in:
holger.trampe 2021-08-01 13:26:12 +02:00
parent 067daa635c
commit 5c2aaab457
4 changed files with 39 additions and 26 deletions

View File

@ -25,6 +25,7 @@
$(document).ready(function(){
// FIRST CALL GROUPS, When Groups finished User will call by Groups
createAgencyGroups(groupids[0]);
//DEV
//addGroupFolder();
//addDirs(dirids[0]);

View File

@ -182,27 +182,29 @@ def NCAddGroup(request):
"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))
try:
r_status = json.loads(r.text)
if(r_status['ocs']['meta']['statuscode'] == 100):
# Group created, save new group id in Django
aggroup.nc_name = newgroupid
aggroup.save()
r_status = json.loads(r.text)
if(r_status['ocs']['meta']['statuscode'] == 100):
# Group created, save new group id in Django
aggroup.nc_name = newgroupid
aggroup.save()
# Group created, set display name in NC
data = {
"name": aggroup.agencygroupname,
"id" : newgroupid
}
headers = {
'Authorization': 'Bearer ' + request.user.profile.nc_sid
}
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/regr", data=data, headers=headers)
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' erzeugt - ID: ' + newgroupid})
else:
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen'})
except:
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen' + r.text})
# Group created, set display name in NC
data = {
"name": aggroup.agencygroupname,
"id" : newgroupid
}
headers = {
'Accept' : 'application/json',
'Access-Control-Allow-Headers' : 'OCS-APIRequest',
'OCS-APIRequest' : 'true'
}
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/regr", data=data, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' erzeugt - ID: ' + newgroupid})
else:
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen'})
#except:
# return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen' + r.text})
return JsonResponse({"status" : "NO AUTH"})
@ -267,9 +269,11 @@ def NCAddGroupFolder(request):
"aid" : str(agency.pk)
}
headers = {
'Authorization': 'Bearer ' + request.user.profile.nc_sid
'Accept' : 'application/json',
'Access-Control-Allow-Headers' : 'OCS-APIRequest',
'OCS-APIRequest' : 'true'
}
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers)
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
print(r.text)
return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!'})
@ -366,7 +370,7 @@ def NCAddDirs(request):
@api_view(['GET'], )
def NCTest(request):
print(request.headers)
#print(request.headers)
return JsonResponse({'status' : False, 'message': 'AUTH ERROR'})
# Setting the Users Data for logging

View File

@ -124,8 +124,14 @@ def getNCLoggedUserBySession(sid):
r = requests.get(settings.NEXTCLOUD_URL + "ocs/v2.php/apps/user_status/api/v1/user_status", headers=nc_login_headers)
xpars = xmltodict.parse(r.text)
js = json.dumps(xpars)
final_json = json.loads(js)
return final_json['ocs']['data']['userId']
try:
final_json = json.loads(js)
return final_json['ocs']['data']['userId']
except:
return redirect('users-dashboard')

View File

@ -85,11 +85,13 @@ from django.views.generic import TemplateView
# Entry-Point for NC
def ncLogin(request, uid):
logout(request)
print(uid)
user = User.objects.get(username=uid)
if(getNCLoggedUserBySession(user.profile.nc_sid) == uid):
login(request, user)
return redirect('users-dashboard')
return render(request, 'users/nclog.html',{'error' : "Die Daten der Digitalen Agentur stehen aktuell nicht zur Verfügung. Bitte loggen Sie sich aus und wieder ein. Sollten Sie diese Meldung weiterhin sehen, wenden Sie sich an den Support."})
return redirect('nclog', uid=uid)
#return render(request, 'users/nclog.html',{'error' : "Bereite daten vor..."})
def getICSFile(request, ag):
if 'HTTP_AUTHORIZATION' in request.META: