/// <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); }
/// <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); }
/// <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); }
/// <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); }