Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }