UFN_SECURITY_ADHOCQUERY_USERCANSAVEFORQUERYVIEWS
Returns a flag indicating the user has rights to all query views in a given ad-hoc query based on its current definition and the definition to which it is being updated.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@NEWQUERYDEFINITIONXML | xml | IN | |
@APPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_SECURITY_ADHOCQUERY_USERCANSAVEFORQUERYVIEWS(@ID uniqueidentifier,
@NEWQUERYDEFINITIONXML xml,
@APPUSERID uniqueidentifier)
returns bit
as
begin
declare @RETURNVALUE bit;
declare @EXISTINGID uniqueidentifier;
declare @EXISTINGQUERYDEFINITIONXML xml;
select @EXISTINGID = ADHOCQUERY.ID,
@EXISTINGQUERYDEFINITIONXML = ADHOCQUERY.QUERYDEFINITIONXML
from dbo.ADHOCQUERY
where ADHOCQUERY.ID = @ID;
/* Check rights to query views used in the ad-hoc query definition passed in */
set @RETURNVALUE = dbo.UFN_ADHOCQUERY_USERHASRIGHTSTOQUERYVIEWS(@APPUSERID, @NEWQUERYDEFINITIONXML);
if (@RETURNVALUE = 1) and (not @EXISTINGID is null) and (convert(nvarchar(max), @NEWQUERYDEFINITIONXML) != convert(nvarchar(max),@EXISTINGQUERYDEFINITIONXML))
begin
declare @ISSYSADMIN bit;
select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;
/* Check rights to query views used in the ad-hoc query definition that already exists to ensure he's not removing fields from query views to which
he doesn't have rights */
set @RETURNVALUE = dbo.UFN_ADHOCQUERY_USERHASRIGHTSTOQUERYVIEWS(@APPUSERID, @EXISTINGQUERYDEFINITIONXML)
end;
return @RETURNVALUE;
end;