diff --git a/lib/data/models/client_model.dart b/lib/data/models/client_model.dart index 9bab5da75..b537e77c7 100644 --- a/lib/data/models/client_model.dart +++ b/lib/data/models/client_model.dart @@ -680,7 +680,7 @@ abstract class ClientEntity extends Object actions..addAll(super.getActions(userCompany: userCompany)); - if (false && userCompany.isAdmin && !multiselect) { + if (userCompany.isAdmin && !multiselect) { actions.add(EntityAction.purge); } diff --git a/lib/data/repositories/client_repository.dart b/lib/data/repositories/client_repository.dart index d820eb540..b44cbd0be 100644 --- a/lib/data/repositories/client_repository.dart +++ b/lib/data/repositories/client_repository.dart @@ -67,10 +67,16 @@ class ClientRepository { return clientResponse.data.toList(); } - Future purge(Credentials credentials, String id) async { - final url = credentials.url + '/clients/$id/purge'; + Future purge({ + @required Credentials credentials, + @required String clientId, + @required String password, + @required String idToken, + }) async { + final url = credentials.url + '/clients/$clientId/purge'; - await webClient.post(url, credentials.token); + await webClient.post(url, credentials.token, + password: password, idToken: idToken); return true; } diff --git a/lib/redux/client/client_actions.dart b/lib/redux/client/client_actions.dart index 31672372f..2c7b85812 100644 --- a/lib/redux/client/client_actions.dart +++ b/lib/redux/client/client_actions.dart @@ -224,10 +224,17 @@ class DeleteClientsFailure implements StopSaving { } class PurgeClientRequest implements StartSaving { - PurgeClientRequest(this.completer, this.clientId); + PurgeClientRequest({ + @required this.completer, + @required this.clientId, + @required this.password, + @required this.idToken, + }); final Completer completer; final String clientId; + final String password; + final String idToken; } class PurgeClientSuccess implements StopSaving, PersistData {} @@ -442,9 +449,11 @@ void handleClientAction( callback: (password, idToken) { store.dispatch( PurgeClientRequest( - snackBarCompleter( + completer: snackBarCompleter( context, localization.purgedClient), - client.id), + clientId: client.id, + password: password, + idToken: idToken), ); }); }); diff --git a/lib/redux/client/client_middleware.dart b/lib/redux/client/client_middleware.dart index 517a99264..1e2c8aa4e 100644 --- a/lib/redux/client/client_middleware.dart +++ b/lib/redux/client/client_middleware.dart @@ -154,7 +154,14 @@ Middleware _deleteClient(ClientRepository repository) { Middleware _purgeClient(ClientRepository repository) { return (Store store, dynamic dynamicAction, NextDispatcher next) { final action = dynamicAction as PurgeClientRequest; - repository.purge(store.state.credentials, action.clientId).then((_) { + repository + .purge( + credentials: store.state.credentials, + clientId: action.clientId, + password: action.password, + idToken: action.idToken, + ) + .then((_) { store.dispatch(PurgeClientSuccess()); store.dispatch(RefreshData( clearData: true,