class AppClient(db.Model):
    __tablename__ = 'appclient'

    # 表的结构:
    client_key = db.Column(db.String(40), primary_key=True)
    client_secret = db.Column(db.String(55), index=True, unique=True)
    user = db.relationship('User')
    name = Column(db.String(100), unique=True)
    
    # public or confidential
    is_confidential = db.Column(db.Boolean)
    
    _realms = db.Column(db.Text)
    _redirect_uris = db.Column(db.Text)
    _default_scopes = db.Column(db.Text)
    
    description = Column(db.Text)
    create_time = Column(db.DateTime, default=date_time)
    modified_date = Column(db.DateTime, default=create_time)

    @property
    def client_type(self):
        if self.is_confidential:
            return 'confidential'
        return 'public'
    
    @property
    def redirect_uris(self):
        if self._redirect_uris:
            return self._redirect_uris.split()
        return []

    @property
    def default_redirect_uri(self):
        return self.redirect_uris[0]

    @property
    def default_realms(self):
        if self._realms:
            return self._realms.split()
        return []

    @property
    def default_scopes(self):
        if self._default_scopes:
            return self._default_scopes.split()
        return []
Example #2
0
# -*- coding: UTF-8 -*-

from database.config_setting import db, date_time
from sqlalchemy import Column

user2group = db.Table(
    'user_group_mapping',
    db.Column('user_id',
              db.BigInteger,
              db.ForeignKey('user.id'),
              primary_key=True),
    db.Column('group_id',
              db.BigInteger,
              db.ForeignKey('user_group.id'),
              primary_key=True))

role2group = db.Table(
    'group_role_mapping',
    db.Column('group_id',
              db.BigInteger,
              db.ForeignKey('user_group.id'),
              primary_key=True),
    db.Column('role_id',
              db.BigInteger,
              db.ForeignKey('role.id'),
              primary_key=True))


# 定义UserGroup对象
class Usergroup(db.Model):
# -*- coding: UTF-8 -*-
from sqlalchemy import Column, String, Date, Boolean
from sqlalchemy.types import BigInteger
from database.config_setting import db, date_time

role2perm = db.Table(
    'role_permission_mapping',
    db.Column('perm_id',
              db.BigInteger,
              db.ForeignKey('permission.id'),
              primary_key=True),
    db.Column('role_id',
              db.BigInteger,
              db.ForeignKey('role.id'),
              primary_key=True))


class Permission(db.Model):
    __tablename__ = 'permission'

    id = Column(db.BigInteger, primary_key=True, autoincrement=True)
    name = Column(db.String(100), unique=True)
    o_type = Column(db.String(10))
    create_by = Column(db.String(32))
    create_time = Column(db.DateTime, default=date_time)
    modified_date = Column(db.DateTime, default=create_time)
    modified_by = Column(db.String(32), default=create_by)
    # resource = Column(db.BigInteger, db.ForeignKey('resource.id'))
    content = Column(db.Text)
    is_deleted = Column(db.Boolean, default=False)
    roles = db.relationship('Role',
Example #4
0
# -*- coding: UTF-8 -*-

import hashlib
import time
from sqlalchemy import Column, String, Integer, Date, Boolean,Text
from sqlalchemy.types import BigInteger

from database.config_setting import db

# 关系没有用 Model 创建,而是直接用定义的形式加入外键链接即可,
# 定义:所有的关系表---规范为 mapping结尾,而实体属性表则用 英文名称 表示

user2role = db.Table('user_role_mapping',
                     db.Column('user_id', db.BigInteger,
                               db.ForeignKey('user.id'), primary_key=True),
                     db.Column('role_id', db.BigInteger,
                               db.ForeignKey('role.id'), primary_key=True)
                     )

user2group = db.Table('user_group_mapping',
                      db.Column('user_id', db.BigInteger,
                                db.ForeignKey('user.id'), primary_key=True),
                      db.Column('group_id', db.BigInteger,
                                db.ForeignKey('user_group.id'),
                                primary_key=True)
                      )

role2group = db.Table('group_role_mapping',
                      db.Column('group_id', db.BigInteger,
                                db.ForeignKey('user_group.id'),
                                primary_key=True),