Exemple #1
0
        /// <summary>
        /// Returns the highest by rank role from specified roles list.
        /// </summary>
        /// <param name="roleIdList">The array of roles identifiers.</param>
        /// <returns>The role identifier.</returns>
        public static Guid GetHighestRoleId(IList roleIdList)
        {
            ConfigurationDataSet.RoleRow searchedRoleRow = null;

            if (roleIdList != null)
            {
                ConfigurationDataSet.RoleDataTable table = ConfigurationDataSet.Current.Role;
                ConfigurationDataSet.RoleRow       row   = null;

                foreach (Guid roleId in roleIdList)
                {
                    row = table.FindByRoleId(roleId);
                    if (row != null)
                    {
                        if (searchedRoleRow == null)
                        {
                            searchedRoleRow = row;
                        }
                        else if (row.Rank < searchedRoleRow.Rank)
                        {
                            searchedRoleRow = row;
                        }
                    }
                }
            }

            return((searchedRoleRow == null) ? Guid.Empty : searchedRoleRow.RoleId);
        }
Exemple #2
0
        /// <summary>
        /// Gets the non buil-in roles, but including the instance administrator role.
        /// </summary>
        /// <param name="includeInstanceAdministratorRole">The flag specifying that the instance administrator role will be included in result.</param>
        /// <param name="includeOrganizationAdministratorRole">The flag specifying that the organization administrator role will be included in result.</param>
        /// <returns>The System.Data.DataTable that contains roles.</returns>
        public static DataTable GetAvailableRoles(bool includeInstanceAdministratorRole, bool includeOrganizationAdministratorRole)
        {
            ConfigurationDataSet.RoleDataTable table = ConfigurationDataSet.Current.Role.Copy() as ConfigurationDataSet.RoleDataTable;
            ConfigurationDataSet.RoleRow       row   = null;

            if (!includeOrganizationAdministratorRole)
            {
                row = table.FindByRoleId(OrganizationAdministratorRoleId);
                if (row != null)
                {
                    table.RemoveRoleRow(row);
                }
            }

            if ((!includeInstanceAdministratorRole) || (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances))
            {
                row = table.FindByRoleId(InstanceAdministratorRoleId);
                if (row != null)
                {
                    table.RemoveRoleRow(row);
                }
            }

            return(table);
        }
Exemple #3
0
        /// <summary>
        /// Returns the lowest by rank non built-in role from specified roles list.
        /// </summary>
        /// <param name="roleIdList">The array of roles identifiers.</param>
        /// <returns>The role identifier.</returns>
        internal static Guid GetLowestNonBuiltInRoleId(IList roleIdList)
        {
            ConfigurationDataSet.RoleRow searchedRoleRow = null;

            if (roleIdList != null)
            {
                ConfigurationDataSet.RoleDataTable table = ConfigurationDataSet.Current.Role;
                ConfigurationDataSet.RoleRow       row   = null;

                foreach (Guid roleId in roleIdList)
                {
                    if (!IsBuiltIn(roleId))
                    {
                        row = table.FindByRoleId(roleId);
                        if (row != null)
                        {
                            if (searchedRoleRow == null)
                            {
                                searchedRoleRow = row;
                            }
                            else if (row.Rank > searchedRoleRow.Rank)
                            {
                                searchedRoleRow = row;
                            }
                        }
                    }
                }
            }

            return((searchedRoleRow == null) ? Guid.Empty : searchedRoleRow.RoleId);
        }
Exemple #4
0
 private static void Fill(ConfigurationDataSet.RoleDataTable roleTable, RoleElementCollection roles)
 {
     foreach (RoleElement role in roles)
     {
         ConfigurationDataSet.RoleRow roleRow = roleTable.NewRoleRow();
         Fill(roleRow, role);
         roleTable.AddRoleRow(roleRow);
     }
 }
Exemple #5
0
        /// <summary>
        /// Returns the identifier of the role with specified name.
        /// </summary>
        /// <param name="name">The name of the role.</param>
        /// <returns>The identifier of the role with specified name.</returns>
        public static Guid GetRoleIdByName(string name)
        {
            Guid roleId = Guid.Empty;

            if (!string.IsNullOrEmpty(name))
            {
                ConfigurationDataSet.RoleDataTable table = ConfigurationDataSet.Current.Role.Copy() as ConfigurationDataSet.RoleDataTable;
                ConfigurationDataSet.RoleRow[]     rows  = table.Select(string.Concat(table.NameColumn.ColumnName, " = '", name.Replace("'", "''"), "'")) as ConfigurationDataSet.RoleRow[];
                if (rows.Length > 0)
                {
                    roleId = rows[0].RoleId;
                }
            }
            return(roleId);
        }
Exemple #6
0
        /// <summary>
        /// Returns the list of the non built-in roles lower by rank than specified.
        /// </summary>
        /// <param name="roleId">The unique identifier of the role.</param>
        /// <returns>The list of the non built-in roles lower by rank than specified.</returns>
        internal static ArrayList GetLowerNonBuiltInRoleIdList(Guid roleId)
        {
            ArrayList list = new ArrayList();

            ConfigurationDataSet.RoleDataTable table = ConfigurationDataSet.Current.Role;
            ConfigurationDataSet.RoleRow       row   = table.FindByRoleId(roleId);
            if (row != null)
            {
                foreach (ConfigurationDataSet.RoleRow row1 in table)
                {
                    if (!row1.BuiltIn)
                    {
                        if (row1.Rank > row.Rank)
                        {
                            list.Add(row1.RoleId);
                        }
                    }
                }
            }
            return(list);
        }
Exemple #7
0
        internal static ArrayList GetRoleIdListByShortNames(ConfigurationDataSet.RoleDataTable table, IEnumerable shortName)
        {
            ArrayList roleIdList = new ArrayList();

            if ((table != null) && (shortName != null))
            {
                StringBuilder sb = new StringBuilder();
                foreach (string name in shortName)
                {
                    if (string.Compare(name, "*", StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        if (sb.Length > 0)
                        {
                            sb.Remove(0, sb.Length - 1);
                        }
                        break;
                    }
                    sb.AppendFormat(",'{0}'", name.Replace("'", "''"));
                }

                if (sb.Length > 0)
                {
                    sb.Remove(0, 1);
                    sb.Append(")");
                    sb.Insert(0, string.Concat(table.ShortNameColumn.ColumnName, " IN ("));
                }

                foreach (ConfigurationDataSet.RoleRow row in table.Select(sb.ToString()))
                {
                    if (!roleIdList.Contains(row.RoleId))
                    {
                        roleIdList.Add(row.RoleId);
                    }
                }
            }

            return(roleIdList);
        }
Exemple #8
0
        /// <summary>
        /// Returns the highest by rank non built-in role.
        /// </summary>
        /// <returns>The role identifier.</returns>
        internal static Guid GetHighestNonBuiltInRoleId()
        {
            ConfigurationDataSet.RoleDataTable table           = ConfigurationDataSet.Current.Role;
            ConfigurationDataSet.RoleRow       searchedRoleRow = null;
            Guid roleId = Guid.Empty;

            foreach (ConfigurationDataSet.RoleRow row in table.Rows)
            {
                roleId = row.RoleId;
                if (!IsBuiltIn(roleId))
                {
                    if (searchedRoleRow == null)
                    {
                        searchedRoleRow = row;
                    }
                    else if (row.Rank < searchedRoleRow.Rank)
                    {
                        searchedRoleRow = row;
                    }
                }
            }
            return((searchedRoleRow != null) ? searchedRoleRow.RoleId : Guid.Empty);
        }