public PaginatedContentResult ProcessQuery(string requestId) { GetServiceImplementation(out _requestManager); GetServiceImplementation(out _serializationHelper); GetServiceImplementation(out _documentManager); GetServiceImplementation(out _accountManager); GetServiceImplementation(out _flowManager); AppendAuditLogEvent("Validating requestId ..."); DataRequest dataRequest = _requestManager.GetDataRequest(requestId); GetAuthorizedUsersResponse response = GetAuthorizedUsersResponseData(); byte[] content = _serializationHelper.Serialize(response); if (response.AuthorizedUserList.Length == 0) { AppendAuditLogEvent("Did not find authorization information for any users"); } else { AppendAuditLogEvent("Returning authorization information for {0} users ...", response.AuthorizedUserList.Length); } string docId = _documentManager.AddDocument(dataRequest.TransactionId, CommonTransactionStatusCode.Completed, null, new Document(null, CommonContentType.XML, content)); PaginatedContentResult result = new PaginatedContentResult(0, response.AuthorizedUserList.Length, true, CommonContentType.XML, content); return(result); }
protected GetAuthorizedUsersResponse GetAuthorizedUsersResponseData() { IList <UserAccount> nodeUsers = _accountManager.GetAllUsers(); GetAuthorizedUsersResponse response = new GetAuthorizedUsersResponse(); List <AuthorizedUser> responseUsers = new List <AuthorizedUser>(); if (!CollectionUtils.IsNullOrEmpty(nodeUsers)) { // Get list of unprotected flows: List <AuthorizedFlow> unprotectedFlows = GetUnprotectedFlows(); List <AuthorizedFlow> allFlows = GetAllFlows(); // Loop through each user to add them to the response list foreach (UserAccount nodeUser in nodeUsers) { AuthorizedUser responseUser = new AuthorizedUser(); responseUser.NAASUserName = nodeUser.NaasAccount; List <AuthorizedFlow> userAllowedFlows; if (nodeUser.Role == SystemRoleType.Admin) { userAllowedFlows = new List <AuthorizedFlow>(allFlows); } else { userAllowedFlows = new List <AuthorizedFlow>(unprotectedFlows); if (!CollectionUtils.IsNullOrEmpty(nodeUser.Policies)) { foreach (UserAccessPolicy userAccessPolicy in nodeUser.Policies) { if ((userAccessPolicy.PolicyType == ServiceRequestAuthorizationType.Flow) && (userAccessPolicy.FlowRoleType != FlowRoleType.None)) { AuthorizedFlow authorizedFlow = new AuthorizedFlow(); authorizedFlow.FlowName = userAccessPolicy.TypeQualifier; userAllowedFlows.Add(authorizedFlow); } } } } responseUser.AuthorizedFlowList = userAllowedFlows.ToArray(); responseUsers.Add(responseUser); } } response.AuthorizedUserList = responseUsers.ToArray(); return(response); }