cookies raus DB rein
This commit is contained in:
parent
fe07ae0e39
commit
067daa635c
|
|
@ -725,6 +725,5 @@ class AdmImportFlow(TemplateView):
|
|||
|
||||
# LINK TO THE NC-INSTANCE
|
||||
context.update({'nclink' : settings.NEXTCLOUD_URL})
|
||||
context.update({'ncid' : self.request.COOKIES['nc_session_id']})
|
||||
context.update({'nccs' : self.request.COOKIES['csrftoken']})
|
||||
context.update({'ncid' : self.request.user.profile.nc_sid})
|
||||
return context
|
||||
|
|
|
|||
26
api/views.py
26
api/views.py
|
|
@ -1,3 +1,4 @@
|
|||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from cloud.models import DataFile, DataDir
|
||||
from django.shortcuts import redirect
|
||||
from rest_framework.views import APIView
|
||||
|
|
@ -98,6 +99,8 @@ def migrateAgencyUsers(request, pk):
|
|||
def apilogout(request, uid):
|
||||
print("LOGOUT: " + str(uid))
|
||||
user = User.objects.get(username=uid)
|
||||
user.profile.nc_sid = ""
|
||||
user.save()
|
||||
[s.delete() for s in Session.objects.all() if s.get_decoded().get('_auth_user_hash') == user.get_session_auth_hash()]
|
||||
return JsonResponse({'res' : 'ok'})
|
||||
|
||||
|
|
@ -107,6 +110,7 @@ import xmltodict, json, requests
|
|||
@api_view(['GET'], )
|
||||
def userChangedInNc(request, uid, sid):
|
||||
user = User.objects.get(username=uid)
|
||||
print("SID: " + sid)
|
||||
if(user.is_authenticated and getNCLoggedUserBySession(sid) == uid):
|
||||
nc_login_headers = {'Authorization' : 'Bearer ' + sid}
|
||||
r = requests.get(settings.NEXTCLOUD_URL + "ocs/v1.php/cloud/users/" + uid, headers=nc_login_headers)
|
||||
|
|
@ -191,7 +195,7 @@ def NCAddGroup(request):
|
|||
"id" : newgroupid
|
||||
}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + request.COOKIES['nc_session_id']
|
||||
'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})
|
||||
|
|
@ -263,7 +267,7 @@ def NCAddGroupFolder(request):
|
|||
"aid" : str(agency.pk)
|
||||
}
|
||||
headers = {
|
||||
'Authorization': 'Bearer ' + request.COOKIES['nc_session_id']
|
||||
'Authorization': 'Bearer ' + request.user.profile.nc_sid
|
||||
}
|
||||
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers)
|
||||
print(r.text)
|
||||
|
|
@ -365,13 +369,13 @@ def NCTest(request):
|
|||
print(request.headers)
|
||||
return JsonResponse({'status' : False, 'message': 'AUTH ERROR'})
|
||||
|
||||
|
||||
@api_view(['GET'], )
|
||||
# Setting the Users Data for logging
|
||||
@api_view(['POST'], )
|
||||
def SetUserData(request):
|
||||
print("Check login status...")
|
||||
if(request.COOKIES['nc_username'] != None and getNCLoggedUserBySession(request.COOKIES['nc_session_id'])):
|
||||
login(request, User.objects.get(username=request.COOKIES['nc_username']))
|
||||
else:
|
||||
logout(request)
|
||||
|
||||
return JsonResponse({'stat' : True})
|
||||
try:
|
||||
user = User.objects.get(username=request.POST.get('uid'))
|
||||
user.profile.nc_sid = request.POST.get('sid')
|
||||
user.save()
|
||||
return JsonResponse({'message' : 'A user was found in request, sid set!'})
|
||||
except:
|
||||
return JsonResponse({'message' : 'No user is in this request.'})
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -215,10 +215,6 @@ LOGIN_URL = 'login'
|
|||
#LOGIN_URL = NEXTCLOUD_URL
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
SESSION_COOKIE_DOMAIN = "digitale-agentur.com"
|
||||
|
||||
#SESSION_COOKIE_DOMAIN = "localhost"
|
||||
|
||||
|
||||
'''
|
||||
SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) + '/..'
|
||||
|
|
|
|||
|
|
@ -110,19 +110,6 @@ def checkAbsenceWorkdayCollideDelete(absence):
|
|||
'''
|
||||
|
||||
import xmltodict, json, requests
|
||||
import urllib.request as urllib2
|
||||
from django.contrib.auth import login, logout
|
||||
'''
|
||||
def ncLogin(request, uid):
|
||||
#try:
|
||||
logout(request)
|
||||
useridFromServer = getNCLoggedUserBySession(request.COOKIES['nc_session_id'])
|
||||
if(uid == urllib2.unquote(request.COOKIES['nc_username']) and useridFromServer == uid):
|
||||
login(request, User.objects.get(username=urllib2.unquote(request.COOKIES['nc_username'])))
|
||||
return redirect('users-dashboard')
|
||||
#return redirect('login')
|
||||
#return redirect('users-dashboard')
|
||||
'''
|
||||
'''
|
||||
getNCLoggedUserBySession
|
||||
|
||||
|
|
|
|||
|
|
@ -250,13 +250,13 @@ def StandardAdd(request, id=False):
|
|||
possibleFilesByVisible = []
|
||||
# NC FILE
|
||||
# Data for the new User
|
||||
if(request.user.is_authenticated and getNCLoggedUserBySession(request.COOKIES['nc_session_id'])):
|
||||
if(request.user.is_authenticated and getNCLoggedUserBySession(request.user.profile.nc_sid)):
|
||||
|
||||
data_nc = {
|
||||
"Depth" : 0
|
||||
}
|
||||
|
||||
nc_login_headers = {'Authorization' : 'Bearer ' + request.COOKIES['nc_session_id']}
|
||||
nc_login_headers = {'Authorization' : 'Bearer ' + request.user.profile.nc_sid}
|
||||
r = requests.request("PROPFIND", settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten_1/", headers=nc_login_headers, data=data_nc)
|
||||
print(r.text)
|
||||
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ class Profile(models.Model):
|
|||
phonemobile = models.CharField(max_length=60, blank=True)
|
||||
phone_public = models.BooleanField(default=False)
|
||||
|
||||
#nc_sid = models.CharField(max_length=200, blank=True)
|
||||
nc_sid = models.CharField(max_length=200, blank=True)
|
||||
|
||||
# Wenn die Funktion gelöscht wird, wird die FUNC auf NULL gesetzt
|
||||
func = models.ForeignKey("AgencyJob", blank=True, null=True, default=None, on_delete=models.SET_NULL)
|
||||
|
|
|
|||
|
|
@ -1,56 +1,14 @@
|
|||
{% extends "users/publicbase.html" %}
|
||||
<!-- CRISPY -->
|
||||
{% load crispy_forms_tags %}
|
||||
{% block content %}
|
||||
<style type="text/css">
|
||||
#logincard {
|
||||
width: 25%;
|
||||
margin-top: 7%;
|
||||
}
|
||||
</style>
|
||||
<div class="card mx-auto" id="logincard">
|
||||
<div class="card-body">
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
<fieldset class="form-group" >
|
||||
<legend class="border-bottom mb-4" style="text-align: center;">
|
||||
<i class="fas fa-laptop"></i>
|
||||
<h3>Digitale Agentur Login</h3>
|
||||
</legend>
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert" id="message_{{forloop.counter}}">
|
||||
{{ message }}
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{{ form|crispy }}
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">Anmelden</button>
|
||||
|
||||
<small class="text-muted ml-2">
|
||||
<a href="{% url 'password-reset' %}" class="">Passwort vergessen?</a><br />
|
||||
</small>
|
||||
</div>
|
||||
</form>
|
||||
<div class="border-top pt-3">
|
||||
<small class="text-muted ml-2">
|
||||
<a href="mailto:support@digitale-agentur.com" class="">Probleme beim anmelden?</a>
|
||||
</small>
|
||||
<small class="text-muted">
|
||||
<a class="ml-2" href="{% url 'register' %}">Agentur registrieren</a>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$("label[for*='username']").html("E-Mail-Adresse*");
|
||||
$(document).ready(function(){
|
||||
localStorage.clear();
|
||||
{% load static %}
|
||||
<html>
|
||||
<body>
|
||||
<h4>Sie werden gleich zur neuen Login-Seite der Digitalen Agentur weitergeleitet. Sollte dies nicht gehen, klicken Sie auf folgenden Link:</h4>
|
||||
<a href="https://cloud.digitale-agentur.com/">https://cloud.digitale-agentur.com/</a>
|
||||
</body>
|
||||
</html>
|
||||
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
//window.location.replace("https://cloud.digitale-agentur.com/external/1");
|
||||
//localStorage.clear();
|
||||
})
|
||||
</script>
|
||||
{% endblock content %}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{% load static %}
|
||||
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
window.location.replace("http://cloud.digitale-agentur.com/external/1");
|
||||
localStorage.clear();
|
||||
})
|
||||
</script>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
{% extends "users/publicbase.html" %}
|
||||
<!-- CRISPY -->
|
||||
{% load crispy_forms_tags %}
|
||||
{% block content %}
|
||||
<style type="text/css">
|
||||
#logincard {
|
||||
width: 25%;
|
||||
margin-top: 7%;
|
||||
}
|
||||
</style>
|
||||
<div class="card mx-auto" id="logincard">
|
||||
<div class="card-body">
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
<fieldset class="form-group" >
|
||||
<legend class="border-bottom mb-4" style="text-align: center;">
|
||||
<i class="fas fa-laptop"></i>
|
||||
<h3>Digitale Agentur Login</h3>
|
||||
</legend>
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert" id="message_{{forloop.counter}}">
|
||||
{{ message }}
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{{ form|crispy }}
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">Anmelden</button>
|
||||
|
||||
<small class="text-muted ml-2">
|
||||
<a href="{% url 'password-reset' %}" class="">Passwort vergessen?</a><br />
|
||||
</small>
|
||||
</div>
|
||||
</form>
|
||||
<div class="border-top pt-3">
|
||||
<small class="text-muted ml-2">
|
||||
<a href="mailto:support@digitale-agentur.com" class="">Probleme beim anmelden?</a>
|
||||
</small>
|
||||
<small class="text-muted">
|
||||
<a class="ml-2" href="{% url 'register' %}">Agentur registrieren</a>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$("label[for*='username']").html("E-Mail-Adresse*");
|
||||
$(document).ready(function(){
|
||||
localStorage.clear();
|
||||
})
|
||||
</script>
|
||||
{% endblock content %}
|
||||
|
|
@ -0,0 +1 @@
|
|||
<h3>{{error}}</h3>
|
||||
|
|
@ -80,13 +80,16 @@ import xmltodict, json
|
|||
import urllib.request as urllib2
|
||||
from django.contrib.auth import login, logout
|
||||
from django.core.mail import send_mail
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
# Entry-Point for NC
|
||||
def ncLogin(request, uid):
|
||||
#logout(request)
|
||||
#if(uid == urllib2.unquote(request.COOKIES['nc_username']) and getNCLoggedUserBySession(request.COOKIES['nc_session_id'])):
|
||||
# login(request, User.objects.get(username=urllib2.unquote(request.COOKIES['nc_username'])))
|
||||
# return redirect('users-dashboard')
|
||||
#return redirect('login')
|
||||
return JsonResponse({})
|
||||
logout(request)
|
||||
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."})
|
||||
|
||||
def getICSFile(request, ag):
|
||||
if 'HTTP_AUTHORIZATION' in request.META:
|
||||
|
|
|
|||
Loading…
Reference in New Issue