USP_SHELL_GETPAGES
Returns information about the pages available to the specified application user.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure [dbo].[USP_SHELL_GETPAGES](@APPUSERID uniqueidentifier)
as
begin
set nocount on;
declare @IsSysAdmin bit;
select @IsSysAdmin = ISSYSADMIN
from dbo.APPUSER
where ID = @APPUSERID;
if @IsSysAdmin = 1
select p.ID,
p.[NAME],
p.[DESCRIPTION],
p.CONTEXTRECORDTYPEID,
p.[PAGEDEFINITIONSPEC].value('declare namespace bbspec="bb_appfx_pagedefinition";/bbspec:PageDefinitionSpec[1]/bbspec:PageHeader[1]/@ImageKey','nvarchar(255)') AS [IMAGEKEY],
r.[DEFAULTSEARCHLISTID],
p.[UINAME]
from dbo.V_INSTALLED_PAGEDEFINITIONCATALOG p left join
dbo.RECORDTYPE r on p.CONTEXTRECORDTYPEID = r.ID
where
((p.CONTEXTRECORDTYPEID is null) or (not r.DEFAULTSEARCHLISTID is null))
else
begin
with cte_contextpages (ID, [NAME], [DESCRIPTION], CONTEXTRECORDTYPEID, EXPRESSIONDATAFORMID, IMAGEKEY, PAGEDEFINITIONSPEC, DEFAULTSEARCHLISTID, UINAME) as
( select p.ID,
p.[NAME],
p.[DESCRIPTION],
p.CONTEXTRECORDTYPEID,
p.[PAGEDEFINITIONSPEC].value('declare namespace bbspec="bb_appfx_pagedefinition";/bbspec:PageDefinitionSpec[1]/@ExpressionDataFormID','nvarchar(36)') AS [EXPRESSIONDATAFORMID],
p.[PAGEDEFINITIONSPEC].value('declare namespace bbspec="bb_appfx_pagedefinition";/bbspec:PageDefinitionSpec[1]/bbspec:PageHeader[1]/@ImageKey','nvarchar(255)') AS [IMAGEKEY],
p.[PAGEDEFINITIONSPEC],
r.[DEFAULTSEARCHLISTID],
p.[UINAME]
from dbo.V_INSTALLED_PAGEDEFINITIONCATALOG p left join
dbo.RECORDTYPE r on p.CONTEXTRECORDTYPEID = r.ID
where
((p.CONTEXTRECORDTYPEID is null) or (not r.DEFAULTSEARCHLISTID is null))
)
select cte_contextpages.ID, cte_contextpages.NAME, cte_contextpages.DESCRIPTION, cte_contextpages.CONTEXTRECORDTYPEID, cte_contextpages.IMAGEKEY, cte_contextpages.DEFAULTSEARCHLISTID, cte_contextpages.UINAME
from cte_contextpages
left join dbo.DATAFORMINSTANCECATALOG d on d.ID = EXPRESSIONDATAFORMID
left join dbo.DATAFORMTEMPLATECATALOG t on d.DATAFORMTEMPLATECATALOGID = t.ID
where (EXPRESSIONDATAFORMID = '00000000-0000-0000-0000-000000000000' and dbo.UFN_SECURITY_APPUSER_GRANTED_PAGECONTENTS_IN_SYSTEMROLE(@APPUSERID, PAGEDEFINITIONSPEC) = 1)
or
((coalesce(TEMPLATESPECXML.value(
'declare namespace bbspec="bb_appfx_viewdataformtemplate";
declare namespace c="bb_appfx_commontypes";
/bbspec:ViewDataFormTemplateSpec[1]/@NoSecurityRequired'
, 'bit')
, 0)
) = 1)
or
exists (select null
from dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_FORM v
where v.APPUSERID = @APPUSERID and
v.DATAFORMINSTANCECATALOGID=EXPRESSIONDATAFORMID
group by v.DATAFORMINSTANCECATALOGID
having min(convert(tinyint, v.GRANTORDENY)) = 1
)
end
return 0;
end