UFN_CONSTITUENT_CANAPPUSERMODIFY
Determines whether a user has permission to modify a constituent.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_CONSTITUENT_CANAPPUSERMODIFY
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier
)
returns bit
with
execute as caller
as
begin
declare @CANAPPUSERMODIFY bit
if @CONSTITUENTID is null
set @CANAPPUSERMODIFY = 1
else
begin
declare @ISADMIN bit
declare @APPUSER_IN_NONRACROLE bit
declare @APPUSER_IN_NOSECGROUPROLE bit
declare @APPUSER_IN_NONSITEROLE bit
declare @APPUSER_IN_NOSITEROLE bit
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)
if @ISADMIN = 0
begin
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID)
if @APPUSER_IN_NONRACROLE = 0
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID)
set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID)
if @APPUSER_IN_NONSITEROLE = 0
set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID)
end
if (@ISADMIN = 1 or
(
(@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, @CONSTITUENTID, @APPUSER_IN_NOSECGROUPROLE) = 1)
and
(@APPUSER_IN_NONSITEROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, @CONSTITUENTID, @APPUSER_IN_NOSITEROLE) = 1)
))
set @CANAPPUSERMODIFY = 1
else
set @CANAPPUSERMODIFY = 0
end
return @CANAPPUSERMODIFY
end