mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-10-15 04:27:14 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d891c368e8 |
No files matched your search
@@ -130,12 +130,14 @@ class DocumentMetadataOverrides:
|
|||||||
get_users_with_perms(
|
get_users_with_perms(
|
||||||
doc,
|
doc,
|
||||||
only_with_perms_in=["view_document"],
|
only_with_perms_in=["view_document"],
|
||||||
|
with_group_users=False,
|
||||||
).values_list("id", flat=True),
|
).values_list("id", flat=True),
|
||||||
)
|
)
|
||||||
overrides.change_users = list(
|
overrides.change_users = list(
|
||||||
get_users_with_perms(
|
get_users_with_perms(
|
||||||
doc,
|
doc,
|
||||||
only_with_perms_in=["change_document"],
|
only_with_perms_in=["change_document"],
|
||||||
|
with_group_users=False,
|
||||||
).values_list("id", flat=True),
|
).values_list("id", flat=True),
|
||||||
)
|
)
|
||||||
overrides.custom_fields = {
|
overrides.custom_fields = {
|
||||||
|
|||||||
@@ -34,8 +34,10 @@ from documents.tests.utils import GetConsumerMixin
|
|||||||
from paperless_mail.models import MailRule
|
from paperless_mail.models import MailRule
|
||||||
from paperless_testing.assertions import FileSystemAssertsMixin
|
from paperless_testing.assertions import FileSystemAssertsMixin
|
||||||
from paperless_testing.dirs import DirectoriesMixin
|
from paperless_testing.dirs import DirectoriesMixin
|
||||||
|
from paperless_testing.factories import DocumentFactory
|
||||||
from paperless_testing.factories import UserFactory
|
from paperless_testing.factories import UserFactory
|
||||||
from paperless_testing.fakes.progress import FakeProgressManager
|
from paperless_testing.fakes.progress import FakeProgressManager
|
||||||
|
from paperless_testing.permissions import grant_object
|
||||||
|
|
||||||
|
|
||||||
class _BaseNewStyleParser:
|
class _BaseNewStyleParser:
|
||||||
@@ -1683,6 +1685,32 @@ class TestMetadataOverrides(TestCase):
|
|||||||
self.assertEqual(base.actor_id, 2)
|
self.assertEqual(base.actor_id, 2)
|
||||||
self.assertEqual(base.version_label, "v2")
|
self.assertEqual(base.version_label, "v2")
|
||||||
|
|
||||||
|
def test_from_document_copies_user_and_group_grants_separately(self) -> None:
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- A document with view and change granted directly to one user and
|
||||||
|
to a group with another user as a member
|
||||||
|
WHEN:
|
||||||
|
- Overrides are built from the document
|
||||||
|
THEN:
|
||||||
|
- The user lists hold only the directly granted user
|
||||||
|
- The group lists hold the group
|
||||||
|
"""
|
||||||
|
direct_user = UserFactory()
|
||||||
|
group_member = UserFactory()
|
||||||
|
group = Group.objects.create(name="group")
|
||||||
|
group_member.groups.add(group)
|
||||||
|
document = DocumentFactory()
|
||||||
|
grant_object(direct_user, document, "view_document", "change_document")
|
||||||
|
grant_object(group, document, "view_document", "change_document")
|
||||||
|
|
||||||
|
overrides = DocumentMetadataOverrides.from_document(document)
|
||||||
|
|
||||||
|
self.assertEqual(overrides.view_users, [direct_user.pk])
|
||||||
|
self.assertEqual(overrides.change_users, [direct_user.pk])
|
||||||
|
self.assertEqual(overrides.view_groups, [group.pk])
|
||||||
|
self.assertEqual(overrides.change_groups, [group.pk])
|
||||||
|
|
||||||
|
|
||||||
class TestBarcodeApplyDetectedASN(TestCase):
|
class TestBarcodeApplyDetectedASN(TestCase):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in new issue
Block a user