public static DataTable GetGroupInstancesRoles(Guid groupId) { Guid organizationId = UserContext.Current.OrganizationId; ClientDataSet.GroupsInstancesRolesDataTable table = null; using (GroupsInstancesRolesTableAdapter adapter = new GroupsInstancesRolesTableAdapter(OrganizationProvider.GetConnectionString(organizationId))) { table = adapter.GetGroupsInstancesRolesByGroupId(organizationId, groupId); } table.Columns.Add("RoleName", typeof(string)); Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); foreach (ClientDataSet.GroupsInstancesRolesRow row in table) { Guid roleId = row.RoleId; if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { if ((roleId == RoleProvider.InstanceAdministratorRoleId) || ((firstInstance != null) && (row.InstanceId != firstInstance.InstanceId))) { continue; } } ConfigurationDataSet.RoleRow roleRow = RoleProvider.GetRoleRow(roleId); if (roleRow != null) { row["RoleName"] = roleRow.Name; } } 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); }
/// <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); }
public static DataTable GetGroupsInstancesRoles(List <Guid> groupIds) { if (groupIds == null) { return(null); } DataTable table = null; try { Guid organizationId = UserContext.Current.OrganizationId; Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); ClientDataSet.GroupsInstancesRolesDataTable girTable = GetGroupsInstancesRolesByGroups(organizationId, groupIds); table = girTable.DefaultView.ToTable(true, "GroupId", "Name"); table.Columns.Add("ParentGroupId", typeof(Guid)); table.Columns.Add("InstancesRoles", typeof(string)); foreach (DataRow row in table.Rows) { StringBuilder sb = new StringBuilder(); foreach (ClientDataSet.GroupsInstancesRolesRow gdrRow in girTable.Select(string.Format(CultureInfo.InvariantCulture, "{0} = '{1}'", girTable.GroupIdColumn.ColumnName, row["GroupId"]))) { Guid roleId = gdrRow.RoleId; if (!FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { if ((roleId == RoleProvider.InstanceAdministratorRoleId) || ((firstInstance != null) && (gdrRow.InstanceId != firstInstance.InstanceId))) { continue; } } ConfigurationDataSet.RoleRow roleRow = RoleProvider.GetRoleRow(roleId); if (roleRow != null) { sb.AppendFormat(CultureInfo.InvariantCulture, ",{0} | {1}", gdrRow["InstanceName"], roleRow.Name); } } if (sb.Length > 0) { sb.Remove(0, 1); row["InstancesRoles"] = sb.ToString(); } } return(table); } finally { if (table != null) { table.Dispose(); } } }
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); } }
private static void Fill(ConfigurationDataSet.RoleRow row, RoleElement role) { row.RoleId = role.Id; row.Name = role.Name; row.Description = (string.IsNullOrEmpty(role.Description) ? string.Empty : role.Description); row.ShortName = role.ShortName; row.Rank = role.Rank; row.StartActionId = role.StartPageId; row.BuiltIn = role.BuiltIn; }
/// <summary> /// Returns a navigate URL of the start page's action of the specified role. /// </summary> /// <param name="roleId">The role identifier.</param> /// <param name="instanceRequired">The instance required flag of the start action.</param> /// <returns>The System.String that represents the navigate URL of the start page's action or null reference, if the action was not found.</returns> internal static string GetStartActionNavigateUrl(Guid roleId, out bool instanceRequired) { instanceRequired = false; ConfigurationDataSet.RoleRow row = ConfigurationDataSet.Current.Role.FindByRoleId(roleId); Action action = null; if (row != null) { action = ActionProvider.PagesAndControls.FindByActionId(row.StartActionId); if (row.ActionRow != null) { instanceRequired = row.ActionRow.InstanceRequired; } } return((action == null) ? null : action.AbsoluteNavigateUrl); }
/// <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); }
public DataSet GetSortedListOfRolesGroupsById(Guid organizationId) { ClientDataSet.GroupsInstancesRolesDataTable table = GroupProvider.GetGroupsInstancesRoles(organizationId); table.Columns.Add("RoleName", typeof(string)); table.Columns.Add("GroupName", typeof(string)); foreach (ClientDataSet.GroupsInstancesRolesRow row in table.Rows) { ConfigurationDataSet.RoleRow roleRow = RoleProvider.GetRoleRow((Guid)row["RoleId"]); if (row != null) { row["RoleName"] = roleRow.Name; } MasterDataSet.GroupMappingsRow[] groups = LdapInfoProvider.GetGroupMappings(organizationId).Select(string.Format(CultureInfo.InvariantCulture, "GroupId = '{0}' AND OrganizationId = '{1}'", row["GroupId"], organizationId)) as MasterDataSet.GroupMappingsRow[]; if (groups.Length > 0) { row["GroupName"] = groups[0].LdapGroupName; } } return(table.DataSet); }
/// <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); }
/// <summary> /// Returns the short name of the specified role. /// </summary> /// <param name="roleId">Specifies the role's identifier.</param> /// <returns>The System.String that represents the short name of the specified role.</returns> public static string GetRoleShortName(Guid roleId) { ConfigurationDataSet.RoleRow row = ConfigurationDataSet.Current.Role.FindByRoleId(roleId); return((row == null) ? string.Empty : row.ShortName); }
internal static bool IsBuiltIn(Guid roleId) { ConfigurationDataSet.RoleRow row = ConfigurationDataSet.Current.Role.FindByRoleId(roleId); return((row == null) ? false : row.BuiltIn); }
/// <summary> /// Returns the action's identifier of the start page for specified role. /// </summary> /// <param name="roleId">The identifier of the role.</param> /// <returns>The unique identifier of the action of the start page for specified role.</returns> internal static Guid GetStartActionId(Guid roleId) { ConfigurationDataSet.RoleRow row = ConfigurationDataSet.Current.Role.FindByRoleId(roleId); return(row == null ? Guid.Empty : row.StartActionId); }