30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
import os
|
|
|
|
import requests
|
|
from zope import component
|
|
|
|
from ...utils import write_db_creds
|
|
from ..ResultView import ResultView
|
|
from ceo_common.interfaces import IConfig
|
|
|
|
|
|
class ResetDatabasePasswordResultView(ResultView):
|
|
def show_result(self, resp: requests.Response):
|
|
password = resp.json()['password']
|
|
db_type = self._model.db_type
|
|
db_type_name = 'MySQL' if db_type == 'mysql' else 'PostgreSQL'
|
|
db_host = component.getUtility(IConfig).get(f'{db_type}_host')
|
|
user_dict = self._model.user_dict
|
|
username = user_dict['uid']
|
|
filename = os.path.join(user_dict['home_directory'], f"ceo-{db_type}-info")
|
|
wrote_to_file = write_db_creds(
|
|
filename, user_dict, password, db_type, db_host)
|
|
self._add_text(f'The new {db_type_name} password for {username} is:')
|
|
self._add_text()
|
|
self._add_text(password)
|
|
self._add_text()
|
|
if wrote_to_file:
|
|
self._add_text(f"The settings in {filename} have been updated.")
|
|
else:
|
|
self._add_text(f"We were unable to update the settings in {filename}.")
|