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(){ $(document).ready(function(){
// FIRST CALL GROUPS, When Groups finished User will call by Groups // FIRST CALL GROUPS, When Groups finished User will call by Groups
createAgencyGroups(groupids[0]); createAgencyGroups(groupids[0]);
//DEV //DEV
//addGroupFolder(); //addGroupFolder();
//addDirs(dirids[0]); //addDirs(dirids[0]);

View File

@ -182,27 +182,29 @@ def NCAddGroup(request):
"groupid" : newgroupid "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 = 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()
# Group created, set display name in NC r_status = json.loads(r.text)
data = { if(r_status['ocs']['meta']['statuscode'] == 100):
"name": aggroup.agencygroupname, # Group created, save new group id in Django
"id" : newgroupid aggroup.nc_name = newgroupid
} aggroup.save()
headers = {
'Authorization': 'Bearer ' + request.user.profile.nc_sid # Group created, set display name in NC
} data = {
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/regr", data=data, headers=headers) "name": aggroup.agencygroupname,
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' erzeugt - ID: ' + newgroupid}) "id" : newgroupid
else: }
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen'}) headers = {
except: 'Accept' : 'application/json',
return JsonResponse({'status' : True, 'message': 'Gruppe ' + aggroup.agencygroupname + ' (ID '+aggroup.group.name+') konnte nicht erzeugt werden. Bitte manuell prüfen' + r.text}) '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"}) return JsonResponse({"status" : "NO AUTH"})
@ -267,9 +269,11 @@ def NCAddGroupFolder(request):
"aid" : str(agency.pk) "aid" : str(agency.pk)
} }
headers = { 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) print(r.text)
return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!'}) return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!'})
@ -366,7 +370,7 @@ def NCAddDirs(request):
@api_view(['GET'], ) @api_view(['GET'], )
def NCTest(request): def NCTest(request):
print(request.headers) #print(request.headers)
return JsonResponse({'status' : False, 'message': 'AUTH ERROR'}) return JsonResponse({'status' : False, 'message': 'AUTH ERROR'})
# Setting the Users Data for logging # 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) 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) xpars = xmltodict.parse(r.text)
js = json.dumps(xpars) 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 # Entry-Point for NC
def ncLogin(request, uid): def ncLogin(request, uid):
logout(request) logout(request)
print(uid)
user = User.objects.get(username=uid) user = User.objects.get(username=uid)
if(getNCLoggedUserBySession(user.profile.nc_sid) == uid): if(getNCLoggedUserBySession(user.profile.nc_sid) == uid):
login(request, user) login(request, user)
return redirect('users-dashboard') 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): def getICSFile(request, ag):
if 'HTTP_AUTHORIZATION' in request.META: if 'HTTP_AUTHORIZATION' in request.META: