UFN_SECURITY_APPUSER_GRANTED_BATCHASSIGNEDPROCESSOR
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@BATCHID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHASSIGNEDPROCESSOR
(@APPUSERID uniqueidentifier,@BATCHID 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=1
from dbo.BATCH
where APPUSERID = @APPUSERID
and BATCH.ID=@BATCHID
if @@ROWCOUNT = 0
begin
select top 1 @grant=GRANTORDENY
from dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE
with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE_BATCHTEMPLATEID_APPUSERID))
inner join dbo.BATCH on BATCH.BATCHTEMPLATEID = V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE.BATCHTEMPLATEID
where V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE.APPUSERID = @APPUSERID
and BATCH.ID=@BATCHID
order by GRANTORDENY ASC;
end
if @@ROWCOUNT = 0
begin
select top 1 @grant=GRANTORDENY
from dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE
inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE.BATCHTYPECATALOGID
inner join dbo.BATCH on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
where V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE.APPUSERID = @APPUSERID
and BATCH.ID=@BATCHID
order by GRANTORDENY ASC;
end
end
return @grant;
end