UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE
Returns true if the given user has permissions to the given form for the given site.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@DATFORMINSTANCEID | uniqueidentifier | IN | |
@SITEID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE
(
@APPUSERID uniqueidentifier,
@DATFORMINSTANCEID uniqueidentifier,
@SITEID uniqueidentifier
)
returns bit as
/*
Returns true if the given user has permissions to the given form
in a role whose SITE is either
1.) Blank and record security mode=0
2.) Assigned to the given SITE.
3.) Blank and record security mode=1 and the SITEID IS NULL.
This function is optimized for use from the Blackbaud.AppFx.Security.Catalog.SiteRecordSecurityService
class which implements the RecordSecurity service for Site record security.
As such, it assumes that a check for DENY occurs outside this function
and also assumes that a check for if the user is ISSYSADMIN occurs outside
this function.
*/
begin
--If user granted permission to the feature in a role with no ringfence then
--the user has permission regardless of the record in question.
if exists
(
select
1
from
dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_FORM as SECURITYVIEW
where
SECURITYVIEW.APPUSERID = @APPUSERID and
SECURITYVIEW.DATAFORMINSTANCECATALOGID = @DATFORMINSTANCEID and
SECURITYVIEW.GRANTORDENY = 1 and
(
(SECURITYVIEW.SITESECURITYMODE = 0)
or
(
exists ( select 1
from dbo.SITEPERMISSION
where
SITEID = @SITEID and
APPUSERID = SECURITYVIEW.APPUSERID and
SYSTEMROLEID = SECURITYVIEW.SYSTEMROLEID
) and
(SECURITYVIEW.SITESECURITYMODE = 2 or SECURITYVIEW.SITESECURITYMODE = 3)
)
or
(SECURITYVIEW.SITESECURITYMODE = 1 and @SITEID is null)
)
)
return 1;
return 0;
end