UFN_PDACCOUNTSYSTEM_GETSYSTEMIDSFORUSERONFEATURE

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@SECURITYFEATUREID uniqueidentifier IN
@SECURITYFEATURETYPE int IN

Definition

Copy


create function dbo.UFN_PDACCOUNTSYSTEM_GETSYSTEMIDSFORUSERONFEATURE(
        @CURRENTAPPUSERID uniqueidentifier,
        @SECURITYFEATUREID uniqueidentifier,
        @SECURITYFEATURETYPE int
    )
    returns table
    as return
        select ID from 
        (
        select 
            T1.ID as ID
        from dbo.PDACCOUNTSYSTEM as T1
        inner join dbo.PDACCOUNTSYSTEMSITE as T2 on T1.ID = T2.PDACCOUNTSYSTEMID
        inner join dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) as T3 ON T3.SITEID=T2.SITEID
        where T1.ISBASICGL = 1  
        union 
        select 
            ID as ID
        from dbo.PDACCOUNTSYSTEM
        where ISBASICGL = 1 and ISDEFAULT = 1 and (select count(*) from dbo.UFN_SITESFORUSER(@CURRENTAPPUSERID)) = 0
        union 
        select 
            ID as ID
        from dbo.PDACCOUNTSYSTEM
        where ISBASICGL = 1 and dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
        union
        select 
            T1.ID as ID
        from dbo.PDACCOUNTSYSTEM as T1
        left join dbo.PDACCOUNTSYSTEMSITE as T2 on T1.ID = T2.PDACCOUNTSYSTEMID
        where ((select count(id) 
                        from SYSTEMROLEAPPUSER 
                        join dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_DATALIST as PERMISSIONS
                        on PERMISSIONS.SYSTEMROLEID = SYSTEMROLEAPPUSER.SYSTEMROLEID and PERMISSIONS.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID  
                        where (SYSTEMROLEAPPUSER.SECURITYMODECODE = 0 or (SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and T2.SITEID is null))
                        and SYSTEMROLEAPPUSER.APPUSERID =  @CURRENTAPPUSERID
                        and PERMISSIONS.DATALISTCATALOGID = @SECURITYFEATUREID) > 0)
        union
        select 
            ID as ID
        from dbo.PDACCOUNTSYSTEM
        where ISBASICGL = 0 and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('F5138EB6-6666-497A-8FB2-BAE24389AAE4') = 1
        ) AccountSystemTable