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;