summaryrefslogtreecommitdiff
path: root/ishtar_common/models_rest.py
diff options
context:
space:
mode:
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
commita1a1b524fd02a57bd514ed95580fea8b67e1cede (patch)
tree0327937f9c376ae95b0777faea227bb628528dab /ishtar_common/models_rest.py
parent14c5ccd235d963457485cd907712b43672c5e400 (diff)
downloadIshtar-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.py32
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")