USP_SYSTEMROLE_COPYDATAFORMPERMISSIONSTOSEARCHLIST

Copies permissions for a given DataForm instance to a Search List.

Parameters

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

Definition

Copy


            CREATE procedure dbo.USP_SYSTEMROLE_COPYDATAFORMPERMISSIONSTOSEARCHLIST
            (
            @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_SEARCHLIST
                    (
                    SYSTEMROLEID,
                    SEARCHLISTCATALOGID,
                    GRANTORDENY,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                    )
                    select
                    SYSTEMROLEID,
                    @NEWFEATUREID,
                    GRANTORDENY,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                    from dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
                    where DATAFORMINSTANCECATALOGID = @PERMISSIONEDFEATUREID
                      and not exists(select top 1 SUB.ID from dbo.SYSTEMROLEPERM_SEARCHLIST SUB
                        where SUB.SEARCHLISTCATALOGID =@NEWFEATUREID  and SUB.SYSTEMROLEID = SYSTEMROLEPERM_DATAFORMINSTANCE.SYSTEMROLEID)
                      and exists(select top 1 CAT.ID from SEARCHLISTCATALOG CAT where CAT.ID = @NEWFEATUREID );

            end try

            begin catch
            exec dbo.USP_RAISE_ERROR;
            end catch