Example #1
0
    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();
    }
Example #3
0
    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;
            }
        }
    }
Example #4
0
    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");
    }
Example #7
0
    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");
    }