kopia lustrzana https://github.com/wagtail/wagtail
rodzic
46389e8344
commit
b5e068e6a6
|
@ -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):
|
||||
|
|
|
@ -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.')],
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -227,7 +227,7 @@ class FeatureCompleteToyViewSet(ModelViewSet):
|
|||
|
||||
panels = [
|
||||
FieldPanel("name"),
|
||||
FieldPanel("release_date"),
|
||||
FieldPanel("release_date", permission="tests.can_set_release_date"),
|
||||
]
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue