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 []
# -*- 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',
# -*- 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),