Ensure that the browser tree should be refreshed after changing the ownership. Fixes #7607

This commit is contained in:
Akshay Joshi
2022-09-14 15:08:05 +05:30
parent 2de965d710
commit 16bcb7d4a2
4 changed files with 30 additions and 5 deletions

View File

@@ -215,8 +215,9 @@ class UserManagementCollection extends BaseUISchema {
class UserManagementSchema extends BaseUISchema {
constructor(authSources, roleOptions) {
super();
super({refreshBrowserTree: false});
this.userManagementCollObj = new UserManagementCollection(authSources, roleOptions);
this.changeOwnership = false;
}
deleteUser(deleteRow) {
@@ -251,7 +252,10 @@ class UserManagementSchema extends BaseUISchema {
result?.data?.data?.result?.data,
res?.data?.data?.shared_servers,
deletedUser,
deleteRow
()=> {
this.changeOwnership = true;
deleteRow();
}
);
})
.catch((err)=>{
@@ -268,6 +272,12 @@ class UserManagementSchema extends BaseUISchema {
},
canSearch: true
},
{
id: 'refreshBrowserTree', visible: false, type: 'boolean',
deps: ['userManagement'], depChange: ()=> {
return { refreshBrowserTree: this.changeOwnership }
}
}
];
}
}
@@ -310,6 +320,21 @@ function UserManagementDialog({onClose}) {
const onSaveClick = (_isNew, changeData)=>{
return new Promise((resolve, reject)=>{
try {
if (changeData['refreshBrowserTree']) {
// Confirmation dialog to refresh the browser tree.
Notify.confirm(
gettext('Browser tree refresh required'),
gettext('The ownership of the shared server was changed or the shared server was deleted, so a browser tree refresh is required. Do you wish to refresh the tree?'),
function () {
pgAdmin.Browser.tree.destroy();
},
function () {
return true;
},
gettext('Refresh'),
gettext('Later')
);
}
api.post(url_for('user_management.save'), changeData['userManagement'])
.then(()=>{
Notify.success('Users Saved Successfully');