UFN_SECURITY_ADHOCQUERY_USERCANCHANGEALLOWOTHERSTOMODIFY
Checks to see if a user can change the 'Allow others to modify' flag on an existing ad-hoc query.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@OTHERSCANMODIFY | bit | IN | |
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_SECURITY_ADHOCQUERY_USERCANCHANGEALLOWOTHERSTOMODIFY(@ID uniqueidentifier,
@OTHERSCANMODIFY bit,
@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 to set the flag. */
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
if @EXISTINGOTHERSCANMODIFY = 0 or @EXISTINGOTHERSCANMODIFY <> @OTHERSCANMODIFY
begin
set @RETURNVALUE = 0;
end
else
begin
set @RETURNVALUE = 1;
end;
end
else
begin
set @RETURNVALUE = 1;
end;
end;
return @RETURNVALUE;
end;