Esempio n. 1
0
 /// <summary>
 /// Removes Organization from the current context
 /// </summary>
 /// <param name="organization">The organization.</param>
 public void RemoveOrganization(Organization organization)
 {
     if (Organizations.Contains(organization))
     {
         Organizations.Remove(organization);
     }
 }
Esempio n. 2
0
 public void RemoveChild(IManifestNode child)
 {
     switch (child.GetType().Name)
     {
     case "OrganizationType":
     {
         var o = child as OrganizationType;
         if (Organizations.Contains(o))
         {
             Organizations.Remove(o);
             return;
         }
         break;
     }
     }
     throw new FireFlyException("Item '{0}' not found", child);
 }
Esempio n. 3
0
        public Organizations OrganisationsWithPermission(Permission perm, RoleType[] roles)
        {
            Organizations orgList = GetOrganizations(roles);
            Organizations retList = new Organizations();

            foreach (Organization org in orgList)
            {
                if (HasPermission(perm, org.Identity, -1, Authorization.Flag.Default))
                {
                    if (!retList.Contains(org))
                    {
                        retList.Add(org);
                    }
                }
            }
            return(retList);
        }
Esempio n. 4
0
        public void TryAdd(FilterItemType type, object value)
        {
            if (value == null)
            {
                return;
            }

            switch (type)
            {
            case FilterItemType.Category:
                if (!Categories.Contains(value.ToString()))
                {
                    Categories.Add(value.ToString());
                }
                break;

            case FilterItemType.Level:
                if (!Levels.Contains(value.ToString()))
                {
                    Levels.Add(value.ToString());
                }
                break;

            case FilterItemType.Operation:
                if (!Operations.Contains(value.ToString()))
                {
                    Operations.Add(value.ToString());
                }
                break;

            case FilterItemType.Organization:
                if (!Organizations.Contains(value.ToString()))
                {
                    Organizations.Add(value.ToString());
                }
                break;

            case FilterItemType.Process:
                if (!Processes.Contains(value.ToString()))
                {
                    Processes.Add(value.ToString());
                }
                break;

            case FilterItemType.ReqId:
                if (!RequestIds.Contains(value.ToString()))
                {
                    RequestIds.Add(value.ToString());
                }
                break;

            case FilterItemType.Thread:
                if (!Threads.Contains(value.ToString()))
                {
                    Threads.Add(value.ToString());
                }
                break;

            default:
                if (Users.All(u => u.Id != ((UserInfo)value).Id))
                {
                    Users.Add((UserInfo)value);
                }
                break;
            }
        }
