public async Task <EntitiesResult <IdentityServerClient> > ResetClientSecret(ResetClientSecretArguments args) { await Initialize(); // Check permissions var idSingleton = new List <int> { args.Id }; // A single Id var action = PermissionActions.Update; var actionFilter = await UserPermissionsFilter(action, cancellation : default); idSingleton = await CheckActionPermissionsBefore(actionFilter, idSingleton); // Invisible or missing user if (!idSingleton.Any()) { // The user cannot view that user, we pretend it doesn't exist throw new NotFoundException <int>(args.Id); } // Reset the secret var newSecret = CryptographicallyStrongClientSecret(); using var trx = TransactionFactory.ReadCommitted(); await _behavior.Repository.IdentityServerClients__UpdateSecret(args.Id, newSecret, UserId); var result = (args.ReturnEntities ?? false) ? await GetByIds(idSingleton, args, action, cancellation : default) : EntitiesResult <IdentityServerClient> .Empty(); // Check user permissions again await CheckActionPermissionsAfter(actionFilter, idSingleton, result.Data); trx.Complete(); return(result); }
public async Task <ActionResult <EntitiesResponse <IdentityServerClient> > > ResetSecret([FromQuery] ResetClientSecretArguments args) { var serverTime = DateTimeOffset.UtcNow; var result = await _service.ResetClientSecret(args); var response = TransformToEntitiesResponse(result, serverTime, cancellation: default); return(Ok(response)); }