Exemple #1
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    project_id = db.Column(db.Integer, index=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255), default=lambda: ''.join(random.choice(string.ascii_lowercase) for _ in range(20)))
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    current_portal_user_yn = db.Column(db.Boolean)
    gv_end_del_log = db.Column(db.Date)
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(50))
    current_login_ip = db.Column(db.String(50))
    login_count = db.Column(db.Integer())
    is_imported = db.Column(db.Boolean(), default=False)
    roles = db.relationship(
        'Role',
        secondary=roles_users,
        backref=db.backref('users', lazy='dynamic'),
        collection_class=set,
    )
    practices = db.relationship(
        'Practice',
        secondary=practices_users,
        backref=db.backref('users', lazy='dynamic'),
        collection_class=set,
    )
    practice_groups = db.relationship(
        'PracticeGroup',
        secondary=practice_groups_users,
        backref=db.backref('users', lazy='dynamic'),
        collection_class=set,
    )
    last_update_timestamp = db.Column(db.Integer, nullable=True)

    def get_id(self):
        return self.email
        
    @property
    def is_super(self):
        return self.is_admin or len(self.practice_groups) > 0

    @property
    def is_admin(self):
        return self.has_role(Role.ADMIN_ROLENAME)

    @property
    def is_system(self):
        return self.email == '*****@*****.**'

    @property
    def all_practices(self):
        return set(self.practices) | set(chain.from_iterable(pg.practices for pg in self.practice_groups))

    @property
    def full_name(self):
        return '{} {}'.format(self.first_name or '', self.last_name or '').strip() or self.email
Exemple #2
0
class Role(db.Model, RoleMixin):
    ADMIN_ROLENAME = 'admin'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __str__(self):
        return self.name
Exemple #3
0
class Role(db.Model, RoleMixin):
    ADMIN_ROLENAME = 'admin'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __init__(self, *args, **kwargs):
        self.name = kwargs.get('name')
        self.description = kwargs.get('description')
Exemple #4
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(50))
    current_login_ip = db.Column(db.String(50))
    login_count = db.Column(db.Integer())
    roles = db.relationship(
        'Role',
        secondary=roles_users,
        backref=db.backref('users', lazy='dynamic'))
    practices = db.relationship(
        'PracticeRegistration',
        secondary=practice_registrations_users,
        backref=db.backref('users', lazy='dynamic'))

    def __init__(self, *args, **kwargs):
        self.email = kwargs.get('email')
        self.password = kwargs.get('password')
        self.first_name = kwargs.get('first_name')
        self.last_name = kwargs.get('last_name')
        self.active = 0

    def is_admin(self):
        return self.has_role(Role.ADMIN_ROLENAME)

    def is_system(self):
        return self.email == '*****@*****.**'

    @property
    def full_name(self):
        return '{} {}'.format(self.first_name or '', self.last_name or '')
Exemple #5
0
    ADMIN_ROLENAME = 'admin'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __init__(self, *args, **kwargs):
        self.name = kwargs.get('name')
        self.description = kwargs.get('description')


roles_users = db.Table(
    'roles_users',
    db.Column(
        'user_id',
        db.Integer(),
        db.ForeignKey('user.id')),
    db.Column(
        'role_id',
        db.Integer(),
        db.ForeignKey('role.id')))


practice_registrations_users = db.Table(
    'practice_registrations_users',
    db.Column(
        'user_id',
        db.Integer(),
        db.ForeignKey('user.id')),
    db.Column(
        'practice_registration_id',