public async Task <IActionResult> Save([FromBody] SaveClientViewModel client)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Client clientM   = _mapper.Map <Client>(client);
            var    oldEntity = await _clientService.GetById(client.Id);

            if (oldEntity != null)
            {
                IdentityUser user = oldEntity.Identity;
                if (user.Email != client.Email)
                {
                    user.Email    = client.Email;
                    user.UserName = client.Email;
                    await _userManager.UpdateAsync(user);

                    clientM.Identity = user;
                }

                await _clientService.Save(oldEntity, clientM);

                return(Ok(new { message = "Client updated" }));
            }
            else
            {
                clientM.Identity.SecurityStamp = Guid.NewGuid().ToString();
                await _clientService.Save(oldEntity, clientM);

                return(Ok(new { message = "Client added" }));
            }
        }
        public async Task <ActionResult <DefaultResponse <bool> > > Save([FromBody] SaveClientViewModel client)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(Response(false));
            }
            await _clientAppService.Save(client);

            return(Response(true));
        }
Esempio n. 3
0
        public async Task <ActionResult <Client> > Post([FromBody] SaveClientViewModel client)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(ModelStateErrorResponseError());
            }

            await _clientAppService.Save(client);

            var newClient = await _clientAppService.GetClientDetails(client.ClientId);

            return(ResponsePost(nameof(GetClient), new { client = client.ClientId }, newClient));
        }
Esempio n. 4
0
        public async Task <ActionResult <Client> > Post([FromBody] SaveClientViewModel clientVm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ValidationProblemDetails(ModelState)));
            }

            var client = await _clientRepository.FindByClientIdAsync(clientVm.Name);

            if (client == null)
            {
                client = await _clientRepository.InsertAsync(
                    new Client(
                        Guid.NewGuid(),
                        clientVm.Name
                        )
                {
                    ClientName   = clientVm.Name,
                    ProtocolType = "oidc",
                    Description  = clientVm.Name,
                    AlwaysIncludeUserClaimsInIdToken = true,
                    AllowOfflineAccess           = true,
                    AbsoluteRefreshTokenLifetime = 31536000, //365 days
                    AccessTokenLifetime          = 31536000, //365 days
                    AuthorizationCodeLifetime    = 300,
                    IdentityTokenLifetime        = 300,
                    RequireConsent = false
                },
                    autoSave : true
                    );
            }

            foreach (var scope in clientVm.Scopes)
            {
                if (client.FindScope(scope) == null)
                {
                    client.AddScope(scope);
                }
            }

            foreach (var grantType in clientVm.GrantTypes)
            {
                if (client.FindGrantType(grantType) == null)
                {
                    client.AddGrantType(grantType);
                }
            }

            if (client.FindSecret(clientVm.Secret) == null)
            {
                client.AddSecret(clientVm.Secret);
            }

            if (clientVm.RedirectUri != null)
            {
                if (client.FindRedirectUri(clientVm.RedirectUri) == null)
                {
                    client.AddRedirectUri(clientVm.RedirectUri);
                }
            }

            if (clientVm.PostLogoutRedirectUri != null)
            {
                if (client.FindPostLogoutRedirectUri(clientVm.PostLogoutRedirectUri) == null)
                {
                    client.AddPostLogoutRedirectUri(clientVm.PostLogoutRedirectUri);
                }
            }

            if (clientVm.Permissions != null)
            {
                foreach (var permissionName in clientVm.Permissions)
                {
                    if (await _permissionGrantRepository.FindAsync(permissionName, ClientPermissionValueProvider.ProviderName, clientVm.Name) != null)
                    {
                        continue;
                    }

                    await _permissionGrantRepository.InsertAsync(
                        new PermissionGrant(
                            GuidGenerator.Create(),
                            permissionName,
                            ClientPermissionValueProvider.ProviderName,
                            clientVm.Name,
                            null
                            )
                        );
                }
            }

            await _clientRepository.UpdateAsync(client);

            var newClient = await _clientRepository.GetAsync(client.Id, true);

            return(CreatedAtAction(nameof(GetClient), new { client = client.Id }, newClient));
        }
Esempio n. 5
0
        public Task <bool> Save(SaveClientViewModel client)
        {
            var command = _mapper.Map <SaveClientCommand>(client);

            return(Bus.SendCommand(command));
        }
Esempio n. 6
0
 public Task Save(SaveClientViewModel client)
 {
     throw new System.NotImplementedException();
 }