Refactor user stuff

This commit is contained in:
Daniel Egger 2022-02-03 16:49:52 +01:00
parent c600f3f514
commit 8e9abdd7fb
15 changed files with 82 additions and 70 deletions

View File

@ -78,7 +78,6 @@ THIRD_PARTY_APPS = [
]
LOCAL_APPS = [
"vbv_lernwelt.users",
"vbv_lernwelt.core",
# Your stuff: custom apps go here
]
@ -97,7 +96,7 @@ AUTHENTICATION_BACKENDS = [
"django.contrib.auth.backends.ModelBackend",
]
# https://docs.djangoproject.com/en/dev/ref/settings/#auth-user-model
AUTH_USER_MODEL = "users.User"
AUTH_USER_MODEL = "core.User"
# https://docs.djangoproject.com/en/dev/ref/settings/#login-redirect-url
# LOGIN_REDIRECT_URL = "users:redirect"
# https://docs.djangoproject.com/en/dev/ref/settings/#login-url

View File

@ -1,3 +1,29 @@
from django.contrib import admin
from django.contrib.auth import admin as auth_admin
from django.contrib.auth import get_user_model
from django.utils.translation import gettext_lazy as _
# Register your models here.
User = get_user_model()
@admin.register(User)
class UserAdmin(auth_admin.UserAdmin):
fieldsets = (
(None, {"fields": ("username", "password")}),
(_("Personal info"), {"fields": ("first_name", "last_name", "email")}),
(
_("Permissions"),
{
"fields": (
"is_active",
"is_staff",
"is_superuser",
"groups",
"user_permissions",
),
},
),
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
)
list_display = ["username", "first_name", "last_name", "is_active", "is_superuser"]
search_fields = ["first_name", "last_name", "email", "username"]

View File

@ -4,3 +4,9 @@ from django.apps import AppConfig
class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'vbv_lernwelt.core'
def ready(self):
try:
import vbv_lernwelt.core.signals # noqa F401
except ImportError:
pass

View File

@ -1,4 +1,4 @@
# Generated by Django 3.2.12 on 2022-02-02 13:01
# Generated by Django 3.2.12 on 2022-02-03 15:46
import django.contrib.auth.models
import django.contrib.auth.validators
@ -15,6 +15,19 @@ class Migration(migrations.Migration):
]
operations = [
migrations.CreateModel(
name='SecurityRequestResponseLog',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('label', models.CharField(blank=True, default='', max_length=255)),
('request_method', models.CharField(blank=True, default='', max_length=255)),
('request_full_path', models.CharField(blank=True, default='', max_length=255)),
('request_username', models.CharField(blank=True, default='', max_length=255)),
('request_client_ip', models.CharField(blank=True, default='', max_length=255)),
('response_status_code', models.CharField(blank=True, default='', max_length=255)),
('additional_json_data', models.JSONField(blank=True, default=dict)),
],
),
migrations.CreateModel(
name='User',
fields=[

View File

@ -0,0 +1,25 @@
from django.db import migrations
from vbv_lernwelt.core.models import User
def create_iterativ_users(apps, schema_editor):
for username in ['info@iterativ.ch', ]:
user = User.objects.create(
username=username,
email=username,
is_superuser=True,
is_staff=True,
)
user.set_password('ACEEs0DCmNaPxdoNV8vhccuCTRl9b')
user.save()
class Migration(migrations.Migration):
dependencies = [
('core', '0001_initial'),
]
operations = [
migrations.RunPython(create_iterativ_users),
]

View File

@ -1,7 +1,16 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.db.models import JSONField
class User(AbstractUser):
"""
Default custom user model for VBV Lernwelt.
If adding fields that need to be filled at user signup,
"""
pass
class SecurityRequestResponseLog(models.Model):
label = models.CharField(max_length=255, blank=True, default='')

View File

@ -1,30 +0,0 @@
from django.contrib import admin
from django.contrib.auth import admin as auth_admin
from django.contrib.auth import get_user_model
from django.utils.translation import gettext_lazy as _
User = get_user_model()
@admin.register(User)
class UserAdmin(auth_admin.UserAdmin):
fieldsets = (
(None, {"fields": ("username", "password")}),
(_("Personal info"), {"fields": ("first_name", "last_name", "email")}),
(
_("Permissions"),
{
"fields": (
"is_active",
"is_staff",
"is_superuser",
"groups",
"user_permissions",
),
},
),
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
)
list_display = ["username", "first_name", "last_name", "is_active", "is_superuser"]
search_fields = ["first_name", "last_name", "email", "username"]

View File

@ -1,13 +0,0 @@
from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _
class UsersConfig(AppConfig):
name = "vbv_lernwelt.users"
verbose_name = _("Users")
def ready(self):
try:
import vbv_lernwelt.users.signals # noqa F401
except ImportError:
pass

View File

@ -1,3 +0,0 @@
from django.contrib.auth import get_user_model
User = get_user_model()

View File

@ -1,17 +0,0 @@
from django.contrib.auth.models import AbstractUser
from django.urls import reverse
class User(AbstractUser):
"""
Default custom user model for VBV Lernwelt.
If adding fields that need to be filled at user signup,
"""
def get_absolute_url(self):
"""Get url for user's detail view.
Returns:
str: URL for user detail.
"""
return reverse("users:detail", kwargs={"username": self.username})

View File

@ -1 +0,0 @@

View File

@ -1,2 +0,0 @@