28 lines
717 B
Python
28 lines
717 B
Python
from zope import component
|
|
|
|
from ..AbstractTransaction import AbstractTransaction
|
|
from .utils import gen_password
|
|
from ceo_common.interfaces import ILDAPService
|
|
|
|
|
|
class ResetPasswordTransaction(AbstractTransaction):
|
|
"""Transaction to reset a user's password."""
|
|
|
|
operations = [
|
|
'change_password',
|
|
]
|
|
|
|
def __init__(self, username: str):
|
|
super().__init__()
|
|
self.username = username
|
|
self.ldap_srv = component.getUtility(ILDAPService)
|
|
|
|
def child_execute_iter(self):
|
|
user = self.ldap_srv.get_user(self.username)
|
|
|
|
password = gen_password()
|
|
user.change_password(password)
|
|
yield 'change_password'
|
|
|
|
self.finish({'password': password})
|