protected void PopulateGeographies() { Organization org = Organization.FromIdentity(Convert.ToInt32(DropOrganizations.SelectedValue)); Geographies geoList = _authority.GetGeographiesForOrganization(org); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); this.DropGeographies.Items.Clear(); foreach (Geography nodeRoot in geoList) { Geographies nodeTree = nodeRoot.GetTree(); foreach (Geography node in nodeTree) { string nodeLabel = node.Name; for (int loop = 0; loop < node.Generation; loop++) { nodeLabel = "|-- " + nodeLabel; } if (_authority.HasPermission(Permission.CanSeePeople, org.Identity, node.Identity, Authorization.Flag.Default)) { DropGeographies.Items.Add(new ListItem(nodeLabel, node.GeographyId.ToString())); } } } if (_authority.HasPermission(Permission.CanSeePeople, org.Identity, -1, Authorization.Flag.Default)) { DropGeographies.Items.Add(new ListItem("Any", Geography.RootIdentity.ToString())); } RecalculatePersonCount(); }
protected void PopulateGeographies() { Person viewingPerson = Person.FromIdentity(Int32.Parse(HttpContext.Current.User.Identity.Name)); Authority authority = viewingPerson.GetAuthority(); Organization org = Organization.FromIdentity(Convert.ToInt32(DropOrganizations.SelectedValue)); Geographies geoList = authority.GetGeographiesForOrganization(org); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); this.DropGeographies.Items.Clear(); foreach (Geography nodeRoot in geoList) { Geographies nodeTree = nodeRoot.GetTree(); foreach (Geography node in nodeTree) { string nodeLabel = node.Name; for (int loop = 0; loop < node.Generation; loop++) { nodeLabel = "|-- " + nodeLabel; } DropGeographies.Items.Add(new ListItem(nodeLabel, node.GeographyId.ToString())); } } ResetGeographyData(); }
protected void PopulateGeographies() { if (DropOrganizationsLocal.SelectedIndex >= 0) { Organization org = Organization.FromIdentity(Convert.ToInt32(DropOrganizationsLocal.SelectedValue)); Geographies geoList = _authority.GetGeographiesForOrganization(org, RoleTypes.AllRoleTypes); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); if (org.Identity == Organization.SandboxIdentity) { geoList = Geographies.FromSingle(Geography.Root); } this.DropGeographies.Items.Clear(); foreach (Geography nodeRoot in geoList) { Geographies nodeTree = nodeRoot.GetTree(); foreach (Geography node in nodeTree) { string nodeLabel = node.Name; for (int loop = 0; loop < node.Generation; loop++) { nodeLabel = "|-- " + nodeLabel; } if (_authority.HasPermission(Permission.CanEditLocalRoles, org.Identity, node.Identity, Authorization.Flag.Default)) { DropGeographies.Items.Add(new ListItem(nodeLabel, node.GeographyId.ToString())); } } } if (DropGeographies.Items.Count == 0) { AddLocalRolePanel.Visible = false; } else { AddLocalRolePanel.Visible = true; } } }
protected void PopulateGeographies() { Person viewingPerson = Person.FromIdentity(Int32.Parse(HttpContext.Current.User.Identity.Name)); Authority authority = viewingPerson.GetAuthority(); int orgId = Convert.ToInt32(DropOrganizations.SelectedValue); Organization org = Organization.FromIdentity(orgId); Geographies geoList = authority.GetGeographiesForOrganization(org); if (geoList.Count >= 0) { geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); this.DropGeographies.Items.Clear(); foreach (Geography nodeRoot in geoList) { Geographies nodeTree = nodeRoot.GetTree(); foreach (Geography node in nodeTree) { string nodeLabel = node.Name; for (int loop = 0; loop < node.Generation; loop++) { nodeLabel = "|-- " + nodeLabel; } if (authority.HasPermission(Permission.CanSendLocalMail, orgId, node.Identity, Authorization.Flag.Default)) { DropGeographies.Items.Add(new ListItem(nodeLabel, node.GeographyId.ToString())); } } } if (_authority.HasPermission(Permission.CanSendLocalMail, org.Identity, -1, Authorization.Flag.Default)) { DropGeographies.Items.Add(new ListItem("All", Geography.RootIdentity.ToString())); DropGeographies.Items[DropGeographies.Items.Count - 1].Selected = true; } ResetGeographyData(); } }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; Response.Expires = -1; bool validationOK = false; int personId = 0; string ticket = Request["ticket"] != null ? Request["ticket"].ToString() : ""; //Check that call is originating from an address that is allowed string[] local = (Request.ServerVariables["LOCAL_ADDR"]).Split(new char[] { '.' }); string[] remote = (Request.ServerVariables["REMOTE_ADDR"]).Split(new char[] { '.' }); if (local[0] == remote[0] && local[1] == remote[1]) { authorizedCall = true; } if (allowedExternalIPs.ContainsKey(Request.ServerVariables["REMOTE_ADDR"].ToString())) { authorizedCall = true; } //Check that the ticket is among the issued ones. Dictionary <string, InternalLoginTicket> openTickets = new Dictionary <string, InternalLoginTicket>(); if (Application["SubSystem_LoginTickets"] != null) { Application.Lock(); try { openTickets = (Dictionary <string, InternalLoginTicket>)Application["SubSystem_LoginTickets"]; } catch (Exception) { } //Remove expired ones List <string> toremove = new List <string>(); foreach (string key in openTickets.Keys) { if (openTickets[key].created.AddMinutes(2) < DateTime.Now) { toremove.Add(key); } } foreach (string key in toremove) { openTickets.Remove(key); } //Check the current ticket if (openTickets.ContainsKey(ticket)) { validationOK = true; personId = openTickets[ticket].validatedUserID; openTickets.Remove(ticket); } Application["SubSystem_LoginTickets"] = openTickets; Application.UnLock(); } if (!validationOK) { XmlElement fail = xDoc.CreateElement("EPICFAIL"); xDoc.AppendChild(fail); fail.InnerText = "Ticket not found"; } else { XmlElement root = xDoc.CreateElement("ROOT"); xDoc.AppendChild(root); XmlElement xPerson = xDoc.CreateElement("USER"); root.AppendChild(xPerson); try { Person viewingPerson = Person.FromIdentity(personId); XmlElement xElem = xDoc.CreateElement("ID"); xPerson.AppendChild(xElem); xElem.InnerText = viewingPerson.Identity.ToString(); xElem = xDoc.CreateElement("NAME"); xPerson.AppendChild(xElem); xElem.InnerText = authorizedCall ? viewingPerson.Name : "Call from external IP"; xElem = xDoc.CreateElement("EMAIL"); xPerson.AppendChild(xElem); if (string.IsNullOrEmpty(viewingPerson.PartyEmail)) { xElem.InnerText = authorizedCall ? viewingPerson.Email : "some info hidden"; } else { xElem.InnerText = authorizedCall ? viewingPerson.PartyEmail : "some info hidden"; } xElem = xDoc.CreateElement("HANDLE"); xPerson.AppendChild(xElem); if (string.IsNullOrEmpty(viewingPerson.Handle)) { xElem.InnerText = ""; } else { xElem.InnerText = authorizedCall ? viewingPerson.Handle : "some info hidden"; } xElem = xDoc.CreateElement("PHONE"); xPerson.AppendChild(xElem); if (string.IsNullOrEmpty(viewingPerson.Phone)) { xElem.InnerText = ""; } else { xElem.InnerText = authorizedCall ? viewingPerson.Phone : "for security reasons"; } xElem = xDoc.CreateElement("GEOGRAPHIESFORPERSON"); xPerson.AppendChild(xElem); Geographies line = viewingPerson.Geography.GetLine(); Geography[] linearr = line.ToArray(); Array.Reverse(linearr); foreach (Geography g in linearr) { XmlElement currentElem = xDoc.CreateElement("GEOGRAPHY"); xElem.AppendChild(currentElem); xElem = currentElem; currentElem.SetAttribute("geographyid", g.Identity.ToString()); currentElem.SetAttribute("name", g.Name); } xElem = xDoc.CreateElement("MEMBERSHIPS"); xPerson.AppendChild(xElem); if (authorizedCall) { Memberships memberships = viewingPerson.GetMemberships(); foreach (PirateWeb.Logic.Pirates.Membership ms in memberships) { XmlElement currentElem = xDoc.CreateElement("MEMBERSHIP"); xElem.AppendChild(currentElem); currentElem.SetAttribute("orgid", ms.OrganizationId.ToString()); currentElem.SetAttribute("name", ms.Organization.Name); currentElem.SetAttribute("until", ms.Expires.ToString("yyyy-MM-dd")); currentElem.SetAttribute("paymentstatus", ms.PaymentStatus.ToString()); } } else { XmlElement currentElem = xDoc.CreateElement("MEMBERSHIP"); xElem.AppendChild(currentElem); currentElem.SetAttribute("orgid", "1"); currentElem.SetAttribute("name", "Dummy org PPSE, external call always member"); currentElem.SetAttribute("until", DateTime.Today.AddMonths(1).ToString("yyyy-MM-dd")); currentElem.SetAttribute("paymentstatus", "PaymentRecieved"); } try { Authority authority = viewingPerson.GetAuthority(); XmlElement geoRoot = xDoc.CreateElement("GEOGRAPHIESFORORGANIZATION"); root.AppendChild(geoRoot); geoRoot.SetAttribute("orgid", Organization.PPSEid.ToString()); geoRoot.SetAttribute("gen", "-1"); Organization org = Organization.FromIdentity(Organization.PPSEid);//PP SE Geographies geoList = authority.GetGeographiesForOrganization(org); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); foreach (Geography nodeRoot in geoList) { XmlElement parentRoot = geoRoot; Geographies nodeTree = nodeRoot.GetTree(); XmlElement currentElem = geoRoot; int prevGen = -1; foreach (Geography node in nodeTree) { int parentLevel = int.Parse(parentRoot.GetAttribute("gen")); if (node.Generation > prevGen) { parentRoot = currentElem; parentLevel = prevGen; } else if (node.Generation < prevGen) { parentRoot = (XmlElement)currentElem; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); while (parentLevel > -1 && parentLevel >= node.Generation) { parentRoot = (XmlElement)parentRoot.ParentNode; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); } } prevGen = node.Generation; currentElem = xDoc.CreateElement("GEOGRAPHY"); parentRoot.AppendChild(currentElem); currentElem.SetAttribute("geographyid", node.Identity.ToString()); currentElem.SetAttribute("name", node.Name); currentElem.SetAttribute("gen", node.Generation.ToString()); } } } catch (Exception) { //Failed in trying to list roles } } catch (Exception ex) { XmlElement fail = xDoc.CreateElement("EPICFAIL"); xDoc.AppendChild(fail); fail.InnerText = "Exception thrown:" + ex.Message; } } Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n" + xDoc.OuterXml); Response.Write("\r\n"); }
protected void Page_Load (object sender, EventArgs e) { Response.ContentType = "text/xml"; string[] local = (Request.ServerVariables["LOCAL_ADDR"]).Split(new char[] { '.' }); string[] remote = (Request.ServerVariables["REMOTE_ADDR"]).Split(new char[] { '.' }); if (local[0] == remote[0] && local[1] == remote[1]) localCall = true; int personId = 0; Person viewingPerson = null; string personStr = Request["personid"] != null ? Request["personid"].ToString() : ""; int.TryParse(personStr, out personId); if (personId > 0) { viewingPerson = Person.FromIdentity(personId); } if (personId == 0 || viewingPerson == null) { XmlElement fail = xDoc.CreateElement("EPICFAIL"); xDoc.AppendChild(fail); fail.InnerText = "No such Person"; } else { XmlElement root = xDoc.CreateElement("ROOT"); xDoc.AppendChild(root); try { Authority authority = viewingPerson.GetAuthority(); XmlElement geoRoot = xDoc.CreateElement("GEOGRAPHIESFORORGANIZATION"); root.AppendChild(geoRoot); geoRoot.SetAttribute("orgid", "1"); geoRoot.SetAttribute("gen", "-1"); geoRoot.SetAttribute("person", personId.ToString()); Organization org = Organization.FromIdentity(1);//PP SE Geographies geoList = authority.GetGeographiesForOrganization(org); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); foreach (Geography nodeRoot in geoList) { XmlElement parentRoot = geoRoot; Geographies nodeTree = nodeRoot.GetTree(); XmlElement currentElem = geoRoot; int prevGen = -1; foreach (Geography node in nodeTree) { int parentLevel = int.Parse(parentRoot.GetAttribute("gen")); if (node.Generation > prevGen) { parentRoot = currentElem; parentLevel = prevGen; } else if (node.Generation < prevGen) { parentRoot = (XmlElement)currentElem; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); while (parentLevel > -1 && parentLevel >= node.Generation) { parentRoot = (XmlElement)parentRoot.ParentNode; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); } } prevGen = node.Generation; currentElem = xDoc.CreateElement("GEOGRAPHY"); parentRoot.AppendChild(currentElem); currentElem.SetAttribute("geographyid", node.Identity.ToString()); currentElem.SetAttribute("name", node.Name); currentElem.SetAttribute("gen", node.Generation.ToString()); } } } catch { } } Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n" + xDoc.OuterXml); Response.Write("\r\n"); }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/xml"; string[] local = (Request.ServerVariables["LOCAL_ADDR"]).Split(new char[] { '.' }); string[] remote = (Request.ServerVariables["REMOTE_ADDR"]).Split(new char[] { '.' }); if (local[0] == remote[0] && local[1] == remote[1]) { localCall = true; } string personIDString = Request["personid"] != null ? Request["personid"].ToString() : ""; string geoString = Request.QueryString["GeographyId"]; int geoRootId = Geography.SwedenId; if (geoString != null && geoString.Length > 0) { geoRootId = Int32.Parse(geoString.Trim()); } Geography geography = Geography.FromIdentity(geoRootId); XmlElement root = xDoc.CreateElement("ROOT"); root.SetAttribute("gen", "-1"); xDoc.AppendChild(root); try { Person viewingPerson = Person.FromIdentity(int.Parse(personIDString)); Authority authority = viewingPerson.GetAuthority(); Organization org = Organization.FromIdentity(1);//PP SE Geographies geoList = authority.GetGeographiesForOrganization(org); geoList = geoList.RemoveRedundant(); geoList = geoList.FilterAbove(Geography.FromIdentity(org.AnchorGeographyId)); foreach (Geography nodeRoot in geoList) { XmlElement parentRoot = root; Geographies nodeTree = nodeRoot.GetTree(); XmlElement currentElem = root; int prevGen = -1; foreach (Geography node in nodeTree) { int parentLevel = int.Parse(parentRoot.GetAttribute("gen")); if (node.Generation > prevGen) { parentRoot = currentElem; parentLevel = prevGen; } else if (node.Generation < prevGen) { parentRoot = (XmlElement)currentElem; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); while (parentLevel > -1 && parentLevel >= node.Generation) { parentRoot = (XmlElement)parentRoot.ParentNode; parentLevel = int.Parse(parentRoot.GetAttribute("gen")); } } prevGen = node.Generation; currentElem = xDoc.CreateElement("GEOGRAPHY"); parentRoot.AppendChild(currentElem); currentElem.SetAttribute("geographyid", node.Identity.ToString()); currentElem.SetAttribute("name", node.Name); currentElem.SetAttribute("gen", node.Generation.ToString()); } } } catch { } Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n" + xDoc.OuterXml); Response.Write("\r\n"); }