コード例 #1
0
ファイル: RoleProvider.cs プロジェクト: jy4618272/Common
        /// <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);
        }
コード例 #2
0
ファイル: RoleProvider.cs プロジェクト: jy4618272/Common
        /// <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);
        }
コード例 #3
0
ファイル: RoleProvider.cs プロジェクト: jy4618272/Common
        /// <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);
        }
コード例 #4
0
ファイル: RoleProvider.cs プロジェクト: jy4618272/Common
        /// <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);
        }