Source code for nlpmed_portal.users.models

# SPDX-FileCopyrightText: Copyright (C) 2026 Omid Jafari <omidjafari.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from auditlog.registry import auditlog
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import Group
from django.db.models import BooleanField
from django.db.models import CharField
from django.urls import reverse
from django.utils.translation import gettext_lazy as _


[docs] class User(AbstractUser): """ Default custom user model for NLPMed-Portal. If adding fields that need to be filled at user signup, check forms.SignupForm and forms.SocialSignupForms accordingly. """ # First and last name do not cover name patterns around the globe name = CharField(_("Name of User"), max_length=255) first_name = None # type: ignore[assignment] last_name = None # type: ignore[assignment] is_active = BooleanField(default=False)
[docs] def get_absolute_url(self) -> str: """Get URL for user's detail view. Returns: str: URL for user detail. """ return reverse("users:update")
auditlog.register( User, exclude_fields=( "created_at", "updated_at", "history", "last_seen_at", "last_update", "last_login", ), mask_fields=("password",), m2m_fields=("groups",), ) auditlog.register( Group, exclude_fields=( "created_at", "updated_at", "history", "last_seen_at", "last_update", ), mask_fields=("password",), m2m_fields=("permissions",), )