UFN_CLIENTUSERS_OBJECTTASKOBJECTS
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CLIENTUSERSID | int | IN | |
@OBJECTTASKENUMID | int | IN | |
@OBJECTTYPEID | int | IN |
Definition
Copy
create function [dbo].[UFN_CLIENTUSERS_OBJECTTASKOBJECTS]
(
@CLIENTUSERSID int,
@OBJECTTASKENUMID int,
@OBJECTTYPEID int
)
returns table
as return
--TWG 05/15/2013 inlining this function
select
ESP.[SECUREDOBJECTGUID] as OBJECTGUID,
CAST((ESP.VALUE + ISNULL(EX.VALUE,0)) as bit) as VALUE
from [dbo].[CMSEVERYONESECURITYPRIVS] ESP
left outer join (
select distinct(OSE.SECUREDOBJECTGUID), 1 as VALUE
from [dbo].[UFN_CLIENTUSERS_SECURITYEXCEPTIONOBJECTS](@CLIENTUSERSID) EG
inner join dbo.CMSOBJETSECURITYEXCEPTION OSE on OSE.EXCEPTIONOBJECTGUID = EG.[GUID]
where OSE.OBJECTTASKID = (select ID from [dbo].[CMSOBJECTTASK] WHERE ENUMID = @OBJECTTASKENUMID)
) EX
on EX.SECUREDOBJECTGUID = ESP.[SECUREDOBJECTGUID]
where ESP.OBJECTTASKID = (select ID from [dbo].[CMSOBJECTTASK] WHERE ENUMID = @OBJECTTASKENUMID) and (@OBJECTTYPEID = 0 or ESP.SECUREDOBJECTTYPEID = @OBJECTTYPEID)
union all
--Need to select items who don't have explicit security saved but have default value
select
SO.OBJECTGUID,
(select OTOT.DEFAULTVALUE from dbo.CMSOBJECTTYPEOBJECTTASK OTOT where OTOT.OBJECTTASKID = (select ID from [dbo].[CMSOBJECTTASK] WHERE ENUMID = @OBJECTTASKENUMID) and OTOT.OBJECTTYPEID = @OBJECTTYPEID)
from dbo.V_CMSSECURABLEOBJECTS SO
left outer join [dbo].[CMSEVERYONESECURITYPRIVS] ESP on ESP.SECUREDOBJECTGUID = SO.OBJECTGUID
where SO.OBJECTTYPEID = @OBJECTTYPEID and ESP.SECUREDOBJECTGUID is null
and (select OTOT.DEFAULTVALUE from dbo.CMSOBJECTTYPEOBJECTTASK OTOT where OTOT.OBJECTTASKID = (select ID from [dbo].[CMSOBJECTTASK] WHERE ENUMID = @OBJECTTASKENUMID) and OTOT.OBJECTTYPEID = @OBJECTTYPEID) is not null