public List <Student> FindUser(string term) { var portlet = PortletTemplate.FindByName("[CUS] BCProxyLogin"); var stuList = new List <Student>(); int userId; if (Int32.TryParse(term, out userId)) { var puFacade = ObjectFactoryWrapper.GetInstance <IPortalUserFacade>(); var pu = puFacade.FindByHostID(term.PadLeft(11, '0')); if ((portlet.AccessCheck("CanProxyStudent") && pu.IsMemberOf(PortalGroup.Students)) || (portlet.AccessCheck("CanProxyStaff") && pu.IsMemberOf(PortalGroup.Staff)) || (portlet.AccessCheck("CanProxyFaculty") && pu.IsMemberOf(PortalGroup.Faculty)) || (portlet.AccessCheck("CanProxyCandidate") && pu.IsMemberOf(PortalGroup.FindByStatusCode("CAN"))) || (portlet.AccessCheck("CanProxyConstituent") && pu.IsMemberOf(PortalGroup.FindByStatusCode("ALM")))) { stuList.Add(new Student(pu.FirstName, pu.LastName, Convert.ToInt32(pu.HostID), pu.Username)); } } else { var groups = new List <PortalGroup>(); if (portlet.AccessCheck("CanProxyStudent")) { groups.Add(PortalGroup.Students); } if (portlet.AccessCheck("CanProxyStaff")) { groups.Add(PortalGroup.Staff); } if (portlet.AccessCheck("CanProxyFaculty")) { groups.Add(PortalGroup.Faculty); } if (portlet.AccessCheck("CanProxyCandidate")) { groups.Add(PortalGroup.FindByStatusCode("CAN")); } if (portlet.AccessCheck("CanProxyConstituent")) { groups.Add(PortalGroup.FindByStatusCode("ALM")); } if (groups.Count == 0) { return(new List <Student>()); } var userFacade = ObjectFactoryWrapper.GetInstance <IPortalUserFacade>(); stuList.AddRange(userFacade.PartialFind(term, 100, "", groups.Select(x => x.DN).ToArray()).Select(user => new Student(user.FirstName, user.LastName, Convert.ToInt32(user.HostID), user.Username))); } return(stuList); }
public Check RoleCheck(PortalUser pu, PortletTemplate portletTemplate, PortalUser currentUser = null) { if (currentUser == null) { currentUser = PortalUser.Current; } if (portletTemplate.AccessCheck("DenyAccess", pu)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_DENIED_PERMS"))); } if (pu.IsMemberOf(PortalGroup.Staff)) { if (!portletTemplate.AccessCheck("CanProxyStaff", currentUser)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_STAFF_PERMS"))); } } if (pu.IsMemberOf(PortalGroup.Faculty)) { if (!portletTemplate.AccessCheck("CanProxyFaculty", currentUser)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_FACULTY_PERMS"))); } } if (pu.IsMemberOf(PortalGroup.Students)) { if (!portletTemplate.AccessCheck("CanProxyStudent", currentUser)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_STUDENT_PERMS"))); } } if (pu.IsMemberOf(PortalGroup.FindByStatusCode("CAN"))) // Candidate { if (!portletTemplate.AccessCheck("CanProxyCandidate", currentUser)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_CANDIDATE_PERMS"))); } } if (pu.IsMemberOf(PortalGroup.FindByStatusCode("ALM"))) { if (!portletTemplate.AccessCheck("CanProxyConstituent", currentUser)) { return(new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_CONSTITUENT_PERMS"))); } } return(pu.IsMemberOf(PortalGroup.Administrators) ? new Check(false, Globalizer.GetGlobalizedString("CUS_BC_PL_SITE_ADMIN_PERMS")) : new Check(true)); }