Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }