|
5 | 5 | # * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
|
6 | 6 | # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
|
7 | 7 | # Feel free to rename the models, but don't rename db_table values or field names.
|
8 |
| -from django.contrib.auth.base_user import AbstractBaseUser |
| 8 | +from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager |
9 | 9 | from django.db import models
|
10 | 10 | from django.db.models.fields import AutoFieldMixin, PositiveIntegerField, AutoField
|
11 | 11 | from django.utils import timezone
|
@@ -53,12 +53,49 @@ def rel_db_type(self, connection):
|
53 | 53 | return PositiveIntegerField().db_type(connection=connection)
|
54 | 54 |
|
55 | 55 |
|
| 56 | +class MergedUserManager(BaseUserManager): |
| 57 | + def create_user(self, email, date_of_birth, password=None): |
| 58 | + return None |
| 59 | + |
| 60 | + def create_superuser(self, email, date_of_birth, password=None): |
| 61 | + return None |
| 62 | + |
| 63 | + |
56 | 64 | class MergedUser(DebuggableModel, AbstractBaseUser):
|
57 | 65 | name = models.CharField(max_length=128, blank=False, null=False)
|
58 | 66 | obsolete = models.BooleanField(default=False)
|
59 | 67 |
|
| 68 | + is_superuser = models.BooleanField(default=False) |
| 69 | + |
60 | 70 | USERNAME_FIELD = 'id'
|
61 | 71 |
|
| 72 | + objects = MergedUserManager() |
| 73 | + |
| 74 | + @property |
| 75 | + def is_staff(self): |
| 76 | + return self.is_superuser |
| 77 | + |
| 78 | + def get_user_permissions(self, obj=None): |
| 79 | + print('get_user_permissions: ', obj) |
| 80 | + return None |
| 81 | + |
| 82 | + def get_group_permissions(self, obj=None): |
| 83 | + print('get_group_permissions: ', obj) |
| 84 | + return None |
| 85 | + |
| 86 | + def get_all_permissions(self, obj=None): |
| 87 | + print('get_all_permissions: ', obj) |
| 88 | + return None |
| 89 | + |
| 90 | + def has_perm(self, perm, obj=None): |
| 91 | + return self.is_superuser |
| 92 | + |
| 93 | + def has_perms(self, perm_list, obj=None): |
| 94 | + return self.is_superuser |
| 95 | + |
| 96 | + def has_module_perms(self, package_name): |
| 97 | + return self.is_superuser |
| 98 | + |
62 | 99 | def merged_user_names(self):
|
63 | 100 | return list(TSUser.objects.values_list('name', flat=True).filter(merged_user=self))
|
64 | 101 |
|
|
0 commit comments