USP_SHELL_GETNAVIGATION

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@APPUSER_IS_KNOWN_SYSADMIN bit IN

Definition

Copy



CREATE procedure dbo.USP_SHELL_GETNAVIGATION

@APPUSERID uniqueidentifier,
@APPUSER_IS_KNOWN_SYSADMIN bit = null

as
set nocount on;

declare @IsSysAdmin bit;

if @APPUSER_IS_KNOWN_SYSADMIN is null
    select @IsSysAdmin = ISSYSADMIN 
    from dbo.APPUSER 
    where ID = @APPUSERID;    
else
    set @IsSysAdmin=@APPUSER_IS_KNOWN_SYSADMIN;

if @IsSysAdmin = 1        
    select
        FA.FUNCTIONALAREASPECXML, TASKCATALOG.TASKSPECXML,
        case when 
            (select count(*
             from dbo.SYSTEMROLETASK as SRT 

             where (SRT.TASKID = TASKCATALOG.ID) and 
                   (SRT.DISPLAYONHOMEPAGE = 1)) = 0 
        then convert(bit, 0)
        else convert(bit, 1)
        end as 'DISPLAYONHOMEPAGE', FA.ID AS FUNCTIONALAREAID

        from 
            dbo.FUNCTIONALAREACATALOG FA inner join dbo.TASKCATALOG on FA.ID = TASKCATALOG.FUNCTIONALAREAID            

        where  
            dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED(FA.INSTALLEDPRODUCTLISTXML)=1

        order by 
            FA.SEQUENCE, FA.[NAME], TASKCATALOG.SEQUENCE, TASKCATALOG.[NAME];


else

        select 
            FA.FUNCTIONALAREASPECXML, TASKCATALOG.TASKSPECXML,
            case when 
                (select count(*
                 from 
                        dbo.SYSTEMROLETASK 
                 inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = SYSTEMROLETASK.SYSTEMROLEID
                 where (SYSTEMROLETASK.TASKID = TASKCATALOG.ID) and 
                       (dbo.SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID) and 
                       (dbo.SYSTEMROLETASK.DISPLAYONHOMEPAGE = 1)) = 0
            then convert(bit, 0)
            else convert(bit, 1)
            end as 'DISPLAYONHOMEPAGE' , FA.ID AS FUNCTIONALAREAID
            from 
                dbo.TASKCATALOG inner join dbo.FUNCTIONALAREACATALOG as FA on TASKCATALOG.FUNCTIONALAREAID = FA.ID
            where 

                (                 
                dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED(FA.INSTALLEDPRODUCTLISTXML)=1                                                
                ) 
              AND TASKCATALOG.ID in (                            
                      select GRANTEDTASKS.TASKID
                    from dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_TASK GRANTEDTASKS
                    where GRANTEDTASKS.APPUSERID = @APPUSERID
                )

            order by 
                FA.SEQUENCE, FA.[NAME], TASKCATALOG.SEQUENCE, TASKCATALOG.[NAME];