summaryrefslogtreecommitdiff
path: root/coip/apps
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps')
-rw-r--r--coip/apps/auth/views.py3
-rw-r--r--coip/apps/opensocial/people.py3
-rw-r--r--coip/apps/user/__init__.py (renamed from coip/apps/userprofile/__init__.py)0
-rw-r--r--coip/apps/user/admin.py5
-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.py5
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