UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYQUERYVIEWXML

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@OBJECTNAMEXML xml IN

Definition

Copy


CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYQUERYVIEWXML
(
    @CURRENTAPPUSERID uniqueidentifier,
    @OBJECTNAMEXML XML
)
returns table
as
    return
    (
    select 
        QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID
    from dbo.QUERYVIEWCATALOG
          inner join @OBJECTNAMEXML.nodes('QueryViews/QueryView') As Q(c) on Q.c.value('./@ObjectName', 'nvarchar(250)') = QUERYVIEWCATALOG.OBJECTNAME
          inner join dbo.SMARTFIELD on dbo.UFN_SMARTFIELD_GETQUERYVIEWOBJECTNAME(SMARTFIELD.ID) = UPPER(QUERYVIEWCATALOG.OBJECTNAME)
          inner join dbo.SMARTFIELDCATALOG on SMARTFIELDCATALOG.ID = SMARTFIELD.SMARTFIELDCATALOGID
          inner join dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@CURRENTAPPUSERID) GQV on QUERYVIEWCATALOG.ID = GQV.QUERYVIEWCATALOGID
          cross apply dbo.UFN_SITEID_MAPFROM_SMARTFIELDID(SMARTFIELD.ID) as SMARTFIELDSITE
          outer apply dbo.UFN_SECURITY_APPUSER_GRANTED_QUERYVIEW_FORSITE_TVF(@CURRENTAPPUSERID, QUERYVIEWCATALOG.ID, SMARTFIELDSITE.SITEID) as GRANTED_FORSITE
    where 
            SMARTFIELDCATALOG.HASSITEFILTER = 0
            or
            GRANTED_FORSITE.ISVALID = 1
    group by QUERYVIEWCATALOG.ID
        union
        select
                QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID
        from dbo.SMARTFIELD
                inner join dbo.OLAPDATASOURCESMARTFIELD on SMARTFIELD.ID = OLAPDATASOURCESMARTFIELD.SMARTFIELDID
                inner join dbo.SMARTFIELDCATALOG on SMARTFIELDCATALOG.ID = SMARTFIELD.SMARTFIELDCATALOGID
                inner join dbo.QUERYVIEWCATALOG on dbo.UFN_OLAPSMARTFIELD_GETQUERYVIEWOBJECTNAME(SMARTFIELD.ID, OLAPDATASOURCESMARTFIELD.OLAPDATASOURCEID) = UPPER(QUERYVIEWCATALOG.OBJECTNAME)
                inner join dbo.UFN_SECURITY_GETGRANTEDQUERYVIEWSFORUSER(@CURRENTAPPUSERID) GQV on QUERYVIEWCATALOG.ID = GQV.QUERYVIEWCATALOGID
                cross apply dbo.UFN_SITEID_MAPFROM_SMARTFIELDID(SMARTFIELD.ID) as SMARTFIELDSITE
                outer apply dbo.UFN_SECURITY_APPUSER_GRANTED_QUERYVIEW_FORSITE_TVF(@CURRENTAPPUSERID, QUERYVIEWCATALOG.ID, SMARTFIELDSITE.SITEID) as GRANTED_FORSITE
    where 
                SMARTFIELDCATALOG.HASSITEFILTER = 0
                or
                GRANTED_FORSITE.ISVALID = 1
    group by QUERYVIEWCATALOG.ID        
    )