UFN_SECURITY_APPUSER_GRANTED_WEBDASHBOARDPAGEEDIT

Determines whether a given user has rights to edit a web dashboard page.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@WEBDASHBOARDFOLDERPATH nvarchar(1000) IN
@WEBDASHBOARDPAGENAME nvarchar(200) IN

Definition

Copy


create function dbo.UFN_SECURITY_APPUSER_GRANTED_WEBDASHBOARDPAGEEDIT(@APPUSERID uniqueidentifier,
    @WEBDASHBOARDFOLDERPATH nvarchar(1000),
    @WEBDASHBOARDPAGENAME nvarchar(200))
returns bit
as
begin

    declare @grant bit;
    set @grant = 0;

    select @grant = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;

    if @grant = 0
    begin
        select @grant = 1 from dbo.WEBDASHBOARDPAGECATALOG where [NAME] = @WEBDASHBOARDPAGENAME and OWNERID = @APPUSERID;
    end;

    if @grant = 0
    begin
        if exists
        (select SYSTEMROLEWEBDASHBOARDPAGE.WEBDASHBOARDPAGEID 
            from dbo.SYSTEMROLEWEBDASHBOARDPAGE
                inner join dbo.SYSTEMROLEAPPUSER AS SRAU on SYSTEMROLEWEBDASHBOARDPAGE.SYSTEMROLEID = SRAU.SYSTEMROLEID
                inner join dbo.WEBDASHBOARDPAGECATALOG on SYSTEMROLEWEBDASHBOARDPAGE.WEBDASHBOARDPAGEID = WEBDASHBOARDPAGECATALOG.ID
                left join dbo.WEBDASHBOARDFOLDER on WEBDASHBOARDPAGECATALOG.WEBDASHBOARDFOLDERID = WEBDASHBOARDFOLDER.ID
            where WEBDASHBOARDPAGECATALOG.NAME = @WEBDASHBOARDPAGENAME 
                and ((@WEBDASHBOARDFOLDERPATH = '' and WEBDASHBOARDPAGECATALOG.WEBDASHBOARDFOLDERID is null) or WEBDASHBOARDFOLDER.PATH = @WEBDASHBOARDFOLDERPATH)
                and SRAU.APPUSERID = @APPUSERID and SYSTEMROLEWEBDASHBOARDPAGE.GRANTORDENYEDIT = 1)
        begin
            set @grant = 1;
        end
        else
        begin
            set @grant = 0;
        end;
    end;

    return @grant;

end;