diff --git a/securityquiz/urls.py b/securityquiz/urls.py index 8f57916..0f816aa 100644 --- a/securityquiz/urls.py +++ b/securityquiz/urls.py @@ -8,6 +8,6 @@ urlpatterns = patterns('', url(r'^$', 'views.home', name='home'), url(r'^callback$', 'views.avans_callback'), url(r'^logout$', 'views.avans_logout'), - + url(r'^pull$', 'views.pull'), url(r'^admin/', include(admin.site.urls)), ) diff --git a/views.py b/views.py index 85d50eb..9be81e5 100644 --- a/views.py +++ b/views.py @@ -5,8 +5,9 @@ from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User from django.contrib import messages from quiz.models import Answer -import oauth2 as oauth, cgi, json +import oauth2 as oauth, cgi, json, git, os, signal import securityquiz.secrets as secrets +import securityquiz.settings as settings AVANS_KEY = secrets.AVANS_KEY AVANS_SECRET = secrets.AVANS_SECRET @@ -62,6 +63,19 @@ def avans_logout(request): logout(request) return HttpResponse('Je bent nu uitgelogd... Opnieuw inloggen') +def pull(request): + if request.method == 'POST': + g = git.cmd.Git(settings.PROJECT_PATH) + output = str(g.pull()) + + # Reload source code + os.kill(os.getpid(), signal.SIGINT) + + return HttpResponse(output) + else: + return HttpResponseRedirect('/') + + def home(request): if not request.user.is_authenticated(): return avans_login(request) @@ -81,4 +95,4 @@ def home(request): for answer in answers: answers_dict[answer.question] = answer.string - return render(request, 'index.html', {'answers': answers_dict}) \ No newline at end of file + return render(request, 'index.html', {'answers': answers_dict})