UFN_SECURITY_APPUSER_GRANTED_BATCH_FORSITE
Returns a table of Site IDs for which the user has been granted the BATCH according to the role sites.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@BATCHID | uniqueidentifier | IN | |
@SITEID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_BATCH_FORSITE
(
@APPUSERID uniqueidentifier,
@BATCHID 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.BATCH on BATCH.BATCHTEMPLATEID = [ST].BATCHTEMPLATEID
inner join dbo.SYSTEMROLEAPPUSER on SYSTEMROLEAPPUSER.SYSTEMROLEID = [ST].SYSTEMROLEID
left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = [ST].SYSTEMROLEID
where
SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and
BATCH.ID = @BATCHID and
ST.GRANTORDENY = 1 and
(
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 0)
or
(SITEPERMISSION.SITEID = @SITEID and (SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3))
or
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
)
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
inner join dbo.BATCH on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = [ST].SYSTEMROLEID
where
SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and
BATCH.ID = @BATCHID and
ST.GRANTORDENY = 1 and
(
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 0)
or
(SITEPERMISSION.SITEID = @SITEID and (SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3))
or
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
)
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.BATCHWORKFLOWID = BATCHWORKFLOW.ID --JamesWill WI160683 2011-06-07 Batch workflows aren't really tied to batch types anymore, so join to BATCHTEMPLATE via the direct BATCHTEMPLATE.BATCHWORKFLOWID relationship
inner join dbo.BATCH on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SYSTEMROLEAPPUSER.APPUSERID and SITEPERMISSION.SYSTEMROLEID = [ST].SYSTEMROLEID
where
SYSTEMROLEAPPUSER.APPUSERID = @APPUSERID and
BATCH.ID = @BATCHID and
ST.GRANTORDENY = 1 and
(
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 0)
or
(SITEPERMISSION.SITEID = @SITEID and (SYSTEMROLEAPPUSER.SECURITYMODECODE = 2 or SYSTEMROLEAPPUSER.SECURITYMODECODE = 3))
or
(SYSTEMROLEAPPUSER.SECURITYMODECODE = 1 and @SITEID is null)
)
)
return 1;
return 0;
end