diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-06 18:36:16 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:58 +0100 |
commit | a1a1b524fd02a57bd514ed95580fea8b67e1cede (patch) | |
tree | 0327937f9c376ae95b0777faea227bb628528dab /ishtar_common/models_rest.py | |
parent | 14c5ccd235d963457485cd907712b43672c5e400 (diff) | |
download | Ishtar-a1a1b524fd02a57bd514ed95580fea8b67e1cede.tar.bz2 Ishtar-a1a1b524fd02a57bd514ed95580fea8b67e1cede.zip |
Syndication - docs, api permissions
Permissions by token, IP and by model.
Diffstat (limited to 'ishtar_common/models_rest.py')
-rw-r--r-- | ishtar_common/models_rest.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ishtar_common/models_rest.py b/ishtar_common/models_rest.py new file mode 100644 index 000000000..7d321ca92 --- /dev/null +++ b/ishtar_common/models_rest.py @@ -0,0 +1,32 @@ +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.contrib.gis.db import models + +from ishtar_common.utils import ugettext_lazy as _ + + +class ApiUser(models.Model): + user_ptr = models.OneToOneField( + User, primary_key=True, related_name="apiuser", on_delete=models.CASCADE + ) + ip = models.GenericIPAddressField(verbose_name=_("IP")) + + class Meta: + verbose_name = _("Api - User") + verbose_name_plural = _("Api - Users") + + def __str__(self): + return self.user_ptr.username + + +class ApiSearchModel(models.Model): + user = models.ForeignKey(ApiUser, on_delete=models.CASCADE) + content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) + limit_query = models.TextField( + verbose_name=_("Limit query"), blank=True, null=True, + help_text=_("Search query add to each request") + ) + + class Meta: + verbose_name = _("Api - Search model") + verbose_name_plural = _("Api - Search models") |