public async Task <AddPermissionResponse> ExecuteAsync(PostPermission request, string url, string token) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (url == null) { throw new ArgumentNullException(nameof(url)); } if (string.IsNullOrWhiteSpace(token)) { throw new ArgumentNullException(nameof(token)); } var httpClient = _httpClientFactory.GetHttpClient(); var serializedPostPermission = JsonConvert.SerializeObject(request); var body = new StringContent(serializedPostPermission, Encoding.UTF8, "application/json"); var httpRequest = new HttpRequestMessage { Method = HttpMethod.Post, Content = body, RequestUri = new Uri(url) }; httpRequest.Headers.Add("Authorization", "Bearer " + token); var result = await httpClient.SendAsync(httpRequest).ConfigureAwait(false); result.EnsureSuccessStatusCode(); var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false); return(JsonConvert.DeserializeObject <AddPermissionResponse>(content)); }
public async Task <ActionResult> PostPermission([FromBody] PostPermission postPermission) { if (postPermission == null) { return(BuildError(ErrorCodes.InvalidRequestCode, "no parameter in body request", HttpStatusCode.BadRequest)); } var parameter = postPermission.ToParameter(); var clientId = this.GetClientId(); if (string.IsNullOrWhiteSpace(clientId)) { return(BuildError(ErrorCodes.InvalidRequestCode, "the client_id cannot be extracted", HttpStatusCode.BadRequest)); } var ticketId = await _permissionControllerActions.Add(parameter, clientId); var result = new AddPermissionResponse { TicketId = ticketId }; return(new ObjectResult(result) { StatusCode = (int)HttpStatusCode.Created }); }
public static AddPermissionParameter ToParameter(this PostPermission postPermission) { return(new AddPermissionParameter { ResourceSetId = postPermission.ResourceSetId, Scopes = postPermission.Scopes }); }
private async Task <AddPermissionResponse> AddPermission(string resourceId, IEnumerable <string> scopes, string accessToken) { var postPermission = new PostPermission { ResourceSetId = resourceId, Scopes = scopes }; return(await _identityServerUmaClientFactory.GetPermissionClient().AddByResolution(postPermission, _securityOptions.UmaConfigurationUrl, accessToken)); }
public async Task <ActionResult> PostPermission([FromBody] PostPermission postPermission) { if (postPermission == null) { throw new ArgumentNullException(nameof(postPermission)); } var parameter = postPermission.ToParameter(); var clientId = this.GetClientId(); var ticketId = await _permissionControllerActions.Add(parameter, clientId); var result = new AddPermissionResponse { TicketId = ticketId }; return(new ObjectResult(result) { StatusCode = (int)HttpStatusCode.Created }); }
public async Task <ActionResult> PostPermission([FromBody] PostPermission postPermission) { if (postPermission == null) { return(BuildError(ErrorCodes.InvalidRequestCode, "no parameter in body request", HttpStatusCode.BadRequest)); } var audiences = GetAudiences(); var parameter = postPermission.ToParameter(); var ticketId = await _permissionControllerActions.Add(audiences, parameter); var result = new AddPermissionResponse { TicketId = ticketId }; return(new ObjectResult(result) { StatusCode = (int)HttpStatusCode.Created }); }
public async Task <AddPermissionResponse> AddByResolution(PostPermission request, string url, string token) { var configuration = await _getConfigurationOperation.ExecuteAsync(UriHelpers.GetUri(url)); return(await Add(request, configuration.PermissionRegistrationEndPoint, token)); }
public Task <AddPermissionResponse> Add(PostPermission request, string url, string token) { return(_addPermissionsOperation.ExecuteAsync(request, url, token)); }
public IActionResult SendRequestAnswer([FromBody] RequestAnswerViewModel model) { //Получаем из токена username var username = User.Identity.Name; int group_id = model.GroupId; var requesterUsername = model.UserName; //Ищем администратора var user = _context.Users .Include(u => u.UserGroups) .ThenInclude(ug => ug.Group) .FirstOrDefault(u => u.Username == username); //Ищем пользователя, который сделал запрос var requesterUser = _context.Users .Include(u => u.UserGroups) .ThenInclude(ug => ug.Group) .FirstOrDefault(u => u.Username == requesterUsername); //Ищем данную группу var group = _context.Groups .Include(g => g.UserGroups) .ThenInclude(ug => ug.User) .FirstOrDefault(g => g.Id == group_id); //Если все существует if (user != null && requesterUser != null && group != null) { var request = _context.PostPermissionRequests .Include(ppr => ppr.User) .Include(ppr => ppr.Group) .FirstOrDefault(ppr => ppr.Group.Id == group_id && ppr.User.Username == requesterUsername); //Если такой запрос существует, то принимаем либо отвергаем запрос if (request != null) { var accepted = model.Accepted; if (accepted) { var postPermission = new PostPermission { User = requesterUser, Group = group }; _context.PostPermissions.Add(postPermission); _context.SaveChanges(); } //Удаляем запрос _context.PostPermissionRequests.Remove(request); _context.SaveChanges(); } else { Unauthorized(); } return(Ok()); } else { return(Unauthorized()); } }