Esempio n. 5
0
        public static PersonIconSpec ForPerson(Person person, Organizations organizations)
        {
            // HACK: For now, cheat and assume only PPSE roles matter. A future expansion of this is needed.
            // HACK: Rehacked to use another org in case there is one and PPSE is not among selected
            Organization org = null;

            if (organizations.Contains(Organization.PPSE) || organizations.Count == 0)
            {
                org = Organization.PPSE;
            }
            else
            {
                org = organizations[0];
            }

            bool isMember = false;

            foreach (Organization org1 in organizations)
            {
                if (person.MemberOf(org1))
                {
                    isMember = true;
                }
            }

            if (!isMember)
            {
                // if he/she used to be a member, use exmember icons

                Memberships memberships = person.GetMemberships(true);

                foreach (Membership membership in memberships)
                {
                    if (membership.Organization.Identity == org.Identity)
                    {
                        return(new PersonIconSpec("pwcustom/exmember-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Expired member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                    }
                }

                // If activist, use activist icon (as sex is unknown, use silhouette)

                if (person.IsActivist)
                {
                    return(new PersonIconSpec("pwcustom/activist-silhouette.png", "Activist"));
                }

                // TODO: Add case for was-activist

                // otherwise, use unknown icon

                return(new PersonIconSpec("user-silhouette.png", "Unknown"));
            }

            Authority auth = person.GetAuthority();

            if (auth.SystemPersonRoles.Length == 0 && auth.LocalPersonRoles.Length == 0 && auth.OrganizationPersonRoles.Length == 0)
            {
                // This is a fairly regular joe.

                if (person.IsActivist)
                {
                    return(new PersonIconSpec("pwcustom/activist-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Activist, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
                else
                {
                    return(new PersonIconSpec("pwcustom/member-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
            }

            // HACK: Cheat and return "org leader" for ID 1

            if (person.Identity == 1)
            {
                return(new PersonIconSpec("pwcustom/orglevel-3-male.png", "Org Lead"));
            }
            bool foundOddRole = false;

            foreach (Organization org1 in organizations)
            {
                string orgName = org1.NameShort + ", ";

                if (org1 == Organization.PPSE)
                {
                    orgName = "";
                }


                // Chairman / equivalent

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationChairman, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/boardlevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Chairman, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Board member

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationBoardMember, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/boardlevel-2-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Board member, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Board deputy

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationBoardDeputy, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/boardlevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Board deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Auditor

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationAuditor, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/boardlevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Autitor, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Org-level leader or deputy

                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalLead, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/orglevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org Lead, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalDeputy, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/orglevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org Deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Org-level secretary

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationSecretary, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/orglevel-2-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org secretary, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // system roles

                if (auth.HasRoleType(RoleType.SystemAdmin))
                {
                    return(new PersonIconSpec("user-worker.png", "Sys.adm., " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // Org-level admin

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationAdmin, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/orglevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalAdmin, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/orglevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                // TODO: ADD THE REST OF THE ROLES HERE SOMEWHERE

                // local roles

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalLead, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/officer-lead-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local lead, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalDeputy, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/officer-deputy-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalAdmin, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return(new PersonIconSpec("pwcustom/officer-admin-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }

                if (auth.HasRoleAtOrganization(org1, Authorization.Flag.AnyGeographyExactOrganization) ||
                    auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    foundOddRole = true;
                }
            }

            if (!foundOddRole)
            {
                if (person.IsActivist)
                {
                    return(new PersonIconSpec("pwcustom/activist-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Activist, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
                else
                {
                    return(new PersonIconSpec("pwcustom/member-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
                }
            }
            else
            {
                // unhandled role type
                return(new PersonIconSpec("user-silhouette-question.png", "unknown role, " + (person.IsFemale ? "female" : person.IsMale ? "male" : "")));
            }
        }
Esempio n. 6
0
 public Organizations OrganisationsWithPermission (Permission perm, RoleType[] roles)
 {
     Organizations orgList = GetOrganizations(roles);
     Organizations retList = new Organizations();
     foreach (Organization org in orgList)
     {
         if (HasPermission(perm, org.Identity, -1, Authorization.Flag.Default))
             if (!retList.Contains(org))
                 retList.Add(org);
     }
     return retList;
 }
Esempio n. 7
0
        public static PersonIconSpec ForPerson (Person person, Organizations organizations)
        {
            // HACK: For now, cheat and assume only PPSE roles matter. A future expansion of this is needed.
            // HACK: Rehacked to use another org in case there is one and PPSE is not among selected
            Organization org = null;

            if (organizations.Contains(Organization.PPSE) || organizations.Count == 0)
            {
                org = Organization.PPSE;
            }
            else
            {
                org = organizations[0];
            }

            bool isMember = false;
            foreach (Organization org1 in organizations)
            {
                if (person.MemberOf(org1)) isMember = true;
            }

            if (!isMember)
            {
                // if he/she used to be a member, use exmember icons

                Memberships memberships = person.GetMemberships(true);

                foreach (Membership membership in memberships)
                {
                    if (membership.Organization.Identity == org.Identity)
                    {
                        return new PersonIconSpec("pwcustom/exmember-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Expired member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                    }
                }

                // If activist, use activist icon (as sex is unknown, use silhouette)

                if (person.IsActivist)
                {
                    return new PersonIconSpec("pwcustom/activist-silhouette.png", "Activist");
                }

                // TODO: Add case for was-activist

                // otherwise, use unknown icon

                return new PersonIconSpec("user-silhouette.png", "Unknown");
            }

            Authority auth = person.GetAuthority();

            if (auth.SystemPersonRoles.Length == 0 && auth.LocalPersonRoles.Length == 0 && auth.OrganizationPersonRoles.Length == 0)
            {
                // This is a fairly regular joe.

                if (person.IsActivist)
                {
                    return new PersonIconSpec("pwcustom/activist-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Activist, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
                else
                {
                    return new PersonIconSpec("pwcustom/member-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
            }

            // HACK: Cheat and return "org leader" for ID 1

            if (person.Identity == 1)
            {
                return new PersonIconSpec("pwcustom/orglevel-3-male.png", "Org Lead");
            }
            bool foundOddRole = false;
            foreach (Organization org1 in organizations)
            {
                string orgName = org1.NameShort + ", ";

                if (org1 == Organization.PPSE)
                    orgName = "";


                // Chairman / equivalent

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationChairman, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/boardlevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Chairman, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Board member

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationBoardMember, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/boardlevel-2-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Board member, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Board deputy

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationBoardDeputy, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/boardlevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Board deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Auditor

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationAuditor, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/boardlevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Autitor, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Org-level leader or deputy

                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalLead, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/orglevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org Lead, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalDeputy, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/orglevel-3-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org Deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Org-level secretary

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationSecretary, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/orglevel-2-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org secretary, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // system roles

                if (auth.HasRoleType(RoleType.SystemAdmin))
                {
                    return new PersonIconSpec("user-worker.png", "Sys.adm., " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // Org-level admin

                if (auth.HasRoleAtOrganization(org1, RoleType.OrganizationAdmin, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/orglevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
                if (auth.HasLocalRoleAtOrganizationGeography(org1, org1.PrimaryGeography, RoleType.LocalAdmin, Authorization.Flag.ExactGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/orglevel-1-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Org admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                // TODO: ADD THE REST OF THE ROLES HERE SOMEWHERE

                // local roles

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalLead, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/officer-lead-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local lead, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalDeputy, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/officer-deputy-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local deputy, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                if (auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, RoleType.LocalAdmin, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    return new PersonIconSpec("pwcustom/officer-admin-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Local admin, " + orgName + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }

                if (auth.HasRoleAtOrganization(org1, Authorization.Flag.AnyGeographyExactOrganization)
                 || auth.HasLocalRoleAtOrganizationGeography(org1, Geography.Root, Authorization.Flag.AnyGeographyExactOrganization))
                {
                    foundOddRole = true;
                }
            }

            if (!foundOddRole)
            {
                if (person.IsActivist)
                {
                    return new PersonIconSpec("pwcustom/activist-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Activist, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
                else
                {
                    return new PersonIconSpec("pwcustom/member-" + (person.IsFemale ? "female" : person.IsMale ? "male" : "") + ".png", "Member, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
                }
            }
            else
            {
                // unhandled role type
                return new PersonIconSpec("user-silhouette-question.png", "unknown role, " + (person.IsFemale ? "female" : person.IsMale ? "male" : ""));
            }
        }