Skip to content

Commit 306e09e

Browse files
authored
Merge pull request #97 from SmoFlaDru/dev-benno
Add permission functions, fix admin page.
2 parents 5015897 + a77391a commit 306e09e

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Generated by Django 4.2.3 on 2024-01-28 16:47
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('spybot', '0019_mergeduser_last_login_mergeduser_password_loginlink'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='mergeduser',
15+
name='is_superuser',
16+
field=models.BooleanField(default=False),
17+
),
18+
migrations.RunSQL("UPDATE spybot_mergeduser SET is_superuser=true WHERE id=657;"),
19+
migrations.RunSQL("UPDATE spybot_mergeduser SET is_superuser=true WHERE id=641;"),
20+
]

spybot/models.py

+38-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
66
# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
77
# 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
99
from django.db import models
1010
from django.db.models.fields import AutoFieldMixin, PositiveIntegerField, AutoField
1111
from django.utils import timezone
@@ -53,12 +53,49 @@ def rel_db_type(self, connection):
5353
return PositiveIntegerField().db_type(connection=connection)
5454

5555

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+
5664
class MergedUser(DebuggableModel, AbstractBaseUser):
5765
name = models.CharField(max_length=128, blank=False, null=False)
5866
obsolete = models.BooleanField(default=False)
5967

68+
is_superuser = models.BooleanField(default=False)
69+
6070
USERNAME_FIELD = 'id'
6171

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+
6299
def merged_user_names(self):
63100
return list(TSUser.objects.values_list('name', flat=True).filter(merged_user=self))
64101

spybot/tests/test_models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.test import TestCase, override_settings
22

3-
from spybot.models import TSUserActivity, TSUser
3+
from spybot.models import TSUserActivity, TSUser, MergedUser
44

55
@override_settings(DEBUG=False)
66
class TSUserTestCase(TestCase):

0 commit comments

Comments
 (0)