Source code for aiida.storage.psql_dos.orm.users
###########################################################################
# 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 #
###########################################################################
"""SQLA user"""
from aiida.orm.implementation.users import BackendUser, BackendUserCollection
from aiida.storage.psql_dos.models.user import DbUser
from . import entities, utils
[docs]
class SqlaUser(entities.SqlaModelEntity[DbUser], BackendUser):
"""SQLA user"""
MODEL_CLASS = DbUser
[docs]
def __init__(self, backend, email, first_name, last_name, institution):
super().__init__(backend)
self._model = utils.ModelWrapper(
self.MODEL_CLASS(email=email, first_name=first_name, last_name=last_name, institution=institution), backend
)
@property
def email(self):
return self.model.email
@email.setter
def email(self, email):
self.model.email = email
@property
def first_name(self):
return self.model.first_name
@first_name.setter
def first_name(self, first_name):
self.model.first_name = first_name
@property
def last_name(self):
return self.model.last_name
@last_name.setter
def last_name(self, last_name):
self.model.last_name = last_name
@property
def institution(self):
return self.model.institution
@institution.setter
def institution(self, institution):
self.model.institution = institution
[docs]
class SqlaUserCollection(BackendUserCollection):
"""Collection of SQLA Users"""
ENTITY_CLASS = SqlaUser
[docs]
def create(self, email, first_name='', last_name='', institution=''):
"""Create a user with the provided email address"""
return self.ENTITY_CLASS(self.backend, email, first_name, last_name, institution)