UFN_SECURITY_ADHOCQUERY_USERCANMODIFY
Returns a flag indicating whether the given user can modify the given ad-hoc query based on the "Allow others to modify" value for that query.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_SECURITY_ADHOCQUERY_USERCANMODIFY(@ID uniqueidentifier, @APPUSERID uniqueidentifier)
returns bit
as
begin
declare @RETURNVALUE bit;
declare @EXISTINGID uniqueidentifier;
declare @EXISTINGOWNERID uniqueidentifier;
declare @EXISTINGOTHERSCANMODIFY bit;
select @EXISTINGID = ADHOCQUERY.ID,
@EXISTINGOWNERID = ADHOCQUERY.OWNERID,
@EXISTINGOTHERSCANMODIFY = ADHOCQUERY.OTHERSCANMODIFY
from dbo.ADHOCQUERY
inner join dbo.APPUSER on ADHOCQUERY.OWNERID = APPUSER.ID
where ADHOCQUERY.ID = @ID;
if @EXISTINGID is null
begin
/* Ad-hoc query doesn't yet exist; user has rights. */
set @RETURNVALUE = 1;
end
else
begin
declare @ISSYSADMIN bit;
select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;
if @EXISTINGOWNERID <> @APPUSERID and @ISSYSADMIN = 0
begin
set @RETURNVALUE = @EXISTINGOTHERSCANMODIFY;
end
else
begin
set @RETURNVALUE = 1;
end;
end;
return @RETURNVALUE;
end;