mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-22 14:19:28 +00:00
Views now working, basic construction complete
This commit is contained in:
14
sso/forms.py
Normal file
14
sso/forms.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from django import forms
|
||||
|
||||
from sso.models import ServiceAccount
|
||||
|
||||
class EveAPIForm(forms.Form):
|
||||
user_id = forms.CharField(max_length=10)
|
||||
api_key = forms.CharField(max_length=100)
|
||||
description = forms.CharField(max_length=100)
|
||||
|
||||
class ServiceAccountForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = ServiceAccount
|
||||
exclude = ['user', 'active']
|
||||
|
||||
@@ -45,7 +45,8 @@ class Service(models.Model):
|
||||
api = models.CharField(max_length=200)
|
||||
|
||||
def __str__(self):
|
||||
return "%s: %s" % (self.name, self.api)
|
||||
#return "%s: %s" % (self.name, self.api)
|
||||
return self.name
|
||||
|
||||
class ServiceAccount(models.Model):
|
||||
user = models.ForeignKey(User, blank=False)
|
||||
|
||||
@@ -3,5 +3,11 @@ from django.conf.urls.defaults import *
|
||||
from sso import views
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r'^profile/', views.profile),
|
||||
(r'^profile/$', views.profile),
|
||||
(r'^profile/add/eveapi', views.eveapi_add),
|
||||
(r'^profile/del/eveapi/$', views.eveapi_del),
|
||||
(r'^profile/del/eveapi/(?P<userid>\d+)/$', views.eveapi_del),
|
||||
(r'^profile/add/service', views.service_add),
|
||||
(r'^profile/del/service/$', views.eveapi_del),
|
||||
(r'^profile/del/service/(?P<serviceid>\d+)/$', views.service_del),
|
||||
)
|
||||
|
||||
92
sso/views.py
92
sso/views.py
@@ -1,9 +1,17 @@
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
from eve_api.api_exceptions import APIAuthException, APINoUserIDException
|
||||
from eve_api.api_puller.accounts import import_eve_account
|
||||
from eve_api.models.api_player import EVEAccount
|
||||
|
||||
from sso.models import ServiceAccount, SSOUser
|
||||
from sso.forms import EveAPIForm, ServiceAccountForm
|
||||
|
||||
import settings
|
||||
|
||||
def index(request):
|
||||
pass
|
||||
@@ -19,23 +27,97 @@ def profile(request):
|
||||
profile.save()
|
||||
|
||||
try:
|
||||
srvaccounts = ServiceAccount.objects.get(user=request.user)
|
||||
srvaccounts = ServiceAccount.objects.filter(user=request.user).all()
|
||||
except ServiceAccount.DoesNotExist:
|
||||
srvaccounts = None
|
||||
|
||||
try:
|
||||
eveaccounts = EVEAccount.objects.get(user=request.user)
|
||||
eveaccounts = EVEAccount.objects.filter(user=request.user).all()
|
||||
except EVEAccount.DoesNotExist:
|
||||
eveaccounts = None
|
||||
|
||||
return render_to_response('profile.html', locals())
|
||||
|
||||
@login_required
|
||||
def eveapi_add(request):
|
||||
if request.method == 'POST':
|
||||
form = EveAPIForm(request.POST)
|
||||
if form.is_valid():
|
||||
try:
|
||||
acc = import_eve_account(form.cleaned_data['api_key'], form.cleaned_data['user_id'])
|
||||
except APIAuthException:
|
||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||
|
||||
acc.user = request.user
|
||||
acc.description = form.cleaned_data['description']
|
||||
acc.save()
|
||||
|
||||
for eacc in EVEAccount.objects.filter(user=request.user):
|
||||
if acc.api_status == 1 and acc.in_corp(settings.EVE_CORP_ID):
|
||||
profile = request.user.get_profile()
|
||||
profile.corp_user = True
|
||||
profile.save()
|
||||
break
|
||||
|
||||
return HttpResponseRedirect(reverse('sso.views.profile')) # Redirect after POST
|
||||
else:
|
||||
form = EveAPIForm() # An unbound form
|
||||
|
||||
return render_to_response('sso/eveapi.html', {
|
||||
'form': form,
|
||||
})
|
||||
|
||||
@login_required
|
||||
def eveapi_del(request, userid=0):
|
||||
|
||||
if userid > 0 :
|
||||
|
||||
try:
|
||||
acc = EVEAccount.objects.get(id=userid)
|
||||
except EVEAccount.DoesNotExist:
|
||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||
|
||||
if acc.user == request.user:
|
||||
acc.delete()
|
||||
|
||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||
|
||||
@login_required
|
||||
def service_add(request):
|
||||
pass
|
||||
if request.method == 'POST':
|
||||
form = ServiceAccountForm(request.POST)
|
||||
if form.is_valid():
|
||||
|
||||
acc = ServiceAccount()
|
||||
|
||||
def service_del(request):
|
||||
pass
|
||||
acc.user = request.user
|
||||
acc.service = form.cleaned_data['service']
|
||||
acc.username = form.cleaned_data['username']
|
||||
acc.password = form.cleaned_data['password']
|
||||
|
||||
acc.save()
|
||||
|
||||
return HttpResponseRedirect(reverse('sso.views.profile')) # Redirect after POST
|
||||
else:
|
||||
form = ServiceAccountForm() # An unbound form
|
||||
|
||||
return render_to_response('sso/serviceaccount.html', {
|
||||
'form': form,
|
||||
})
|
||||
|
||||
@login_required
|
||||
def service_del(request, serviceid=0):
|
||||
if serviceid > 0 :
|
||||
|
||||
try:
|
||||
acc = ServiceAccount.objects.get(id=serviceid)
|
||||
except ServiceAccount.DoesNotExist:
|
||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||
|
||||
if acc.user == request.user:
|
||||
acc.delete()
|
||||
|
||||
return HttpResponseRedirect(reverse('sso.views.profile'))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user