models.py 1018 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright: (c) OpenSpug Organization. https://github.com/openspug/spug
  2. # Copyright: (c) <spug.dev@gmail.com>
  3. # Released under the AGPL-3.0 License.
  4. from django.db import models
  5. from libs import ModelMixin
  6. import json
  7. KEYS_DEFAULT = {
  8. 'MFA': {'enable': False},
  9. 'verify_ip': True,
  10. 'ldap_service': {},
  11. 'spug_key': None,
  12. 'api_key': None,
  13. 'mail_service': {},
  14. 'private_key': None,
  15. 'public_key': None,
  16. }
  17. class Setting(models.Model, ModelMixin):
  18. key = models.CharField(max_length=50, unique=True)
  19. value = models.TextField()
  20. desc = models.CharField(max_length=255, null=True)
  21. def to_view(self):
  22. tmp = self.to_dict(selects=('key',))
  23. tmp['value'] = self.real_val
  24. return tmp
  25. @property
  26. def real_val(self):
  27. if self.value:
  28. return json.loads(self.value)
  29. else:
  30. return KEYS_DEFAULT.get(self.key)
  31. def __repr__(self):
  32. return '<Setting %r>' % self.key
  33. class Meta:
  34. db_table = 'settings'