UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYROOTQUERYVIEWID

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@ROOTQUERYVIEWID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_BYROOTQUERYVIEWID
(
    @CURRENTAPPUSERID uniqueidentifier,
    @ROOTQUERYVIEWID uniqueidentifier
)
returns table
as
    return
    (
    select 
        QUERYVIEWCATALOG.ID QUERYVIEWCATALOGID
    from dbo.QUERYVIEWCATALOG
          inner join dbo.QUERYVIEWRELATIONSHIP on QUERYVIEWRELATIONSHIP.RELATEDQUERYVIEWID = QUERYVIEWCATALOG.ID
          inner join dbo.SMARTFIELD on replace(upper('V_QUERY_SMARTFIELD'+convert(nvarchar(36),SMARTFIELD.TABLECATALOGID)),'-','') = 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 
          QUERYVIEWRELATIONSHIP.ROOTQUERYVIEWID = @ROOTQUERYVIEWID
          and
          (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.QUERYVIEWRELATIONSHIP on QUERYVIEWRELATIONSHIP.RELATEDQUERYVIEWID = QUERYVIEWCATALOG.ID
          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 
          QUERYVIEWRELATIONSHIP.ROOTQUERYVIEWID = @ROOTQUERYVIEWID
          and
          (SMARTFIELDCATALOG.HASSITEFILTER = 0
          or
          GRANTED_FORSITE.ISVALID = 1)
    group by QUERYVIEWCATALOG.ID        
    )