Source code for aiida.backends.sqlalchemy.models.user

# -*- coding: utf-8 -*-
###########################################################################
# Copyright (c), The AiiDA team. All rights reserved.                     #
# This file is part of the AiiDA code.                                    #
#                                                                         #
# The code is hosted on GitHub at https://github.com/aiidateam/aiida_core #
# For further information on the license, see the LICENSE.txt file        #
# For further information please visit http://www.aiida.net               #
###########################################################################

from sqlalchemy.schema import Column
from sqlalchemy.types import Integer, String, Boolean, DateTime
from sqlalchemy.orm import relationship
from aiida.utils import timezone
from aiida.backends.sqlalchemy.models.base import Base




[docs]class DbUser(Base): __tablename__ = "db_dbuser" id = Column(Integer, primary_key=True) email = Column(String(254), unique=True, index=True) password = Column(String(128)) # Clear text password ? # Not in django model definition, but comes from inheritance? is_superuser = Column(Boolean, default=False, nullable=False) first_name = Column(String(254), nullable=True) last_name = Column(String(254), nullable=True) institution = Column(String(254), nullable=True) is_staff = Column(Boolean, default=False) is_active = Column(Boolean, default=False) last_login = Column(DateTime(timezone=True), default=timezone.now) date_joined = Column(DateTime(timezone=True), default=timezone.now) # XXX is it safe to set name and institution to an empty string ? def __init__(self, email, first_name="", last_name="", institution="", **kwargs): self.email = email self.first_name = first_name self.last_name = last_name self.institution = institution super(DbUser, self).__init__(**kwargs)
[docs] def get_full_name(self): if self.first_name and self.last_name: return "{} {} ({})".format(self.first_name, self.last_name, self.email) elif self.first_name: return "{} ({})".format(self.first_name, self.email) elif self.last_name: return "{} ({})".format(self.last_name, self.email) else: return "{}".format(self.email)
[docs] def get_short_name(self): return self.email
[docs] def __str__(self): return self.email
[docs] def get_aiida_class(self): from aiida.orm.user import User return User(dbuser=self)