@@ -48,7 +48,7 @@ async def _login(cls, credentials) -> dict:
4848 return data
4949
5050 async def _fill_groups (self ):
51- _ , domain = self .email .split ('@' )
51+ _ , domain = self .email .split ("@" )
5252 classes = class2filter (config .ldap .groupClasses )
5353 dn = f"{ config .ldap .domainDN .format (domain )} ,{ config .ldap .roleBase } "
5454 client = get_client ()
@@ -223,12 +223,12 @@ async def get_by_email(cls, email):
223223class User (UserSafe ):
224224 password : str = Field ("" , description = ("Password" ))
225225
226- async def save (self ):
226+ async def save (self , password ):
227227 try :
228228 uidNext = await next_uid ()
229229 gidNext = await next_gid ()
230230 _ , domain = self .email .split ("@" )
231- data = LDAPEntry (config .ldap .roleDN .format (self .uid , domain ))
231+ data = LDAPEntry (config .ldap .groupDN .format (self .uid , domain ))
232232 data ["objectClass" ] = config .ldap .groupClasses
233233 data ["cn" ] = self .uid
234234 data ["gidNumber" ] = gidNext
@@ -247,9 +247,8 @@ async def save(self):
247247 data ["sn" ] = self .uid
248248 data ["uidNumber" ] = uidNext
249249 data ["gidNumber" ] = gidNext
250- data ["userClass" ] = self . userClass
250+ data ["userClass" ] = userClass
251251 data ["homeDirectory" ] = f"/var/mail/domains/{ domain } /{ self .uid } "
252- data .change_attribute ("userPassword" , LDAPModOp .REPLACE , (self .password ,))
253252 data ["mail" ] = self .email
254253 await save_data (data )
255254
@@ -259,7 +258,7 @@ async def save(self):
259258 raise HTTPException (status_code = 403 , detail = "Failed to login" )
260259 client = get_client ()
261260 async with client .connect (is_async = True ) as conn :
262- await conn .modify_password (self .dn , self . password )
261+ await conn .modify_password (self .dn , password )
263262
264263 async def update (
265264 self ,
@@ -275,39 +274,39 @@ async def update(
275274 res = await conn .search (self .dn , LDAPSearchScope .BASE )
276275 data = res [0 ]
277276 for field in kwargs :
278- if field == ' uidNumber' or field == ' gidNumber' :
277+ if field == " uidNumber" or field == " gidNumber" :
279278 if kwargs [field ] == 0 :
280279 continue
281280 data [field ] = kwargs [field ]
282281 uclass = self .userClass .copy ()
283282 if self .active :
284- uclass .append (' active' )
283+ uclass .append (" active" )
285284 if self .admin :
286- uclass .append (' admin' )
285+ uclass .append (" admin" )
287286 if active is not None :
288287 if active :
289- if ' active' not in uclass :
290- uclass .append (' active' )
288+ if " active" not in uclass :
289+ uclass .append (" active" )
291290 self .active = True
292291 else :
293- if ' active' in uclass :
294- uclass .remove (' active' )
292+ if " active" in uclass :
293+ uclass .remove (" active" )
295294 self .active = False
296295 if admin is not None :
297296 if admin :
298- if ' admin' not in uclass :
299- uclass .append (' admin' )
297+ if " admin" not in uclass :
298+ uclass .append (" admin" )
300299 self .admin = True
301300 else :
302- if ' admin' in uclass :
303- uclass .remove (' admin' )
301+ if " admin" in uclass :
302+ uclass .remove (" admin" )
304303 self .admin = False
305304 data ["userClass" ] = uclass
306305 await data .modify ()
307306 if password is not None :
308307 await conn .modify_password (self .dn , password )
309308 for field in kwargs :
310- if field == ' uidNumber' or field == ' gidNumber' :
309+ if field == " uidNumber" or field == " gidNumber" :
311310 if kwargs [field ] == 0 :
312311 continue
313312 setattr (self , field , kwargs [field ])
0 commit comments