Role.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. class Role(db.Model, UserMixin):
  10. __tablename__ = 'SYROLE'
  11. ID = db.Column(db.Integer, primary_key=True)
  12. CREATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  13. UPDATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  14. NAME = db.Column(db.String(100))
  15. DESCRIPTION = db.Column(db.String(200))
  16. ICONCLS = db.Column(db.String(100))
  17. SEQ = db.Column(db.Integer)
  18. ROLEKEY = db.Column(db.String(100))
  19. #包含资源
  20. resources = db.relationship('Resource',
  21. secondary=role_resource_table,
  22. backref=db.backref('roles', lazy='dynamic')) #资源所属角色
  23. def get_id(self):
  24. return str(self.ID)
  25. def to_dict(self):
  26. return dict([(k, getattr(self, k)) for k in self.__dict__.keys() if not k.startswith("_")])
  27. def __repr__(self):
  28. return '<Role name:%r description:%r iconCls:%r seq:%r>\n' \
  29. %(self.NAME, self.DESCRIPTION, self.ICONCLS, self.SEQ)
  30. def to_json(self):
  31. json = {
  32. 'roleId': self.ID,
  33. 'createTime': self.CREATEDATETIME.strftime('%Y-%m-%d %H:%M:%S'),
  34. 'updateTime': self.UPDATEDATETIME.strftime('%Y-%m-%d %H:%M:%S'),
  35. 'roleName': self.NAME,
  36. 'remark': self.DESCRIPTION,
  37. 'iconCls': self.ICONCLS,
  38. 'roleSort': self.SEQ,
  39. 'status': '0',
  40. 'roleKey': self.ROLEKEY
  41. }
  42. if hasattr(self, 'flag'):
  43. json['flag'] = self.flag
  44. return json