public ActionResult AddMore()
        {
            var msg = String.Empty;

            var projectId    = AppHelper.GetSessionProjectId(Session);
            var loggedInUser = new PatUser(Request.LogonUserIdentity);

            if (HttpContext.Session != null)
            {
                var sessionKey = HttpContext.Session.SessionID;

                if (Request.Form["ids[]"] == null)
                {
                    //  User has deselected all of the Claims
                    var emptyList = new List <int>();
                    Session["ids"] = emptyList.ToArray();
                    PatService.SaveSampleSelections(projectId, sessionKey, emptyList, loggedInUser.LoginName);
                }
                else
                {
                    var intArr = Array.ConvertAll(Request.Form["ids[]"].Split(','), Convert.ToInt32);
                    Session["ids"] = intArr;
                    PatService.SaveSampleSelections(projectId, sessionKey, intArr.ToList(), loggedInUser.LoginName);
                }
            }
            return(Json(new { success = true, message = msg }, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public void TestGettingAPatUserFromAUserId3()
        {
            var sut = new PatUser("MP2648");

            sut.DumpUser();
            Assert.IsTrue(sut.IsAdmin());
        }
示例#3
0
        public void TestGettingAPatUserFromAUserId2()
        {
            var sut = new PatUser("PD2505");

            sut.DumpUser();
            Assert.IsFalse(sut.IsAdmin());
        }
示例#4
0
        public void TestAdminStatusOfPhillipDimond()
        {
            var sut = new PatUser("PD2505");

            sut.DumpUser();
            Assert.IsTrue(sut.IsAdmin());
        }
示例#5
0
        public void TestGettingAPatUserFromAUserIdManchi()
        {
            var sut = new PatUser("MS3087");

            sut.DumpUser();
            Assert.IsFalse(sut.IsAdmin());
        }
        /// <summary>
        ///   Retrieve Users by list of Group paths
        /// </summary>
        /// <param name="groupPaths">The group paths.</param>
        /// <returns>list of users</returns>
        public List <PatUser> GetAllPAUsersByGroupPaths(List <string> groupPaths)
        {
            var users = new List <PatUser>();

            foreach (var groupPath in groupPaths)
            {
                try
                {
                    using (var deGroup = new DirectoryEntry(groupPath))
                    {
                        var count = deGroup.Properties["member"].Count;
                        for (var i = 0; i < count; i++)
                        {
                            var pathnavigate = groupPath.Split("CN".ToCharArray());
                            var respath      = pathnavigate[0];
                            var objpath      = deGroup.Properties["member"][i].ToString();
                            var path         = respath + objpath;

                            using (var deUser = new DirectoryEntry(path))
                                users.Add(PatUser.GetUser(deUser));
                        }
                    }
                }
                catch (DirectoryServicesCOMException)
                {
                    ErrorLog.GetDefault(null).Log(new Error(new System.ApplicationException(string.Format("AD Error accessing {0}", groupPath))));
                }
            }
            return(users);
        }
示例#7
0
        public void TestGroupMembership()
        {
            var sut = new PatUser("SC0779");

            sut.DumpUser();
            Assert.IsTrue(sut.IsInAnyOfTheseGroups("QLD"));
            Assert.IsFalse(sut.IsInAnyOfTheseGroups("TAS,WA"));
            Assert.IsTrue(sut.IsAdmin());
        }
        public void TestProjectExportRule()
        {
            var user = new PatUser("SC0779");
            // to check user resource membership : var userResource = user.ResourceSet();
            var sut     = new PatService();
            var project = sut.GetProject(13);

            // to check project resource membership : var resourceSet = project.ResourcesSetShort();
            Assert.IsTrue(project.CanExport(user.LoginName));
        }
示例#9
0
        public void TestGettingAPatUserFromAUserId()
        {
            var sut = new PatUser("SC0779");

            sut.DumpUser();
            Assert.AreEqual("Stephen Colonna", sut.FullName);
            Assert.AreEqual("SC0779", sut.LoginName);
            Assert.AreEqual("*****@*****.**", sut.EmailAddress);               //  emails arent stored in DEV active directory
            Assert.IsTrue(sut.IsQld());
            Assert.IsTrue(sut.InState("QLD"));
            Assert.IsTrue(sut.IsAdmin());
        }
示例#10
0
        public static string AdminOrNot(string loginId, HttpSessionStateBase session)
        {
            var adminStatus = GetSessionAdminStatus(session);

            if (string.IsNullOrEmpty(adminStatus))
            {
                var user = new PatUser(loginId);
                adminStatus = user.IsAdministrator() ? "ADMIN" : "USER";
                SetSessionAdminStatus(session, adminStatus);
            }
            return(adminStatus.Equals("ADMIN") ? "*" : string.Empty);
        }
示例#11
0
        // http://localhost:6491/Home/Users
        public ActionResult Users()
        {
            var vm = new AboutViewModel {
                Version = AppHelper.VersionNumber()
            };

            vm.IsDebug = true;
            var loggedInUser = new PatUser(Request.LogonUserIdentity);
            var list         = PatService.GetProgramAssuranceUsers();
            var groups       = loggedInUser.MemberOf;

            ViewData["admins"] = UserTable(list);
            ViewData["groups"] = AppHelper.ListFor(groups);
            var control = PatService.GetControlFile();

            ViewData["about"] = GenerateAboutData(control);
            return(View(vm));
        }
        public ActionResult Create(int id)
        {
            var loggedInUser = new PatUser(Request.LogonUserIdentity);

            if (HttpContext.Session != null)
            {
                var vm = new CreateSampleViewModel();

                var project = PatService.GetProject(id);
                if (project != null)
                {
                    vm.ProjectId   = id;
                    vm.ProjectName = project.ProjectName;
                    vm.ContractMonitoringOrContractSiteVisitProject = PatService.ProjectIsContractMonitoringOrContractSiteVisit(id);
                    vm.SampleStartDate = DateTime.Now.Date;
                    vm.SampleDueDate   = DateTime.Now.AddDays(4 * 7).Date;
                    vm.SampleMessage   = PatService.GetSampleMessage(HttpContext.Session.SessionID);
                    vm.IsAdministrator = loggedInUser.IsAdministrator();

                    vm.Criteria = new SampleCriteria
                    {
                        MaxSampleSize  = 20,
                        RequestingUser = loggedInUser.FullName
                    };

                    vm.SessionKey = HttpContext.Session.SessionID;

                    if (HttpContext.Session != null)
                    {
                        var sessionKey = HttpContext.Session.SessionID;
                        AppHelper.SetSessionProjectId(Session, id);
                        vm.SessionKey = sessionKey;
                    }
                }
                return(View(vm));
            }

            return(View(new CreateSampleViewModel {
                SampleMessage = "No Session available"
            }));
        }
        public ActionResult SaveSample()
        {
            var msg = String.Empty;

            var projectId    = AppHelper.GetSessionProjectId(Session);
            var loggedInUser = new PatUser(Request.LogonUserIdentity);
            var isAdditional = Request.Form["additional"].Equals("true");
            var isOutOfScope = Request.Form["outOfScope"].Equals("true");
            var dueDate      = DateTime.Parse(Request.Form["due"]);

            if (HttpContext.Session != null)
            {
                var sessionKey = HttpContext.Session.SessionID;

                if (Request.Form["ids[]"] != null)
                {
                    var intArr = Array.ConvertAll(Request.Form["ids[]"].Split(','), Convert.ToInt32);
                    if (intArr.Length > 0)
                    {
                        Session["ids"] = intArr;
                        var uploadId = PatService.SaveSample(projectId, sessionKey, intArr.ToList(), isOutOfScope, isAdditional,
                                                             dueDate,
                                                             loggedInUser.LoginName);
                        AppHelper.SetSessionUploadId(Session, uploadId);
                        msg = "Sample has been successfully created.";
                        TempData[CommonConstants.FlashMessageTypeInfo] = msg;
                    }
                    else
                    {
                        msg = "Sample not created. No selections";
                        TempData[CommonConstants.FlashMessageTypeInfo] = msg;
                    }
                }
            }

            return(Json(new { success = true, message = msg }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit(int id)
        {
            try
            {
                var loggedInUser = new PatUser(Request.LogonUserIdentity);
                var projectId    = AppHelper.GetSessionProjectId(Session);

                if (projectId == 0)
                {
                    return(RedirectToProjectsList());
                }

                var project = PatService.GetProject(projectId);

                ViewBag.IsProjectContractMonitoringOrContractSiteVisit = project != null && project.IsContractMonitoringOrContractSiteVisit();
                ViewBag.CanEditCheckList = project != null && project.CanEditCheckList(User.Identity.Name.RemoveDomain());

                var questionnaire = PatService.GetReviewQuestionnaire(id);
                ViewBag.AnyQuestionsAndAnswers = questionnaire != null;

                var review = PatService.GetReview(id);
                if (project != null && review.CanEdit(loggedInUser, project.ResourcesSetShort()))
                {
                    var upload = PatService.GetUploadById(review.UploadId);
                    var vm     = new ReviewDetailsViewModel
                    {
                        ProjectId      = project.ProjectId,
                        ProjectName    = project.ProjectName,
                        UploadName     = upload.Name,
                        OutOfScope     = upload.IsOutOfScope(),
                        OutOfScopeFlag = !upload.InScope,
                        Additional     = upload.AdditionalOrNot(),
                        AdditionalFlag = upload.AdditionalReview,
                        Review         = review,
                        CanDelete      = review.CanDelete(loggedInUser),
                        CanEdit        = true,
                        ChangesMade    = "N"
                    };

                    ViewData["review-details"] = GenerateReviewDetails(review);
                    ViewData["related-data"]   = GenerateRelatedData(review.ClaimId, review.ClaimSequenceNumber);
                    vm.OldAssessmentOutcome    = vm.Review.AssessmentCode;
                    vm.OldRecoveryReason       = vm.Review.RecoveryReason;
                    vm.OldOutcomeCode          = vm.Review.OutcomeCode;
                    vm.OldAssessmentAction     = vm.Review.AssessmentAction;
                    vm.DeleteMessage           = "Are you sure you want to delete this review?";
                    if (vm.Review.Status().Equals("Completed"))
                    {
                        vm.DeleteMessage = "Are you sure you want to delete this review? as it has outcomes recorded.";
                    }

                    // keep the existing (`not current`) adw code displayed
                    ViewBag.OldAssessmentOutcomeList = PatService.GetAdwCode(DataConstants.AdwListCodeForAssessmentCodes, vm.OldAssessmentOutcome, true);
                    ViewBag.OldRecoveryReasonList    = PatService.GetAdwCode(DataConstants.AdwListCodeForRecoveryReasonCodes, vm.OldRecoveryReason, true);
                    ViewBag.OldAssessmentActionList  = PatService.GetAdwCode(DataConstants.AdwListCodeForAssessmentActionCodes, vm.OldAssessmentAction, true);
                    ViewBag.OldFinalOutcomeList      = PatService.GetAdwCode(DataConstants.AdwListCodeForOutcomeCodes, vm.OldOutcomeCode, true);

                    return(View(vm));
                }
                TempData[CommonConstants.FlashMessageTypeWarning] =
                    "You must be part of the Project resource groups to edit its' reviews.";
                return(RedirectToProjectDetailsPageTab(projectId, CommonConstants.ProjectTab_Details));
            }
            catch (Exception ex)
            {
                ErrorLog.GetDefault(null).Log(new Error(ex));

                return(View("Error", new HandleErrorInfo(ex, "Review", "Edit")));
            }
        }
        public ActionResult Edit(string button, ReviewDetailsViewModel vm)
        {
            try
            {
                var loggedInUser = new PatUser(Request.LogonUserIdentity);
                if (button == "delete" || button == null)
                {
                    PatService.DeleteReview(vm.Review, loggedInUser.LoginName);
                    TempData[CommonConstants.FlashMessageTypeInfo] = string.Format("Review {0} deleted", vm.Review.ReviewId);
                    return(RedirectToAction("Details", "Upload", new { id = vm.Review.UploadId }));
                }
                if (ModelState.IsValid)
                {
                    if (vm.Review.AssessmentCode == DataConstants.AssessmentValid ||
                        vm.Review.AssessmentCode == DataConstants.AssessmentValidwithQualification)
                    {
                        vm.Review.OutcomeCode = DataConstants.FinalOutcomeValid_NFA;
                    }

                    if (vm.Review.AssessmentCode != vm.OldAssessmentOutcome)
                    {
                        vm.Review.AssessmentDate = DateTime.Now;
                    }
                    if (vm.Review.RecoveryReason != vm.OldRecoveryReason)
                    {
                        vm.Review.RecoveryReasonDate = DateTime.Now;
                    }
                    if (vm.Review.OutcomeCode != vm.OldOutcomeCode)
                    {
                        vm.Review.FinalOutcomeDate = DateTime.Now;
                    }
                    if (vm.Review.AssessmentAction != vm.OldAssessmentAction)
                    {
                        vm.Review.AssessmentActionDate = DateTime.Now;
                    }
                    //  save the update
                    vm.Review.UpdatedBy = loggedInUser.LoginName;
                    PatService.UpdateReview(vm.Review);
                    TempData[CommonConstants.FlashMessageTypeInfo] = string.Format("Review {0} successfully updated", vm.Review.ReviewId);
                    return(RedirectToAction("Details", "Upload", new { id = vm.Review.UploadId }));
                }

                var projectId = AppHelper.GetSessionProjectId(Session);
                if (projectId == 0)
                {
                    return(RedirectToProjectsList());
                }
                var project = PatService.GetProject(projectId);

                ViewBag.IsProjectContractMonitoringOrContractSiteVisit = project != null && project.IsContractMonitoringOrContractSiteVisit();
                ViewBag.CanEditCheckList = project != null && project.CanEditCheckList(User.Identity.Name.RemoveDomain());

                var questionnaire = PatService.GetReviewQuestionnaire(vm.Review.ReviewId);
                ViewBag.AnyQuestionsAndAnswers = questionnaire != null;

                //  get the View Data back
                ViewData["review-details"] = AppHelper.GetSessionReviewDetails(Session);
                ViewData["related-data"]   = AppHelper.GetSessionRelatedData(Session);
                return(View(vm));
            }
            catch (Exception ex)
            {
                ErrorLog.GetDefault(null).Log(new Error(ex));

                return(View("Error", new HandleErrorInfo(ex, "Review", "Edit")));
            }
        }
示例#16
0
        public static bool IsAdministrator(IIdentity userIdentity)
        {
            var user = new PatUser(userIdentity);

            return(user.IsAdministrator());
        }