UFN_SECURITY_APPUSER_GRANTED_BATCHPROCESSOR
Returns true if user has been granted and not denied rights for data entry to the batch for a system role
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_BATCHPROCESSOR
(@APPUSERID uniqueidentifier,@BATCHTEMPLATEID uniqueidentifier)
returns bit
as
/*
Returns true if user has been granted and not denied rights for data entry to the batch for a system role.
*/
begin
--If at least one grant and no deny then return true
--otherwise, false
declare @grant bit;
set @grant=0;
select @grant = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;
if @grant = 0
begin
--order by GRANTORDENY, deny will be first.
select
top 1 @grant=SECURITYVIEW.GRANTORDENY
from
dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHWORKFLOWSTATE SECURITYVIEW
with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHWORKFLOWSTATE_BATCHWORKFLOWSTATEID_APPUSERID))
inner join
dbo.BATCHWORKFLOWSTATE on SECURITYVIEW.BATCHWORKFLOWSTATEID = BATCHWORKFLOWSTATE.ID
inner join
dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHWORKFLOWID = BATCHWORKFLOWSTATE.BATCHWORKFLOWID
where
SECURITYVIEW.APPUSERID = @APPUSERID
and
BATCHTEMPLATE.ID=@BATCHTEMPLATEID
and
BATCHWORKFLOWSTATE.ISINITIALSTATE = 1
and
((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@APPUSERID, BATCHTEMPLATE.SITEID, @BATCHTEMPLATEID, 25) = 1))
order by
SECURITYVIEW.GRANTORDENY ASC;
if @@ROWCOUNT = 0
begin
select
top 1 @grant=SECURITYVIEW.GRANTORDENY
from
dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE SECURITYVIEW
with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE_BATCHTEMPLATEID_APPUSERID))
inner join
dbo.BATCHTEMPLATE on SECURITYVIEW.BATCHTEMPLATEID = BATCHTEMPLATE.ID
where
SECURITYVIEW.APPUSERID = @APPUSERID
and
SECURITYVIEW.BATCHTEMPLATEID=@BATCHTEMPLATEID
and
((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@APPUSERID, BATCHTEMPLATE.SITEID, @BATCHTEMPLATEID, 25) = 1))
order by
SECURITYVIEW.GRANTORDENY ASC;
end
if @@ROWCOUNT = 0
begin
select
top 1 @grant=SECURITYVIEW.GRANTORDENY
from
dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE SECURITYVIEW
inner join
dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = SECURITYVIEW.BATCHTYPECATALOGID
where
SECURITYVIEW.APPUSERID = @APPUSERID
and
BATCHTEMPLATE.ID=@BATCHTEMPLATEID
and
((BATCHTEMPLATE.SITEID is null) or (dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@APPUSERID, BATCHTEMPLATE.SITEID, @BATCHTEMPLATEID, 25) = 1))
order by
SECURITYVIEW.GRANTORDENY ASC;
end
end
return @grant;
end