summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-14 17:51:18 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:55 +0100
commit39ee687bfa6709b23ae969700230cc40adbd718c (patch)
treeb24929876d8f4a39c9b39bfcc30be78ad225ae25
parent56beeee5f8be48cc513e28721e9c17aa75fdd793 (diff)
downloadIshtar-39ee687bfa6709b23ae969700230cc40adbd718c.tar.bz2
Ishtar-39ee687bfa6709b23ae969700230cc40adbd718c.zip
🗃️ rename permission request fields to permission queries
-rw-r--r--archaeological_context_records/tests.py12
-rw-r--r--archaeological_finds/tests.py6
-rw-r--r--archaeological_operations/tests.py34
-rw-r--r--ishtar_common/admin.py16
-rw-r--r--ishtar_common/migrations/0258_rename_perm_query.py40
-rw-r--r--ishtar_common/models.py30
-rw-r--r--ishtar_common/models_common.py14
7 files changed, 96 insertions, 56 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index d15c24a00..20c70c458 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -45,7 +45,7 @@ from ishtar_common.models import (
from ishtar_common import forms_common
from archaeological_operations.tests import OperationInitTest, ImportTest, \
- TestPermissionRequest
+ TestPermissionQuery
from archaeological_operations import models as models_ope
from archaeological_operations.views import RELATION_FORMSET_EXTRA_FORM
from archaeological_context_records import models
@@ -1056,20 +1056,20 @@ class ContextRecordOldPermissionTest(ContextRecordInit, TestCase):
self.assertRedirects(response, "/")
-class ContextRecordPermissionTest(ContextRecordInit, TestPermissionRequest,
+class ContextRecordPermissionTest(ContextRecordInit, TestPermissionQuery,
TestCase):
fixtures = CONTEXT_RECORD_TOWNS_FIXTURES
def setUp(self):
IshtarSiteProfile.objects.create()
- self.setup_permission_requests(
+ self.setup_permission_queries(
"ope",
"operation",
permissions=["view_own_operation", "change_own_operation"],
create_profiles=False
)
- self.setup_permission_requests(
+ self.setup_permission_queries(
"cr",
"contextrecord",
permissions=["view_own_contextrecord", "change_own_contextrecord"],
@@ -1205,8 +1205,8 @@ class ContextRecordPermissionTest(ContextRecordInit, TestPermissionRequest,
# upstream with associated request for operation
gp = Group.objects.get(name="ope_xxx")
self.profile_types["cr_upstream"].groups.add(gp)
- self.profile_types["cr_upstream"].permission_requests.add(
- self.permission_requests["ope_associated_items"]
+ self.profile_types["cr_upstream"].permission_queries.add(
+ self.permission_queries["ope_associated_items"]
)
upstream_user.ishtaruser.generate_permission()
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index e0532effc..bc9a5647b 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -95,7 +95,7 @@ from ishtar_common.tests import (
SearchText,
)
from archaeological_operations.tests import ImportTest, create_operation, \
- create_administrativact, TestPermissionRequest
+ create_administrativact, TestPermissionQuery
from archaeological_context_records.tests import ContextRecordInit
from archaeological_operations.serializers import operation_serialization
@@ -2022,12 +2022,12 @@ class FindOldPermissionTest(FindInit, TestCase):
self.assertEqual(json.loads(content)["recordsTotal"], 1)
-class FindPermissionTest(FindInit, TestPermissionRequest, TestCase):
+class FindPermissionTest(FindInit, TestPermissionQuery, TestCase):
fixtures = FIND_FIXTURES
model = models.Find
def setUp(self):
- self.setup_permission_requests(
+ self.setup_permission_queries(
"find",
"find",
permissions=["view_own_find", "change_own_find"],
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index e0c5df3ef..e46c79ee6 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -69,7 +69,7 @@ from ishtar_common.models import (
Town,
ImporterColumn,
ImportColumnValue,
- PermissionRequest,
+ PermissionQuery,
Person,
DocumentTemplate,
PersonType,
@@ -3484,28 +3484,28 @@ class OperationSearchTest(TestCase, OperationInitTest, SearchText):
self.assertEqual(values["data"], expected_result)
-class TestPermissionRequest:
- def setup_permission_requests(self, prefix, model_name, permissions,
+class TestPermissionQuery:
+ def setup_permission_queries(self, prefix, model_name, permissions,
perm_requests=None, create_profiles=True):
content_type = ContentType.objects.get(model=model_name)
- if not hasattr(self, "permission_requests"):
- self.permission_requests = {}
- self.permission_requests.update({
- f"{prefix}_associated_items": PermissionRequest.objects.create(
+ if not hasattr(self, "permission_queries"):
+ self.permission_queries = {}
+ self.permission_queries.update({
+ f"{prefix}_associated_items": PermissionQuery.objects.create(
model=content_type,
request="",
include_associated_items=True,
include_upstream_items=False,
slug=f'{prefix}-associated_items'
),
- f"{prefix}_upstream": PermissionRequest.objects.create(
+ f"{prefix}_upstream": PermissionQuery.objects.create(
model=content_type,
request="",
include_associated_items=False,
include_upstream_items=True,
slug=f"{prefix}-upstream"
),
- f"{prefix}_areas": PermissionRequest.objects.create(
+ f"{prefix}_areas": PermissionQuery.objects.create(
model=content_type,
request="",
include_associated_items=False,
@@ -3516,15 +3516,15 @@ class TestPermissionRequest:
})
if perm_requests:
for idx, request in enumerate(perm_requests):
- pr = PermissionRequest.objects.create(
+ pr = PermissionQuery.objects.create(
model=content_type,
request=request,
include_associated_items=False,
include_upstream_items=False,
slug=f"{prefix}-req-{idx+1}"
)
- self.permission_requests[f"{prefix}_request_{idx + 1}"] = pr
- pr = PermissionRequest.objects.create(
+ self.permission_queries[f"{prefix}_request_{idx + 1}"] = pr
+ pr = PermissionQuery.objects.create(
model=content_type,
request=request,
include_associated_items=False,
@@ -3532,7 +3532,7 @@ class TestPermissionRequest:
limit_to_attached_areas=True,
slug=f"{prefix}-req-areas-{idx+1}"
)
- self.permission_requests[f"{prefix}_request_areas_{idx + 1}"] = pr
+ self.permission_queries[f"{prefix}_request_areas_{idx + 1}"] = pr
gp = Group.objects.create(name=f"{prefix}_xxx")
for permission in permissions:
for p in Permission.objects.filter(codename=permission).all():
@@ -3541,13 +3541,13 @@ class TestPermissionRequest:
return
if not hasattr(self, "profile_types"):
self.profile_types = {}
- for key in self.permission_requests.keys():
+ for key in self.permission_queries.keys():
profile_type = ProfileType.objects.create(
label=key,
txt_idx=key,
)
profile_type.groups.add(gp)
- profile_type.permission_requests.add(self.permission_requests[key])
+ profile_type.permission_queries.add(self.permission_queries[key])
self.profile_types[key] = profile_type
def _test_search(self, url, label, user, expected):
@@ -3734,13 +3734,13 @@ class OperationOldPermissionTest(TestCase, OperationInitTest):
self.assertRedirects(response, "/")
-class OperationPermissionTest(TestCase, TestPermissionRequest, OperationInitTest):
+class OperationPermissionTest(TestCase, TestPermissionQuery, OperationInitTest):
fixtures = FILE_FIXTURES
def setUp(self):
IshtarSiteProfile.objects.get_or_create(slug="default", active=True)
- self.setup_permission_requests(
+ self.setup_permission_queries(
"ope",
"operation",
permissions=["view_own_operation", "change_own_operation"],
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 7a621f601..2e85486cf 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -783,9 +783,9 @@ class PersonAdmin(HistorizedObjectAdmin):
admin_site.register(models.Person, PersonAdmin)
-class PermissionRequestAdminForm(forms.ModelForm):
+class PermissionQueryAdminForm(forms.ModelForm):
class Meta:
- model = models_common.PermissionRequest
+ model = models_common.PermissionQuery
exclude = []
def __init__(self, *args, **kwargs):
@@ -825,15 +825,15 @@ class PermissionRequestAdminForm(forms.ModelForm):
return self.cleaned_data
-@admin.register(models_common.PermissionRequest, site=admin_site)
-class PermissionRequestAdmin(admin.ModelAdmin):
+@admin.register(models_common.PermissionQuery, site=admin_site)
+class PermissionQueryAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("name",)}
search_fields = ("model__model__unaccent", "name")
list_display = (
"model", "name", "active", "include_associated_items",
"include_upstream_items", "limit_to_attached_areas"
)
- form = PermissionRequestAdminForm
+ form = PermissionQueryAdminForm
def get_content_types_with_sheet(with_empty=False):
@@ -1825,7 +1825,7 @@ admin_site.register(models.Area, AreaAdmin)
class ProfileTypeAdmin(GeneralTypeAdmin):
model = models.ProfileType
filter_vertical = ("groups",)
- autocomplete_fields = ("permission_requests", "filtered_sheets")
+ autocomplete_fields = ("permission_queries", "filtered_sheets")
def save_related(self, request, form, formsets, change):
super().save_related(request, form, formsets, change)
@@ -1851,8 +1851,8 @@ class ProfileTypeAdmin(GeneralTypeAdmin):
permissions_needed.add(perm_type)
else:
permissions_not_needed.add(perm_type)
- for permission_request in obj.permission_requests.all():
- model = permission_request.model.model
+ for permission_query in obj.permission_queries.all():
+ model = permission_query.model.model
for perm_type, perm_model in list(permissions_needed):
if model == perm_model:
permissions_needed.remove((perm_type, perm_model))
diff --git a/ishtar_common/migrations/0258_rename_perm_query.py b/ishtar_common/migrations/0258_rename_perm_query.py
new file mode 100644
index 000000000..700ed0434
--- /dev/null
+++ b/ishtar_common/migrations/0258_rename_perm_query.py
@@ -0,0 +1,40 @@
+# Generated by Django 2.2.24 on 2024-11-14 12:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('contenttypes', '0002_remove_content_type_name'),
+ ('ishtar_common', '0257_sheet_filters'),
+ ]
+
+ operations = [
+ migrations.RenameModel(
+ old_name='PermissionRequest',
+ new_name='PermissionQuery',
+ ),
+ migrations.AlterModelOptions(
+ name='filteredsheet',
+ options={'verbose_name': 'Filtered sheet - Sheet', 'verbose_name_plural': 'Filtered sheet - Sheets'},
+ ),
+ migrations.AlterModelOptions(
+ name='permissionquery',
+ options={'verbose_name': 'Permission query', 'verbose_name_plural': 'Permissions queries'},
+ ),
+ migrations.AlterModelOptions(
+ name='sheetfilter',
+ options={'verbose_name': 'Filtered sheet - Filter', 'verbose_name_plural': 'Filtered sheet - Filters'},
+ ),
+ migrations.RenameField(
+ model_name='profiletype',
+ old_name='permission_requests',
+ new_name='permission_queries',
+ ),
+ migrations.AlterField(
+ model_name='profiletype',
+ name='permission_queries',
+ field=models.ManyToManyField(blank=True, related_name='profile_types', to='ishtar_common.PermissionQuery', verbose_name='Permissions queries'),
+ ),
+ ]
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 9579cdbd1..8542c8963 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -175,7 +175,7 @@ from ishtar_common.models_common import (
OrderedHierarchicalType,
OrderedType,
OwnPerms,
- PermissionRequest,
+ PermissionQuery,
post_save_cache,
QuickAction,
SearchVectorConfig,
@@ -201,7 +201,7 @@ __all__ = [
"ImporterDuplicateField",
"Imported",
"FilteredSheet",
- "PermissionRequest",
+ "PermissionQuery",
"Regexp",
"ImportTarget",
"ItemKey",
@@ -3441,8 +3441,8 @@ class GDPRLog(models.Model):
class ProfileType(GeneralType):
groups = models.ManyToManyField(Group, verbose_name=_("Groups"), blank=True,
related_name="profile_types")
- permission_requests = models.ManyToManyField(
- PermissionRequest, verbose_name=_("Permissions requests"), blank=True,
+ permission_queries = models.ManyToManyField(
+ PermissionQuery, verbose_name=_("Permissions queries"), blank=True,
related_name="profile_types"
)
filtered_sheets = models.ManyToManyField(
@@ -3500,7 +3500,7 @@ post_save.connect(post_save_cache, sender=ProfileType)
post_delete.connect(post_save_cache, sender=ProfileType)
-def permission_requests_changed(sender, **kwargs):
+def permission_queries_changed(sender, **kwargs):
instance = kwargs.get("instance", None)
if not instance:
return
@@ -3509,9 +3509,9 @@ def permission_requests_changed(sender, **kwargs):
).update(need_permission_update=True)
-m2m_changed.connect(permission_requests_changed,
- sender=ProfileType.permission_requests.through)
-m2m_changed.connect(permission_requests_changed,
+m2m_changed.connect(permission_queries_changed,
+ sender=ProfileType.permission_queries.through)
+m2m_changed.connect(permission_queries_changed,
sender=ProfileType.groups.through)
@@ -3605,11 +3605,11 @@ class UserProfile(models.Model):
new_item.external_sources.add(src)
return new_item
- def _generate_permission(self, ishtar_user, content_type, permission_request,
+ def _generate_permission(self, ishtar_user, content_type, permission_query,
permissions, permission_type):
item_ids = []
model_class = content_type.model_class()
- if permission_request.include_associated_items:
+ if permission_query.include_associated_items:
if hasattr(model_class, "ishtar_users"):
item_ids += model_class.objects.filter(
ishtar_users__pk=ishtar_user.pk
@@ -3628,19 +3628,19 @@ class UserProfile(models.Model):
)
# DEBUG
# print("ishtar_common/models.py - 3578", item_ids, ishtar_user, content_type, permission_type)
- if permission_request.include_upstream_items:
+ if permission_query.include_upstream_items:
item_ids += model_class.get_ids_from_upper_permissions(
ishtar_user.user_ptr.pk, permissions
)
# DEBUG
# print("ishtar_common/models.py - 3584", item_ids, ishtar_user, content_type, permission_type)
- if permission_request.request or permission_request.limit_to_attached_areas:
+ if permission_query.request or permission_query.limit_to_attached_areas:
_get_item = get_item(
content_type.model_class(),
"", "", no_permission_check=True,
)
result = []
- query = permission_request.request
+ query = permission_query.request
if query:
if "{USER}" in query:
query = query.replace("{USER}", f"id:{ishtar_user.person_id}")
@@ -3648,7 +3648,7 @@ class UserProfile(models.Model):
q = _get_item(None, return_query=True, ishtaruser=ishtar_user,
query=query)
result = list(q.values_list("pk", flat=True))
- if permission_request.limit_to_attached_areas:
+ if permission_query.limit_to_attached_areas:
profile = ishtar_user.current_profile
if not profile: # no areas attached
return []
@@ -3699,7 +3699,7 @@ class UserProfile(models.Model):
permissions += list(group.permissions.filter(
codename__contains=permission_type
).all())
- q_req = self.profile_type.permission_requests.filter(
+ q_req = self.profile_type.permission_queries.filter(
model=content_type, active=True
)
item_ids = []
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index cd74ca068..f42b6a08a 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -3108,7 +3108,7 @@ class GeographicItem(models.Model):
return lst
-class PermissionRequest(models.Model):
+class PermissionQuery(models.Model):
model = models.ForeignKey(ContentType, related_name="permissions",
verbose_name=_("Model"), on_delete=models.CASCADE)
name = models.CharField(_("Name"), max_length=200)
@@ -3137,22 +3137,22 @@ class PermissionRequest(models.Model):
ADMIN_SECTION = _("Account")
class Meta:
- verbose_name = _("Permission request")
- verbose_name_plural = _("Permissions requests")
+ verbose_name = _("Permission query")
+ verbose_name_plural = _("Permissions queries")
def __str__(self):
return f"{self.model} - {self.name}"
-def post_save_permission_request(sender, **kwargs):
- permission_request = kwargs["instance"]
+def post_save_permission_query(sender, **kwargs):
+ permission_query = kwargs["instance"]
IshtarUser = apps.get_model("ishtar_common", "IshtarUser")
IshtarUser.objects.filter(
- person__profiles__profile_type__permission_requests__pk=permission_request.pk
+ person__profiles__profile_type__permission_queries__pk=permission_query.pk
).update(need_permission_update=True)
-post_save.connect(post_save_permission_request, sender=PermissionRequest)
+post_save.connect(post_save_permission_query, sender=PermissionQuery)
class SerializeItem: