| author | ymh <ymh.work@gmail.com> |
| Mon, 20 May 2013 18:02:37 +0200 | |
| changeset 1191 | b6e0b1811723 |
| parent 854 | e4be64dd42af |
| child 1193 | cd67b17d257d |
| permissions | -rw-r--r-- |
|
188
74bad93d3cb7
Merge with 50dd5c3e8ab8365982cffc4f411f9f5ba7686176
ymh <ymh.work@gmail.com>
diff
changeset
|
1 |
from django.conf import settings |
| 1191 | 2 |
from django.contrib.auth.models import (AbstractUser, User, UserManager, Group, |
3 |
BaseUserManager) |
|
| 169 | 4 |
from django.db import models |
|
174
43748b6b0678
Add a default profile instead of get_or_create_profile
verrierj
parents:
172
diff
changeset
|
5 |
from django.db.models.signals import post_save |
| 1191 | 6 |
from django.utils import timezone |
|
314
1a8620e5ebb0
Add memcached and sorl thumbnail pour thumbnail management. Set default pict on content, project and user.
cavaliet
parents:
276
diff
changeset
|
7 |
from sorl.thumbnail import ImageField |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
8 |
|
| 1191 | 9 |
|
10 |
class LdtUserManager(BaseUserManager): |
|
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
11 |
|
| 1191 | 12 |
def create_user(self, username, email=None, password=None, **extra_fields): |
13 |
""" |
|
14 |
Creates and saves a User with the given username, email and password. |
|
15 |
""" |
|
16 |
now = timezone.now() |
|
17 |
if not username: |
|
18 |
raise ValueError('The given username must be set') |
|
19 |
email = UserManager.normalize_email(email) |
|
20 |
user = self.model(username=username, email=email, |
|
21 |
is_staff=False, is_active=True, is_superuser=False, |
|
22 |
last_login=now, date_joined=now, **extra_fields) |
|
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
23 |
|
| 1191 | 24 |
user.set_password(password) |
25 |
user.save(using=self._db) |
|
26 |
everyone, _ = Group.objects.get_or_create(name=settings.PUBLIC_GROUP_NAME) |
|
27 |
user.groups.add(everyone) |
|
28 |
return user |
|
29 |
||
30 |
def create_superuser(self, username, email, password, **extra_fields): |
|
31 |
u = self.create_user(username, email, password, **extra_fields) |
|
32 |
u.is_staff = True |
|
33 |
u.is_active = True |
|
34 |
u.is_superuser = True |
|
35 |
u.save(using=self._db) |
|
36 |
return u |
|
|
276
ee792e43b36a
Replace is_regular field in userprofile by django permission
verrierj
parents:
259
diff
changeset
|
37 |
|
| 325 | 38 |
class GroupProfile(models.Model): |
39 |
group = models.OneToOneField(Group, primary_key=False, related_name='profile') |
|
40 |
description = models.TextField() |
|
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
41 |
image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/groups/", default=settings.DEFAULT_GROUP_ICON, max_length=200) |
| 325 | 42 |
|
43 |
@staticmethod |
|
44 |
def create_group_profile(sender, instance, created, **kwargs): |
|
45 |
if created: |
|
46 |
profile = GroupProfile() |
|
47 |
profile.group_id = instance.id |
|
48 |
profile.save() |
|
|
452
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
49 |
admins = User.objects.filter(is_superuser=True) |
|
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
50 |
if admins: |
|
8e9494006e7b
segment abstracts + content images can be retrieved directly from search results page
verrierj
parents:
406
diff
changeset
|
51 |
instance.user_set.add(admins[0]) |
| 1191 | 52 |
|
53 |
class LdtUser(AbstractUser): |
|
54 |
language = models.CharField(max_length=2, default=settings.LANGUAGE_CODE[:2]) |
|
55 |
image = ImageField(upload_to=settings.MEDIA_ROOT+"thumbnails/users/", default=settings.DEFAULT_USER_ICON, max_length=200) |
|
56 |
||
57 |
objects = LdtUserManager() |
|
58 |
||
|
342
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
59 |
|
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
60 |
# To keep consistency with User.get_profile() method |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
61 |
def get_profile(self): |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
62 |
return self.profile |
|
17d615b49a91
Extend image fields size to 200 characters + minor bugs
verrierj
parents:
330
diff
changeset
|
63 |
|
| 1191 | 64 |
Group.add_to_class("get_profile", get_profile) # @UndefinedVariable |
| 325 | 65 |
post_save.connect(GroupProfile.create_group_profile, sender=Group) |
|
111
4535dafa6007
improve releasing of resources when indexing + convert line endings to unix
ymh <ymh.work@gmail.com>
parents:
63
diff
changeset
|
66 |