Role.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # coding:utf-8
  2. from app import db
  3. from flask_login import UserMixin, AnonymousUserMixin
  4. from datetime import datetime
  5. #角色资源关联表
  6. role_resource_table = db.Table('SYROLE_SYRESOURCE', db.metadata,
  7. db.Column('SYROLE_ID', db.String, db.ForeignKey('SYROLE.ID')),
  8. db.Column('SYRESOURCE_ID', db.String, db.ForeignKey('SYRESOURCE.ID')))
  9. role_organization_table = db.Table('SYROLE_SYORGANIZATION', db.metadata,
  10. db.Column('SYROLE_ID', db.String, db.ForeignKey('SYROLE.ID')),
  11. db.Column('SYORGANIZATION_ID', db.String, db.ForeignKey('SYORGANIZATION.ID')))
  12. class Role(db.Model, UserMixin):
  13. __tablename__ = 'SYROLE'
  14. ID = db.Column(db.Integer, primary_key=True)
  15. CREATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  16. UPDATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  17. NAME = db.Column(db.String(100))
  18. DESCRIPTION = db.Column(db.String(200))
  19. ICONCLS = db.Column(db.String(100))
  20. SEQ = db.Column(db.Integer)
  21. ROLEKEY = db.Column(db.String(100))
  22. DATASCOPE = db.Column(db.Integer)
  23. STATUS = db.Column(db.String(10))
  24. #包含资源
  25. resources = db.relationship('Resource',
  26. secondary=role_resource_table,
  27. backref=db.backref('roles', lazy='dynamic')) #资源所属角色
  28. #包含部门
  29. depts = db.relationship('Organization',
  30. secondary=role_organization_table,
  31. backref=db.backref('roles', lazy='dynamic')) #部门所属角色
  32. def get_id(self):
  33. return str(self.ID)
  34. def to_dict(self):
  35. return dict([(k, getattr(self, k)) for k in self.__dict__.keys() if not k.startswith("_")])
  36. def __repr__(self):
  37. return '<Role name:%r description:%r iconCls:%r seq:%r>\n' \
  38. %(self.NAME, self.DESCRIPTION, self.ICONCLS, self.SEQ)
  39. def to_json(self):
  40. json = {
  41. 'roleId': self.ID,
  42. 'createTime': self.CREATEDATETIME.strftime('%Y-%m-%d %H:%M:%S'),
  43. 'updateTime': self.UPDATEDATETIME.strftime('%Y-%m-%d %H:%M:%S'),
  44. 'roleName': self.NAME,
  45. 'remark': self.DESCRIPTION,
  46. 'iconCls': self.ICONCLS,
  47. 'roleSort': self.SEQ,
  48. 'status': self.STATUS,
  49. 'roleKey': self.ROLEKEY,
  50. 'dataScope': self.DATASCOPE
  51. }
  52. if hasattr(self, 'flag'):
  53. json['flag'] = self.flag
  54. return json