public async Task <IActionResult> CreateKey(CreateApiKeyRequest request) { if (request is null) { return(NotFound()); } if (request.Permissions is null || request.Permissions.Length == 0) { ModelState.AddModelError(nameof(request.Permissions), "One or more permissions are required"); return(this.CreateValidationError(ModelState)); } var key = new APIKeyData() { Id = Encoders.Hex.EncodeData(RandomUtils.GetBytes(20)), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = request.Label }; key.SetBlob(new APIKeyBlob() { Permissions = request.Permissions.Select(p => p.ToString()).Distinct().ToArray() }); await _apiKeyRepository.CreateKey(key); return(Ok(FromModel(key))); }
private static ApiKeyData FromModel(APIKeyData data) { return(new ApiKeyData() { Permissions = Permission.ToPermissions(data.GetBlob().Permissions).ToArray(), ApiKey = data.Id, Label = data.Label ?? string.Empty }); }
private static ApiKeyData FromModel(APIKeyData data) { return(new ApiKeyData() { Permissions = data.GetPermissions(), ApiKey = data.Id, UserId = data.UserId, Label = data.Label }); }
private string GetRedirectToApplicationUrl(Uri redirect, APIKeyData key) { var uri = new UriBuilder(redirect); var permissions = key.GetBlob().Permissions; BTCPayServerClient.AppendPayloadToQuery(uri, new Dictionary <string, object>() { { "key", key.Id }, { "permissions", permissions }, { "user", key.UserId } }); return(uri.Uri.AbsoluteUri); }
public async Task CreateKey(APIKeyData key) { if (key.Type == APIKeyType.Legacy || !string.IsNullOrEmpty(key.StoreId) || string.IsNullOrEmpty(key.UserId)) { throw new InvalidOperationException("cannot save a bitpay legacy api key with this repository"); } using var context = _applicationDbContextFactory.CreateContext(); await context.ApiKeys.AddAsync(key); await context.SaveChangesAsync(); }
private async Task <APIKeyData> CreateKey(AddApiKeyViewModel viewModel) { var key = new APIKeyData() { Id = Encoders.Hex.EncodeData(RandomUtils.GetBytes(20)), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = viewModel.Label }; key.SetPermissions(GetPermissionsFromViewModel(viewModel)); await _apiKeyRepository.CreateKey(key); return(key); }
private async Task <APIKeyData> CreateKey(AddApiKeyViewModel viewModel) { var key = new APIKeyData() { Id = Guid.NewGuid().ToString().Replace("-", string.Empty), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = viewModel.Label }; key.SetPermissions(GetPermissionsFromViewModel(viewModel)); await _apiKeyRepository.CreateKey(key); return(key); }
private async Task <APIKeyData> CreateKey(AddApiKeyViewModel viewModel) { var key = new APIKeyData() { Id = Encoders.Hex.EncodeData(RandomUtils.GetBytes(20)), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = viewModel.Label }; key.Permissions = string.Join(";", GetPermissionsFromViewModel(viewModel).Select(p => p.ToString()).Distinct().ToArray()); await _apiKeyRepository.CreateKey(key); return(key); }
public async Task <ActionResult <ApiKeyData> > CreateKey(CreateApiKeyRequest request) { if (request is null) { return(BadRequest()); } var key = new APIKeyData() { Id = Encoders.Hex.EncodeData(RandomUtils.GetBytes(20)), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = request.Label }; key.Permissions = string.Join(";", request.Permissions.Select(p => p.ToString()).Distinct().ToArray()); await _apiKeyRepository.CreateKey(key); return(Ok(FromModel(key))); }
public async Task <IActionResult> CreateKey(CreateApiKeyRequest request) { request ??= new CreateApiKeyRequest(); request.Permissions ??= System.Array.Empty <Permission>(); var key = new APIKeyData() { Id = Encoders.Hex.EncodeData(RandomUtils.GetBytes(20)), Type = APIKeyType.Permanent, UserId = _userManager.GetUserId(User), Label = request.Label }; key.SetBlob(new APIKeyBlob() { Permissions = request.Permissions.Select(p => p.ToString()).Distinct().ToArray() }); await _apiKeyRepository.CreateKey(key); return(Ok(FromModel(key))); }