mirror of
https://github.com/django/django.git
synced 2024-12-23 01:25:58 +00:00
Fixed #34165 -- Made permissions creation respect the "using" parameter.
This commit is contained in:
parent
0bd2c0c901
commit
5aaad5f39c
@ -95,11 +95,16 @@ def create_permissions(
|
|||||||
.values_list("content_type", "codename")
|
.values_list("content_type", "codename")
|
||||||
)
|
)
|
||||||
|
|
||||||
perms = [
|
perms = []
|
||||||
Permission(codename=codename, name=name, content_type=ct)
|
for ct, (codename, name) in searched_perms:
|
||||||
for ct, (codename, name) in searched_perms
|
if (ct.pk, codename) not in all_perms:
|
||||||
if (ct.pk, codename) not in all_perms
|
permission = Permission()
|
||||||
]
|
permission._state.db = using
|
||||||
|
permission.codename = codename
|
||||||
|
permission.name = name
|
||||||
|
permission.content_type = ct
|
||||||
|
perms.append(permission)
|
||||||
|
|
||||||
Permission.objects.using(using).bulk_create(perms)
|
Permission.objects.using(using).bulk_create(perms)
|
||||||
if verbosity >= 2:
|
if verbosity >= 2:
|
||||||
for perm in perms:
|
for perm in perms:
|
||||||
|
@ -1485,3 +1485,22 @@ class CreatePermissionsTests(TestCase):
|
|||||||
codename=codename,
|
codename=codename,
|
||||||
).exists()
|
).exists()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultDBRouter:
|
||||||
|
"""Route all writes to default."""
|
||||||
|
|
||||||
|
def db_for_write(self, model, **hints):
|
||||||
|
return "default"
|
||||||
|
|
||||||
|
|
||||||
|
@override_settings(DATABASE_ROUTERS=[DefaultDBRouter()])
|
||||||
|
class CreatePermissionsMultipleDatabasesTests(TestCase):
|
||||||
|
databases = {"default", "other"}
|
||||||
|
|
||||||
|
def test_set_permissions_fk_to_using_parameter(self):
|
||||||
|
Permission.objects.using("other").delete()
|
||||||
|
with self.assertNumQueries(6, using="other") as captured_queries:
|
||||||
|
create_permissions(apps.get_app_config("auth"), verbosity=0, using="other")
|
||||||
|
self.assertIn("INSERT INTO", captured_queries[-1]["sql"].upper())
|
||||||
|
self.assertGreater(Permission.objects.using("other").count(), 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user