USP_QUERYVIEWCATALOG_GETROOTLIST

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@USEINREPORTMODELGENERATOR bit IN

Definition

Copy


CREATE procedure dbo.USP_QUERYVIEWCATALOG_GETROOTLIST
(
    @APPUSERID uniqueidentifier,
    @USEINREPORTMODELGENERATOR bit = null
)
as 
    set nocount on;

    declare @IS_SYS_ADMIN bit;
    declare @HASQUERYVIEWSYSTEMPRIVILEGE bit = 0;
    declare @OKVIEWS table (QVID uniqueidentifier);

    select @IS_SYS_ADMIN = ISSYSADMIN from dbo.APPUSER where ID=@APPUSERID;

    if @IS_SYS_ADMIN = 0
        select @HASQUERYVIEWSYSTEMPRIVILEGE = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@APPUSERID, '5f9bbcaf-9c67-4539-9880-ae4f709a9c1f')

    if (@IS_SYS_ADMIN <> 1 and @HASQUERYVIEWSYSTEMPRIVILEGE <> 1)
        insert into @OKVIEWS(QVID)
            select QUERYVIEWCATALOGID from dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@APPUSERID);

    select 
        QUERYVIEWCATALOG.ID, 
        QUERYVIEWCATALOG.OBJECTNAME, 
        QUERYVIEWCATALOG.DISPLAYNAME, 
        QUERYVIEWCATALOG.RECORDTYPEID,
        RECORDTYPE.NAME as 'RECORDTYPE'
        QUERYVIEWCATALOG.OBJECTTYPE,
        QUERYVIEWCATALOG.DESCRIPTION,
        QUERYVIEWCATALOG.USEINREPORTMODELGENERATOR
    from 
        dbo.QUERYVIEWCATALOG 
    left outer join 
        dbo.RECORDTYPE on QUERYVIEWCATALOG.RECORDTYPEID = RECORDTYPE.ID
    where 
        QUERYVIEWCATALOG.ROOTOBJECT = 1 and ((QUERYVIEWCATALOG.OBJECTTYPE = 0) or (QUERYVIEWCATALOG.OBJECTTYPE = 1 and (QUERYVIEWCATALOG.PARAMETERMETADATAXML is null)))
        and (@USEINREPORTMODELGENERATOR is null or QUERYVIEWCATALOG.USEINREPORTMODELGENERATOR = @USEINREPORTMODELGENERATOR)
        and (
                (@IS_SYS_ADMIN =1 or @HASQUERYVIEWSYSTEMPRIVILEGE = 1)  
                    or 
                (QUERYVIEWCATALOG.ID in (select QVID from @OKVIEWS))
            )
    order by RECORDTYPE.NAME, QUERYVIEWCATALOG.DISPLAYNAME;

return 0;