models.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: models.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-07-24 15:10:52 (CST)
  9. # Last Update:星期日 2016-7-24 15:11:46 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from maple import db
  14. from maple.tag.models import Tags
  15. from datetime import datetime
  16. from flask_login import UserMixin
  17. from werkzeug.security import (generate_password_hash, check_password_hash)
  18. from sqlalchemy import event
  19. roles_permissions = db.Table(
  20. 'roles_permissions',
  21. db.Column('role_id', db.Integer, db.ForeignKey('roles.id')),
  22. db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id')))
  23. routes_permissions = db.Table(
  24. 'routes_permissions',
  25. db.Column('route_id', db.Integer, db.ForeignKey('routes.id')),
  26. db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id')))
  27. class Route(db.Model):
  28. __tablename__ = 'routes'
  29. id = db.Column(db.Integer, primary_key=True)
  30. endpoint = db.Column(db.String(256), nullable=False)
  31. rule = db.Column(db.String(512), nullable=False)
  32. permissions = db.relationship('Permiss',
  33. secondary=routes_permissions,
  34. backref=db.backref('routes'))
  35. def __str__(self):
  36. return "<%s : %s>" % (self.endpoint, self.rule)
  37. def __repr__(self):
  38. return "<Route %r>" % self.endpoint
  39. class Permiss(db.Model):
  40. __tablename__ = 'permissions'
  41. id = db.Column(db.Integer, primary_key=True)
  42. name = db.Column(db.String(512), nullable=False)
  43. is_allow = db.Column(db.Boolean, default=True)
  44. method = db.Column(db.String(16), nullable=False)
  45. roles = db.relationship('Role',
  46. secondary=roles_permissions,
  47. backref=db.backref('permissions'))
  48. def __str__(self):
  49. if self.is_allow:
  50. return self.name + '允许' + self.method
  51. else:
  52. return self.name + '禁止' + self.method
  53. def __repr__(self):
  54. return "<Permiss %r>" % self.id