summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.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/admin.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/admin.py')
-rw-r--r--ishtar_common/admin.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 07750ffe7..0b73f5708 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -554,8 +554,12 @@ admin_site.register(models.Person, PersonAdmin)
class AuthorAdmin(admin.ModelAdmin):
list_display = ["person", "author_type"]
list_filter = ("author_type",)
- search_fields = ("person__name", "person__surname", "person__attached_to__name",
- "author_type__label")
+ search_fields = (
+ "person__name",
+ "person__surname",
+ "person__attached_to__name",
+ "author_type__label",
+ )
model = models.Author
autocomplete_fields = ["person"]
@@ -2082,3 +2086,40 @@ class DocumentTemplateAdmin(admin.ModelAdmin):
admin_site.register(models.DocumentTemplate, DocumentTemplateAdmin)
+
+class ApiUserAdmin(admin.ModelAdmin):
+ list_display = ("user_ptr", "ip")
+
+
+admin_site.register(models.ApiUser, ApiUserAdmin)
+
+
+def get_main_content_types_query():
+ CONTENT_TYPES = (
+ ("archaeological_operations", "operation"),
+ )
+ pks = []
+ for app_label, model_name in CONTENT_TYPES:
+ try:
+ ct = ContentType.objects.get(app_label=app_label, model=model_name)
+ pks.append(ct.pk)
+ except ContentType.DoesNotExist:
+ pass
+ return ContentType.objects.filter(pk__in=pks)
+
+
+class ApiSearchModelAdminForm(forms.ModelForm):
+ class Meta:
+ model = models.ApiUser
+ exclude = []
+ content_type = forms.ModelChoiceField(
+ label=_("Content type"), queryset=get_main_content_types_query()
+ )
+
+
+class ApiSearchModelAdmin(admin.ModelAdmin):
+ form = ApiSearchModelAdminForm
+ list_display = ("user", "content_type")
+
+
+admin_site.register(models.ApiSearchModel, ApiSearchModelAdmin)