diff options
Diffstat (limited to 'coip/apps')
-rw-r--r-- | coip/apps/auth/views.py | 3 | ||||
-rw-r--r-- | coip/apps/opensocial/people.py | 3 | ||||
-rw-r--r-- | coip/apps/user/__init__.py (renamed from coip/apps/userprofile/__init__.py) | 0 | ||||
-rw-r--r-- | coip/apps/user/admin.py | 5 | ||||
-rw-r--r-- | coip/apps/user/models.py (renamed from coip/apps/userprofile/models.py) | 58 | ||||
-rw-r--r-- | coip/apps/user/views.py (renamed from coip/apps/userprofile/views.py) | 5 | ||||
-rw-r--r-- | coip/apps/userprofile/admin.py | 5 |
7 files changed, 39 insertions, 40 deletions
diff --git a/coip/apps/auth/views.py b/coip/apps/auth/views.py index bab6bf8..a7c29d6 100644 --- a/coip/apps/auth/views.py +++ b/coip/apps/auth/views.py @@ -4,10 +4,7 @@ Created on Jul 5, 2010 @author: leifj ''' from django.http import HttpResponseRedirect -from coip.apps.userprofile.models import UserProfile, user_profile -from coip.apps.name.models import lookup from django.views.decorators.cache import never_cache -from coip.apps.membership.models import add_member def accounts_login_federated(request): diff --git a/coip/apps/opensocial/people.py b/coip/apps/opensocial/people.py index e51949c..6572e06 100644 --- a/coip/apps/opensocial/people.py +++ b/coip/apps/opensocial/people.py @@ -4,7 +4,6 @@ Created on Jun 19, 2011 @author: leifj ''' from tastypie.resources import ModelResource -from django.contrib.auth.models import User from coip.apps.opensocial.serializer import OpenSocialSerializer from django.conf.urls.defaults import url from coip.apps.membership.models import Membership @@ -18,7 +17,7 @@ from django.shortcuts import get_object_or_404 import logging from pprint import pformat from tastypie.bundle import Bundle -from coip.apps.userprofile.models import Identifier +from coip.apps.user.models import Identifier _rekey = { 'objects': 'entry' diff --git a/coip/apps/userprofile/__init__.py b/coip/apps/user/__init__.py index e69de29..e69de29 100644 --- a/coip/apps/userprofile/__init__.py +++ b/coip/apps/user/__init__.py diff --git a/coip/apps/user/admin.py b/coip/apps/user/admin.py new file mode 100644 index 0000000..c0e5ff4 --- /dev/null +++ b/coip/apps/user/admin.py @@ -0,0 +1,5 @@ +from django.contrib import admin +from coip.apps.user.models import Identifier, UserProfile + +admin.site.register(Identifier) +admin.site.register(UserProfile) diff --git a/coip/apps/userprofile/models.py b/coip/apps/user/models.py index e780d81..9521d89 100644 --- a/coip/apps/userprofile/models.py +++ b/coip/apps/user/models.py @@ -7,33 +7,8 @@ from django.db import models from django.contrib.auth.models import User from coip.apps.name.models import Name, lookup from coip.apps.membership.models import add_member - -class UserProfile(models.Model): - user = models.ForeignKey(User) - home = models.ForeignKey(Name,blank=True,null=True,editable=False) - timecreated = models.DateTimeField(auto_now_add=True) - lastupdated = models.DateTimeField(auto_now=True) - - def __unicode__(self): - return "%s" % (self.user.__unicode__()) - - -def user_profile(user): - profile,created = UserProfile.objects.get_or_create(user=user) - if created: - urn = lookup("urn",True) - anyuser = lookup("system:anyuser",True) - urn.setacl(anyuser,'rl') - home = lookup('user:'+user.username,autocreate=True) - home.short = user.get_full_name() - profile.home = home - profile.save() - home.save() - add_member(home,profile.user,hidden=True) - home.setpacl(home, "rwlida") - home.setacl(home,"rwla") #don't allow users to delete or reset acls on their home, nor invite members - that would be confusing as hell - - return profile +from django.dispatch.dispatcher import receiver +from django.db.models.signals import post_save class Identifier(models.Model): @@ -59,3 +34,32 @@ class Identifier(models.Model): def __unicode__(self): return "%s [%s]" % (self.value,self.display_name) + +class UserProfile(models.Model): + user = models.OneToOneField(User) + home = models.ForeignKey(Name,blank=True,null=True,editable=False) + identifier = models.ForeignKey(Identifier,editable=False,blank=True,null=True) + timecreated = models.DateTimeField(auto_now_add=True) + lastupdated = models.DateTimeField(auto_now=True) + + def __unicode__(self): + return "%s" % (self.user.__unicode__()) + +@receiver(post_save,sender=User) +def _create_profile(sender,**kwargs): + user = kwargs['instance'] + created = kwargs['created'] + if created: + profile,profile_created = UserProfile.objects.get_or_create(user=user) + urn = lookup("urn",True) + anyuser = lookup("system:anyuser",True) + urn.setacl(anyuser,'rl') + profile.home = lookup('user:'+user.username,autocreate=True) + add_member(profile.home,user,hidden=True) + profile.home.setpacl(profile.home, "rwlida") + profile.home.setacl(profile.home,"rwla") #don't allow users to delete or reset acls on their home, nor invite members - that would be confusing as hell + profile.home.short = user.get_full_name() + profile.home.save() + profile.save() + + diff --git a/coip/apps/userprofile/views.py b/coip/apps/user/views.py index 50fe184..f204e21 100644 --- a/coip/apps/userprofile/views.py +++ b/coip/apps/user/views.py @@ -10,9 +10,8 @@ from django.core.exceptions import ObjectDoesNotExist from coip.apps.name.models import NameLink from django.contrib.auth.models import User from django.shortcuts import get_object_or_404 -from coip.apps.userprofile.models import Identifier - - +from coip.apps.user.models import Identifier + @login_required def home(request): memberships = [] diff --git a/coip/apps/userprofile/admin.py b/coip/apps/userprofile/admin.py deleted file mode 100644 index 1e5c7a0..0000000 --- a/coip/apps/userprofile/admin.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.contrib import admin -from coip.apps.userprofile.models import UserProfile, Identifier - -admin.site.register(UserProfile) -admin.site.register(Identifier)
\ No newline at end of file |