USP_DATALIST_CMSUSERGROUPSANDUSERSNOTINGROUP

Returns the users and groups available to add to the specified group

Parameters

Parameter Parameter Type Mode Description
@CLIENTROLEID int IN Input parameter indicating the context ID for the data list.
@NAME nvarchar(255) IN Name
@XMLDATA xml IN XMLData
@NUMROWSTORETURN int IN Number of Rows To Return
@USERSORGROUPS tinyint IN Return users or groups

Definition

Copy


                    CREATE procedure dbo.USP_DATALIST_CMSUSERGROUPSANDUSERSNOTINGROUP(@CLIENTROLEID int, @NAME nvarchar(255), @XMLDATA xml, @NUMROWSTORETURN int, @USERSORGROUPS tinyint = 0)

                    as
                    set nocount on;

                    declare @IDSTOREMOVE table (ID uniqueidentifier)
                    insert into @IDSTOREMOVE
                    select
                    t.r.value('@ID', 'uniqueidentifier')
                    from @XMLDATA.nodes('/t/r') t(r)

                    select top (@NUMROWSTORETURN) *
                    from 
                        (select top (@NUMROWSTORETURN) CR.Name, CR.Guid
                        from dbo.ClientRoles CR
                        left outer join (select CHILDCLIENTROLEID from dbo.CLIENTROLECHILD where PARENTCLIENTROLEID = @CLIENTROLEID) CRC on CRC.CHILDCLIENTROLEID = CR.ID
                        left outer join dbo.UFN_CLIENTROLE_GETPARENTIDS(@CLIENTROLEID) PARENTS on PARENTS.ID = CR.ID
                        left outer join @IDSTOREMOVE ITR on ITR.ID = CR.GUID
                        where CRC.CHILDCLIENTROLEID is null and PARENTS.ID is null and ITR.ID is null and CR.ID != @CLIENTROLEID and CR.EveryoneRole = 0 and CR.Deleted = 0 and Name like '%' + @NAME + '%' and (@USERSORGROUPS = 0 or @USERSORGROUPS = 1
                        order by CR.Name
                        union all
                        select top (@NUMROWSTORETURN) CU.FirstName + ' ' + CU.LastName + ' (' + CU.UserName + ')', CU.GUID
                        from dbo.clientusers CU
                        left outer join (select * from dbo.userroles where clientrolesid = @CLIENTROLEID) UR on CU.ID = UR.CLIENTUSERSID
                        left outer join @IDSTOREMOVE ITR on ITR.ID = CU.Guid
                        where UR.ClientRolesID is null and ITR.ID is null
                        and CU.Deleted = 0 and CU.InternalUser = 0 and CU.IsSupervisor = 0 and (CU.FirstName + ' ' + CU.LastName + ' (' + CU.UserName + ')') like '%' + @NAME + '%' and (@USERSORGROUPS = 0 or @USERSORGROUPS = 2
            and CU.Active = 1
                        order by CU.Firstname, CU.LastName, CU.UserName
                        ) items                        
                    order by items.Name