8
8
from django .utils .functional import SimpleLazyObject
9
9
from django .utils .text import format_lazy
10
10
from django .utils .version import get_version_tuple
11
+ from pymongo .encryption_options import AutoEncryptionOpts
11
12
from pymongo .uri_parser import parse_uri as pymongo_parse_uri
12
13
13
14
@@ -33,11 +34,11 @@ def get_auto_encryption_options(crypt_shared_lib_path=None):
33
34
key_vault_collection_name = "__keyVault"
34
35
key_vault_namespace = f"{ key_vault_database_name } .{ key_vault_collection_name } "
35
36
kms_providers = {}
36
- return {
37
- "kms_providers" : kms_providers ,
38
- "key_vault_namespace" : key_vault_namespace ,
39
- " crypt_shared_lib_path" : crypt_shared_lib_path ,
40
- }
37
+ return AutoEncryptionOpts (
38
+ key_vault_namespace = key_vault_namespace ,
39
+ kms_providers = kms_providers ,
40
+ crypt_shared_lib_path = crypt_shared_lib_path ,
41
+ )
41
42
42
43
43
44
def parse_uri (uri , * , auto_encryption_options = None , db_name = None , test = None ):
@@ -62,7 +63,7 @@ def parse_uri(uri, *, auto_encryption_options=None, db_name=None, test=None):
62
63
raise ImproperlyConfigured ("You must provide the db_name parameter." )
63
64
options = uri .get ("options" )
64
65
if auto_encryption_options :
65
- options = {** uri .get ("options" ), ** auto_encryption_options }
66
+ options = {** uri .get ("options" ), "auto_encryption_options" : auto_encryption_options }
66
67
settings_dict = {
67
68
"ENGINE" : "django_mongodb_backend" ,
68
69
"NAME" : db_name ,
0 commit comments