({roles})
| 81 | }; |
| 82 | |
| 83 | export default function Users({roles}) { |
| 84 | const authSources = useRef([]); |
| 85 | const [loading, setLoading] = React.useState(''); |
| 86 | const [tableData, setTableData] = React.useState([]); |
| 87 | const api = getApiInstance(); |
| 88 | const pgAdmin = usePgAdmin(); |
| 89 | |
| 90 | const onDeleteClick = (row) => { |
| 91 | const deleteRow = async () => { |
| 92 | setLoading(gettext('Deleting user...')); |
| 93 | try { |
| 94 | await api.delete(url_for('user_management.save_id', { id: row.original.id })); |
| 95 | pgAdmin.Browser.notifier.success(gettext('User deleted successfully.')); |
| 96 | updateList(); |
| 97 | } catch (error) { |
| 98 | pgAdmin.Browser.notifier.errorText(parseApiError(error)); |
| 99 | } |
| 100 | setLoading(''); |
| 101 | }; |
| 102 | |
| 103 | pgAdmin.Browser.notifier.confirmDelete(gettext('Delete User?'), gettext('Are you sure you want to delete the user %s?', `<strong>${row.original.username}</strong>`), |
| 104 | async () => { |
| 105 | setLoading(gettext('Deleting user...')); |
| 106 | try { |
| 107 | const resp = await api.get(url_for('user_management.shared_servers', {'uid': row['id']})); |
| 108 | const noOfSharedServers = resp.data?.data?.shared_servers ?? 0; |
| 109 | if (noOfSharedServers > 0) { |
| 110 | const resp = await api.get(url_for('user_management.admin_users', {'uid': row['id']})); |
| 111 | showChangeOwnership( |
| 112 | gettext('Change ownership'), |
| 113 | resp.data?.data?.result?.data, |
| 114 | noOfSharedServers, |
| 115 | {'id': row.original['id'], 'name': !isEmptyString(row.original['email']) ? row.original['email'] : row.original['username']}, |
| 116 | ()=> { |
| 117 | pgAdmin.Browser.notifier.confirm( |
| 118 | gettext('Object explorer tree refresh required'), |
| 119 | gettext('The ownership of the shared server was changed or the shared server was deleted, so the object explorer tree refresh is required. Do you wish to refresh the tree?'), |
| 120 | function () { |
| 121 | pgAdmin.Browser.tree.destroy(); |
| 122 | }, |
| 123 | function () { |
| 124 | return true; |
| 125 | }, |
| 126 | gettext('Refresh'), |
| 127 | gettext('Later') |
| 128 | ); |
| 129 | deleteRow(); |
| 130 | } |
| 131 | ); |
| 132 | } else { |
| 133 | deleteRow(); |
| 134 | } |
| 135 | } |
| 136 | catch (error) { |
| 137 | pgAdmin.Browser.notifier.errorText(parseApiError(error)); |
| 138 | } |
| 139 | setLoading(''); |
| 140 | }); |
nothing calls this directly
no test coverage detected