public static async Task <IActionResult> getManagers( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "Managers")] HttpRequest req, ILogger log) { var token = await Authenticate.getTokenOnBehalf(req.Headers["Authorization"], log); if (!token.isAuthenticated) { return(new UnauthorizedResult()); } if (!security.isManager(token.onBehalfToken, log)) { return(new UnauthorizedResult()); } var request = new HttpRequestMessage(HttpMethod.Get, "/v1.0/groups/" + props.managerSecurityGroupID + "/members" + "?$top=999&" + props.userProperties); request.Headers.Add("Authorization", "Bearer " + token.onBehalfToken); HttpResponseMessage response = await graphController.Client.SendAsync(request); if (!response.IsSuccessStatusCode) { log.LogError("getManagers failed and fetched the error:" + await response.Content.ReadAsStringAsync()); return(new BadRequestObjectResult(await response.Content.ReadAsStringAsync())); } OdataUsers Managers = JsonConvert.DeserializeObject <OdataUsers>(await response.Content.ReadAsStringAsync()); responseUser[] responseManagers = Managers.Users; return(new OkObjectResult(responseManagers)); }
public static async Task <IActionResult> getDirectReports( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "DirectReports")] HttpRequest req, ILogger log) { var token = await Authenticate.getTokenOnBehalf(req.Headers["Authorization"], log); if (!token.isAuthenticated) { return(new UnauthorizedResult()); } string managerUserID = token.GetUserID(); if (!security.isManager(token.onBehalfToken, log)) { return(new UnauthorizedResult()); } var request = new HttpRequestMessage(HttpMethod.Get, "/v1.0/users/" + managerUserID + "/directReports" + "?$top=999&" + props.userProperties); request.Headers.Add("Authorization", "Bearer " + token.onBehalfToken); HttpResponseMessage response = await graphController.Client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(new BadRequestObjectResult(await response.Content.ReadAsStringAsync())); } OdataUsers directReporsts = JsonConvert.DeserializeObject <OdataUsers>(await response.Content.ReadAsStringAsync()); responseUser[] responseDirectReports = directReporsts.Users; return(new OkObjectResult(responseDirectReports)); }