user_attributes.py 954 B

12345678910111213141516171819202122232425262728293031
  1. from flask_appbuilder import Model
  2. from sqlalchemy import Column, ForeignKey, Integer
  3. from sqlalchemy.orm import relationship
  4. from superset import security_manager
  5. from superset.models.helpers import AuditMixinNullable
  6. class UserAttribute(Model, AuditMixinNullable):
  7. """
  8. Custom attributes attached to the user.
  9. Extending the user attribute is tricky due to its dependency on the
  10. authentication typew an circular dependencies in Superset. Instead, we use
  11. a custom model for adding attributes.
  12. """
  13. __tablename__ = 'user_attribute'
  14. id = Column(Integer, primary_key=True) # pylint: disable=invalid-name
  15. user_id = Column(Integer, ForeignKey('ab_user.id'))
  16. user = relationship(
  17. security_manager.user_model,
  18. backref='extra_attributes',
  19. foreign_keys=[user_id],
  20. )
  21. welcome_dashboard_id = Column(Integer, ForeignKey('dashboards.id'))
  22. welcome_dashboard = relationship('Dashboard')