UFN_SECURITY_APPUSER_GRANTED_BATCHTEMPLATE_IN_NONSITEROLE

Returns true if the given user has permissions to the given batch template in a role that has no site security defined.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@BATCHTEMPLATEID uniqueidentifier IN

Definition

Copy


            CREATE function [dbo].[UFN_SECURITY_APPUSER_GRANTED_BATCHTEMPLATE_IN_NONSITEROLE]
            (
            @APPUSERID uniqueidentifier,
            @BATCHTEMPLATEID uniqueidentifier
            )
            returns bit as

            /*
            Returns true if the given user has permissions to the given task
            in a role whose site security is set to all records.

            */


            begin

            if exists
                (
                    select 
                        1
                    from 
                        dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE as SECURITYVIEW
                            with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE_BATCHTEMPLATEID_APPUSERID))
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.APPUSERID = SECURITYVIEW.APPUSERID
                    where
                        SECURITYVIEW.APPUSERID = @APPUSERID AND 
                        SECURITYVIEW.BATCHTEMPLATEID = @BATCHTEMPLATEID AND 
                        SECURITYVIEW.GRANTORDENY = 1 AND 
                        SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                    union all                
                    select 
                        1
                    from 
                        dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE as SECURITYVIEW
                        inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = SECURITYVIEW.BATCHTYPECATALOGID                        
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.APPUSERID = SECURITYVIEW.APPUSERID
                    where 
                        SECURITYVIEW.APPUSERID=@APPUSERID AND 
                        BATCHTEMPLATE.ID=@BATCHTEMPLATEID AND 
                        SECURITYVIEW.GRANTORDENY=1 AND 
                        SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                    union all
                    select 
                        1
                    from 
                        dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHWORKFLOWSTATE as SECURITYVIEW
                            with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHWORKFLOWSTATE_BATCHWORKFLOWSTATEID_APPUSERID))                                
                        inner join dbo.BATCH on BATCH.BATCHWORKFLOWSTATEID = SECURITYVIEW.BATCHWORKFLOWSTATEID                    
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.APPUSERID = SECURITYVIEW.APPUSERID
                    where 
                        SECURITYVIEW.APPUSERID=@APPUSERID AND 
                        BATCH.BATCHTEMPLATEID=@BATCHTEMPLATEID AND 
                        SECURITYVIEW.GRANTORDENY=1 AND 
                        SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                    union all
                    select 
                        1
                    from 
                        dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHPROCESSOR as SECURITYVIEW
                            with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATEPROCESSOR_BATCHTEMPLATEID_APPUSERID))                                
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.APPUSERID = SECURITYVIEW.APPUSERID
                    where 
                        SECURITYVIEW.APPUSERID=@APPUSERID AND 
                        SECURITYVIEW.BATCHTEMPLATEID=@BATCHTEMPLATEID AND 
                        SECURITYVIEW.GRANTORDENY=1 and
                        SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                    union all
                    select 
                        1
                    from 
                        dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATEAPPROVER as SECURITYVIEW
                            with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATEAPPROVER_BATCHTEMPLATEID_APPUSERID))                                                        
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.APPUSERID = SECURITYVIEW.APPUSERID
                    where 
                        SECURITYVIEW.APPUSERID=@APPUSERID AND 
                        SECURITYVIEW.BATCHTEMPLATEID=@BATCHTEMPLATEID AND 
                        SECURITYVIEW.GRANTORDENY=1 AND 
                        SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                ) return 1;

            return  0;

            end