UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_QUERYVIEW
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@QUERYVIEWID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_SMARTFIELDINSTANCE_QUERYVIEW
(
@CURRENTAPPUSERID uniqueidentifier,
@QUERYVIEWID uniqueidentifier
)
returns bit
as
begin
declare @RETURNVALUE bit = 0;
declare @IS_SYS_ADMIN bit;
declare @HASQUERYVIEWSYSTEMPRIVILEGE bit;
select @IS_SYS_ADMIN = ISSYSADMIN from dbo.APPUSER where ID=@CURRENTAPPUSERID;
if @IS_SYS_ADMIN = 0
select @HASQUERYVIEWSYSTEMPRIVILEGE = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID, '5f9bbcaf-9c67-4539-9880-ae4f709a9c1f')
if @IS_SYS_ADMIN = 1 or @HASQUERYVIEWSYSTEMPRIVILEGE = 1
begin
return 1;
end
else
begin
select
@RETURNVALUE = 1
from dbo.QUERYVIEWCATALOG
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
where QUERYVIEWCATALOG.ID = @QUERYVIEWID and
(
SMARTFIELDCATALOG.HASSITEFILTER = 0
or
exists (select 1 from dbo.UFN_SECURITY_APPUSER_GRANTED_QUERYVIEW_FORSITE_TVF(@CURRENTAPPUSERID, QUERYVIEWCATALOG.ID, SMARTFIELDSITE.SITEID))
);
end
return @RETURNVALUE;
end