Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        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();
                }
            }
        }
Ejemplo n.º 6
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);
     }
 }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
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);
        }
Ejemplo n.º 12
0
 /// <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);
 }
Ejemplo n.º 13
0
 internal static bool IsBuiltIn(Guid roleId)
 {
     ConfigurationDataSet.RoleRow row = ConfigurationDataSet.Current.Role.FindByRoleId(roleId);
     return((row == null) ? false : row.BuiltIn);
 }
Ejemplo n.º 14
0
 /// <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);
 }