mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 14:52:15 +00:00
Fixed SSOUser snafu
This commit is contained in:
17
sso/admin.py
17
sso/admin.py
@@ -2,7 +2,22 @@
|
|||||||
Admin interface models. Automatically detected by admin.autodiscover().
|
Admin interface models. Automatically detected by admin.autodiscover().
|
||||||
"""
|
"""
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from sso.models import Service, ServiceAccount
|
from django.contrib.auth.models import User
|
||||||
|
from django.contrib.auth.admin import UserAdmin
|
||||||
|
from sso.models import Service, ServiceAccount, SSOUser
|
||||||
|
|
||||||
admin.site.register(Service)
|
admin.site.register(Service)
|
||||||
admin.site.register(ServiceAccount)
|
admin.site.register(ServiceAccount)
|
||||||
|
|
||||||
|
class SSOUserProfileInline(admin.StackedInline):
|
||||||
|
model = SSOUser
|
||||||
|
fk_name = 'user'
|
||||||
|
max_num = 1
|
||||||
|
|
||||||
|
# Define a new UserAdmin class
|
||||||
|
class SSOUserAdmin(UserAdmin):
|
||||||
|
inlines = [SSOUserProfileInline, ]
|
||||||
|
|
||||||
|
# Re-register UserAdmin
|
||||||
|
admin.site.unregister(User)
|
||||||
|
admin.site.register(User, SSOUserAdmin)
|
||||||
|
|||||||
@@ -11,25 +11,26 @@ class CorporateOnlyService(Exception):
|
|||||||
|
|
||||||
## Models
|
## Models
|
||||||
|
|
||||||
class SSOUser(User):
|
class SSOUser(models.Model):
|
||||||
""" Extended SSO User Profile options """
|
""" Extended SSO User Profile options """
|
||||||
|
|
||||||
user = models.ForeignKey(User, unique=True, related_name='profile')
|
user = models.ForeignKey(User, unique=True, related_name='profile')
|
||||||
|
|
||||||
default_service_passwd = models.CharField(max_length=200)
|
default_service_passwd = models.CharField(max_length=200)
|
||||||
default_service_username = models.CharField(max_length=200)
|
default_service_username = models.CharField(max_length=200, blank=True)
|
||||||
|
|
||||||
website = models.CharField(max_length=200)
|
website = models.CharField(max_length=200, blank=True)
|
||||||
aim = models.CharField(max_length=64)
|
aim = models.CharField(max_length=64, blank=True)
|
||||||
msn = models.CharField(max_length=200)
|
msn = models.CharField(max_length=200, blank=True)
|
||||||
icq = models.CharField(max_length=15)
|
icq = models.CharField(max_length=15, blank=True)
|
||||||
xmpp = models.CharField(max_length=200)
|
xmpp = models.CharField(max_length=200, blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.user
|
return self.user.__str__()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_user_profile(sender, instance, created, **kwargs):
|
def create_user_profile(sender, instance, created, **kwargs):
|
||||||
|
print 'trigger', instance
|
||||||
if created:
|
if created:
|
||||||
profile, created = SSOUser.objects.get_or_create(user=instance)
|
profile, created = SSOUser.objects.get_or_create(user=instance)
|
||||||
|
|
||||||
|
|||||||
23
sso/views.py
23
sso/views.py
@@ -1,7 +1,9 @@
|
|||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
|
||||||
from sso.models import ServiceAccount
|
from eve_api.models.api_player import EVEAccount
|
||||||
|
from sso.models import ServiceAccount, SSOUser
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
pass
|
pass
|
||||||
@@ -10,10 +12,23 @@ def index(request):
|
|||||||
def profile(request):
|
def profile(request):
|
||||||
|
|
||||||
user = request.user
|
user = request.user
|
||||||
profile = request.user.get_profile()
|
try:
|
||||||
srvaccounts = ServiceAccounts.objects.get(user=request.user)
|
profile = request.user.get_profile()
|
||||||
|
except SSOUser.DoesNotExist:
|
||||||
|
profile = SSOUser(user=request.user)
|
||||||
|
profile.save()
|
||||||
|
|
||||||
|
try:
|
||||||
|
srvaccounts = ServiceAccount.objects.get(user=request.user)
|
||||||
|
except ServiceAccount.DoesNotExist:
|
||||||
|
srvaccounts = None
|
||||||
|
|
||||||
return render_to_response('sso/profile.html', locals())
|
try:
|
||||||
|
eveaccounts = EVEAccount.objects.get(user=request.user)
|
||||||
|
except EVEAccount.DoesNotExist:
|
||||||
|
eveaccounts = None
|
||||||
|
|
||||||
|
return render_to_response('profile.html', locals())
|
||||||
|
|
||||||
|
|
||||||
def service_add(request):
|
def service_add(request):
|
||||||
|
|||||||
11
urls.py
11
urls.py
@@ -1,11 +1,14 @@
|
|||||||
from django.conf.urls.defaults import *
|
from django.conf.urls.defaults import *
|
||||||
|
|
||||||
# Uncomment the next two lines to enable the admin:
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
|
||||||
admin.autodiscover()
|
admin.autodiscover()
|
||||||
|
|
||||||
|
# Unregister unneeded interfaces
|
||||||
|
from eve_proxy.models import CachedDocument
|
||||||
|
admin.site.unregister(CachedDocument)
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
(r'^admin/', include(admin.site.urls)),
|
(r'^admin/', include(admin.site.urls)),
|
||||||
(r'^accounts/', include('registration.backends.default.urls')),
|
('', include('registration.backends.default.urls')),
|
||||||
(r'^sso/', include('sso.urls')),
|
('', include('sso.urls')),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user