src/notes/models/auth.py
author ymh <ymh.work@gmail.com>
Mon, 24 Jul 2017 16:58:34 +0200
changeset 126 ba8bc0199464
parent 117 9864fe2067cd
child 131 adad5563603c
permissions -rw-r--r--
add log api for syncing
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
auth module that defines irinotes' users and group
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
"""
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
from django.contrib.auth.models import AbstractUser, Group
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
from django.db import models
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
from django.utils.translation import ugettext_lazy as _
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
class User(AbstractUser):
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    class Meta:
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        verbose_name = _('User')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        verbose_name_plural = _('Users')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    14
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
class UserProfile(models.Model):
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    user = models.OneToOneField(User, on_delete=models.CASCADE)
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    17
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    class Meta:
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        verbose_name = _('UserProfile')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        verbose_name_plural = _('UserProfiles')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
class GroupProfile(models.Model):
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    24
    group = models.OneToOneField(
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    25
        Group, unique=True, on_delete=models.CASCADE, related_name='profile')
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    description = models.TextField(null=True, blank=True)
117
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    27
    # TODO: manage when user is deleted: put first user as owner. delete group if empty
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    28
    owner = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
9864fe2067cd Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    29
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    class Meta:
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        verbose_name = _('GroupProfile')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        verbose_name_plural = _('GroupProfiles')