UFN_SECURITY_APPUSER_GRANTED_BATCHTEMPLATE_FORSITE

Returns a table of Site IDs for which the user has been granted the BATCHTEMPLATE according to the role sites.

Return

Return Type
bit

Parameters

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

Definition

Copy


            CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHTEMPLATE_FORSITE
            (
                @APPUSERID uniqueidentifier,
                @BATCHTEMPLATEID uniqueidentifier,
                @SITEID uniqueidentifier
            )
            returns bit 
            as
            /*Returns a 1 if the the user has rights to according to site security.*/
            begin
                if exists
                (
                    select 
                        1
                    from 
                        dbo.SYSTEMROLEPERM_BATCHTEMPLATE as ST
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = ST.SYSTEMROLEID
                        inner join dbo.BATCHTEMPLATE on ST.BATCHTEMPLATEID = BATCHTEMPLATE.ID
                        left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = ST.SYSTEMROLEID
                    where 
                        SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and
                        ST.BATCHTEMPLATEID = @BATCHTEMPLATEID and
                        ST.GRANTORDENY = 1  
                        and    (
                            SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                            or (SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
                            or ((SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3) and SITEPERMISSION.SITEID = @SITEID)
                        )
                        and ((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSER(@APPUSERID,BATCHTEMPLATE.SITEID) = 1))
                    union
                    select 
                        1
                    from 
                        dbo.SYSTEMROLEPERM_BATCHTYPE as ST
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = ST.SYSTEMROLEID
                        inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = ST.BATCHTYPECATALOGID
                        left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = ST.SYSTEMROLEID                    
                    where 
                        SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and 
                        BATCHTEMPLATE.ID = @BATCHTEMPLATEID and
                        ST.GRANTORDENY = 1 
                        and    (
                            SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                            or (SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
                            or ((SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3) and SITEPERMISSION.SITEID = @SITEID)
                        )
                        and ((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSER(@APPUSERID,BATCHTEMPLATE.SITEID) = 1))
                    union
                    select
                        1
                    from 
                        dbo.SYSTEMROLEPERM_BATCHWORKFLOWSTATE as ST
                        inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = ST.SYSTEMROLEID
                        inner join dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOWSTATE.ID = ST.BATCHWORKFLOWSTATEID
                        inner join dbo.BATCHWORKFLOW on BATCHWORKFLOW.ID = BATCHWORKFLOWSTATE.BATCHWORKFLOWID
                        inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHWORKFLOW.BATCHTYPECATALOGID
                        left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = ST.SYSTEMROLEID
                    where 
                        SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and 
                        BATCHTEMPLATE.ID = @BATCHTEMPLATEID and
                        ST.GRANTORDENY = 1 
                        and    (
                            SYSTEMROLEAPPUSER.SECURITYMODECODE = 0
                            or (SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
                            or ((SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3) and SITEPERMISSION.SITEID = @SITEID)
                        )
                        and ((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSER(@APPUSERID,BATCHTEMPLATE.SITEID) = 1))
                )
                    return 1;

                return 0;
            end