Add User.set_password.
This commit is contained in:
		
							parent
							
								
									2dd71a002b
								
							
						
					
					
						commit
						75c6c11b0d
					
				
					 1 changed files with 17 additions and 0 deletions
				
			
		|  | @ -3,6 +3,7 @@ This file provides the data objects that should not be instantiated directly, | |||
| but are returned by the PDB accesses. | ||||
| ''' | ||||
| import abc | ||||
| import bcrypt | ||||
| import os | ||||
| import PIL.Image | ||||
| import re | ||||
|  | @ -1687,6 +1688,22 @@ class User(ObjectBase): | |||
|         self.photodb.sql_update(table='users', pairs=data, where_key='id') | ||||
|         self._display_name = display_name | ||||
| 
 | ||||
|     @decorators.required_feature('user.edit') | ||||
|     @decorators.transaction | ||||
|     def set_password(self, password): | ||||
|         if not isinstance(password, bytes): | ||||
|             password = password.encode('utf-8') | ||||
| 
 | ||||
|         self.photodb.assert_valid_password(password) | ||||
|         hashed_password = bcrypt.hashpw(password, bcrypt.gensalt()) | ||||
| 
 | ||||
|         data = { | ||||
|             'id': self.id, | ||||
|             'password': hashed_password, | ||||
|         } | ||||
|         self.photodb.sql_update(table='users', pairs=data, where_key='id') | ||||
|         self.hashed_password = hashed_password | ||||
| 
 | ||||
| class WarningBag: | ||||
|     def __init__(self): | ||||
|         self.warnings = set() | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue