20
20
#
21
21
22
22
import logging
23
- from twisted .internet import defer
24
23
import requests
25
24
import json
26
25
import time
@@ -43,8 +42,7 @@ def __init__(self, config, account_handler):
43
42
logger .info ('Endpoint: %s' , self .endpoint )
44
43
logger .info ('Enforce lowercase username during registration: %s' , self .regLower )
45
44
46
- @defer .inlineCallbacks
47
- def check_password (self , user_id , password ):
45
+ async def check_password (self , user_id , password ):
48
46
logger .info ("Got password check for " + user_id )
49
47
data = {'user' : {'id' : user_id , 'password' : password }}
50
48
r = requests .post (self .endpoint + '/_matrix-internal/identity/v1/check_credentials' , json = data )
@@ -58,20 +56,20 @@ def check_password(self, user_id, password):
58
56
auth = r ["auth" ]
59
57
if not auth ["success" ]:
60
58
logger .info ("User not authenticated" )
61
- defer . returnValue ( False )
59
+ return False
62
60
63
61
localpart = user_id .split (":" , 1 )[0 ][1 :]
64
62
logger .info ("User %s authenticated" , user_id )
65
63
66
64
registration = False
67
- if not (yield self .account_handler .check_user_exists (user_id )):
65
+ if not (await self .account_handler .check_user_exists (user_id )):
68
66
logger .info ("User %s does not exist yet, creating..." , user_id )
69
67
70
68
if localpart != localpart .lower () and self .regLower :
71
69
logger .info ('User %s was cannot be created due to username lowercase policy' , localpart )
72
- defer . returnValue ( False )
70
+ return False
73
71
74
- user_id , access_token = (yield self .account_handler .register (localpart = localpart ))
72
+ user_id , access_token = (await self .account_handler .register (localpart = localpart ))
75
73
registration = True
76
74
logger .info ("Registration based on REST data was successful for %s" , user_id )
77
75
else :
@@ -81,16 +79,12 @@ def check_password(self, user_id, password):
81
79
logger .info ("Handling profile data" )
82
80
profile = auth ["profile" ]
83
81
84
- # fixme: temporary fix
85
- try :
86
- store = yield self .account_handler ._hs .get_profile_handler ().store # for synapse >= 1.9.0
87
- except AttributeError :
88
- store = yield self .account_handler .hs .get_profile_handler ().store # for synapse < 1.9.0
82
+ store = self .account_handler ._hs .get_profile_handler ().store
89
83
90
84
if "display_name" in profile and ((registration and self .config .setNameOnRegister ) or (self .config .setNameOnLogin )):
91
85
display_name = profile ["display_name" ]
92
86
logger .info ("Setting display name to '%s' based on profile data" , display_name )
93
- yield store .set_profile_displayname (localpart , display_name )
87
+ await store .set_profile_displayname (localpart , display_name )
94
88
else :
95
89
logger .info ("Display name was not set because it was not given or policy restricted it" )
96
90
@@ -106,9 +100,9 @@ def check_password(self, user_id, password):
106
100
logger .info ("Looking for 3PID %s:%s in user profile" , medium , address )
107
101
108
102
validated_at = time_msec ()
109
- if not (yield store .get_user_id_by_threepid (medium , address )):
103
+ if not (await store .get_user_id_by_threepid (medium , address )):
110
104
logger .info ("3PID is not present, adding" )
111
- yield store .user_add_threepid (
105
+ await store .user_add_threepid (
112
106
user_id ,
113
107
medium ,
114
108
address ,
@@ -119,12 +113,12 @@ def check_password(self, user_id, password):
119
113
logger .info ("3PID is present, skipping" )
120
114
121
115
if (self .config .replaceThreepid ):
122
- for threepid in (yield store .user_get_threepids (user_id )):
116
+ for threepid in (await store .user_get_threepids (user_id )):
123
117
medium = threepid ["medium" ].lower ()
124
118
address = threepid ["address" ].lower ()
125
119
if {"medium" : medium , "address" : address } not in external_3pids :
126
120
logger .info ("3PID is not present in external datastore, deleting" )
127
- yield store .user_delete_threepid (
121
+ await store .user_delete_threepid (
128
122
user_id ,
129
123
medium ,
130
124
address
@@ -135,7 +129,7 @@ def check_password(self, user_id, password):
135
129
else :
136
130
logger .info ("No profile data" )
137
131
138
- defer . returnValue ( True )
132
+ return True
139
133
140
134
@staticmethod
141
135
def parse_config (config ):
0 commit comments