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