UFN_PROXYUSER_CHECKROLESANDPERMISSIONS
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@SITES | xml | IN | |
@SYSTEMROLEID | uniqueidentifier | IN | |
@SECURITYMODECODE | tinyint | IN | |
@BRANCHSITEID | uniqueidentifier | IN | |
@CONSTITUENTSECURITYMODECODE | tinyint | IN | |
@CONSTITUENTSECURITYGROUPS | xml | IN |
Definition
Copy
CREATE function dbo.UFN_PROXYUSER_CHECKROLESANDPERMISSIONS(@APPUSERID uniqueidentifier,@SITES xml,
@SYSTEMROLEID uniqueidentifier,@SECURITYMODECODE tinyint, @BRANCHSITEID uniqueidentifier, @CONSTITUENTSECURITYMODECODE tinyint, @CONSTITUENTSECURITYGROUPS xml)
returns bit
with execute as caller
as begin
declare @ISPROXYUSERHASPERMISSION bit = 0;
declare @PROXYOWNERID uniqueidentifier = null;
declare @PROXYUSERROLES nvarchar(max) = null;
declare @PROXYUSERROLESCOUNT int = 0;
select @PROXYOWNERID = PROXYOWNERID from dbo.APPUSER where ID = @APPUSERID;
--Check if Proxy owner has same role
-- If systemrole does not exist for proxy owner or site security or constituent security settings doesn't matched
-- below if condition or site security/constituent security function returns 0. if any one function returns then
-- we will stop user by saving the record.
if((select count(1) from SYSTEMROLEAPPUSER where SYSTEMROLEID = @SYSTEMROLEID and APPUSERID = @PROXYOWNERID)=0)
return 0;
--Check Site security
If dbo.UFN_PROXYUSER_CHECKSITESECURITYRIGHTS(@APPUSERID, @SITES,@SYSTEMROLEID, @SECURITYMODECODE, @BRANCHSITEID, @PROXYOWNERID) = 0
return 0;
--Check Constituent Security
If dbo.UFN_PROXYUSER_CHECKCONSTITUENTSECURITYRIGHTS(@APPUSERID, @SYSTEMROLEID, @CONSTITUENTSECURITYMODECODE ,@CONSTITUENTSECURITYGROUPS, @PROXYOWNERID) = 0
return 0;
return 1;
end