Test field permissions on ModelViewTest

stable/6.0.x v6.0.3
Jake Howard 2024-04-25 16:52:48 +01:00 zatwierdzone przez Matt Westcott
rodzic 46389e8344
commit b5e068e6a6
4 zmienionych plików z 51 dodań i 48 usunięć

Wyświetl plik

@ -1470,6 +1470,35 @@ class TestEditHandler(WagtailTestUtils, TestCase):
modal_workflow_script = soup.select_one(f'script[src="{modal_workflow_js}"]')
self.assertIsNotNone(modal_workflow_script)
def test_field_permissions(self):
self.user.is_superuser = False
self.user.save()
self.user.user_permissions.add(
Permission.objects.get(
content_type__app_label="wagtailadmin", codename="access_admin"
),
Permission.objects.get(
content_type__app_label=self.object._meta.app_label,
codename=get_permission_codename("change", self.object._meta),
),
)
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
self.assertEqual(list(response.context["form"].fields), ["name"])
self.user.user_permissions.add(
Permission.objects.get(
codename="can_set_release_date",
)
)
response = self.client.get(self.url)
self.assertEqual(response.status_code, 200)
self.assertEqual(
list(response.context["form"].fields), ["name", "release_date"]
)
class TestDefaultMessages(WagtailTestUtils, TestCase):
def setUp(self):

Wyświetl plik

@ -1,4 +1,4 @@
# Generated by Django 4.2.11 on 2024-04-23 13:53
# Generated by Django 4.2.11 on 2024-04-25 15:51
from django.db import migrations, models
import django.db.models.deletion
@ -7,65 +7,36 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
("wagtailcore", "0091_remove_revision_submitted_for_moderation"),
("tests", "0033_customcopyformpage"),
('wagtailcore', '0091_remove_revision_submitted_for_moderation'),
('tests', '0033_customcopyformpage'),
]
operations = [
migrations.CreateModel(
name="TestPermissionedGenericSetting",
name='TestPermissionedGenericSetting',
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=100)),
("sensitive_email", models.EmailField(max_length=50)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('sensitive_email', models.EmailField(max_length=50)),
],
options={
"permissions": [
(
"can_edit_sensitive_email_generic_setting",
"Can edit sensitive email generic setting.",
)
],
'permissions': [('can_edit_sensitive_email_generic_setting', 'Can edit sensitive email generic setting.')],
},
),
migrations.AlterModelOptions(
name='featurecompletetoy',
options={'permissions': [('can_set_release_date', 'Can set release date')]},
),
migrations.CreateModel(
name="TestPermissionedSiteSetting",
name='TestPermissionedSiteSetting',
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=100)),
("sensitive_email", models.EmailField(max_length=50)),
(
"site",
models.OneToOneField(
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="wagtailcore.site",
),
),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('sensitive_email', models.EmailField(max_length=50)),
('site', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.site')),
],
options={
"permissions": [
(
"can_edit_sensitive_email_site_setting",
"Can edit sensitive email site setting.",
)
],
'permissions': [('can_edit_sensitive_email_site_setting', 'Can edit sensitive email site setting.')],
},
),
]

Wyświetl plik

@ -2272,6 +2272,9 @@ class FeatureCompleteToy(index.Indexed, models.Model):
def __str__(self):
return f"{self.name} ({self.release_date})"
class Meta:
permissions = [("can_set_release_date", "Can set release date")]
class PurgeRevisionsProtectedTestModel(models.Model):
revision = models.OneToOneField(

Wyświetl plik

@ -227,7 +227,7 @@ class FeatureCompleteToyViewSet(ModelViewSet):
panels = [
FieldPanel("name"),
FieldPanel("release_date"),
FieldPanel("release_date", permission="tests.can_set_release_date"),
]