from defence360agent.rpc_tools import lookup

from defence360agent.utils import Scope
from im360.utils import change_system_password, generate_strong_password


class PasswordResetEndpoints(lookup.RootEndpoints):
    SCOPE = Scope.IM360

    @lookup.bind("enduser", "password", "reset")
    async def enduser_password_reset(self, username, password=None):
        return change_system_password(
            username, generate_strong_password() if not password else password
        )
