USP_SYSTEMROLE_COPYDASHBOARDPERMISSIONS

Copies permissions from one dashboard to another

Parameters

Parameter Parameter Type Mode Description
@NEWFEATUREID uniqueidentifier IN
@PERMISSIONEDFEATUREID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_SYSTEMROLE_COPYDASHBOARDPERMISSIONS
            (
                @NEWFEATUREID uniqueidentifier,
                @PERMISSIONEDFEATUREID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier
            )
            as
            --Used for revisions

            set nocount on;

            begin try

                declare @CURRENTDATE datetime;

                set @CURRENTDATE = getdate();

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                insert into dbo.SYSTEMROLEPERM_DASHBOARD
                (
                    SYSTEMROLEID, 
                    DASHBOARDCATALOGID, 
                    GRANTORDENY, 
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED
                )
                select 
                    SYSTEMROLEID, 
                    @NEWFEATUREID
                    GRANTORDENY, 
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CURRENTDATE
                    @CURRENTDATE
                from dbo.SYSTEMROLEPERM_DASHBOARD
                where DASHBOARDCATALOGID = @PERMISSIONEDFEATUREID
                        and not exists(select top 1 SUB.ID from dbo.SYSTEMROLEPERM_DASHBOARD SUB
                                    where SUB.DASHBOARDCATALOGID = @NEWFEATUREID and SUB.SYSTEMROLEID = SYSTEMROLEPERM_DASHBOARD.SYSTEMROLEID)
                        and exists(select top 1 CAT.ID from DASHBOARDCATALOG CAT where CAT.ID = @NEWFEATUREID);

            end try

            begin catch
                exec dbo.USP_RAISE_ERROR;
            end catch