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