USP_MKTSEGMENTLIST_ADDTOSYSTEMROLEPERM_QUERYVIEW

Grants permission to the query view spec created by importing a list.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


create procedure dbo.[USP_MKTSEGMENTLIST_ADDTOSYSTEMROLEPERM_QUERYVIEW]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @RECORDSOURCEID uniqueidentifier;
  declare @CURRENTDATE datetime;

  begin try
    if not exists(select 1 from dbo.[SYSTEMROLEPERM_QUERYVIEW] inner join dbo.[SYSTEMROLE] on [SYSTEMROLEPERM_QUERYVIEW].[SYSTEMROLEID] = [SYSTEMROLE].[ID] where [SYSTEMROLEID] = [SYSTEMROLE].[ID] and [QUERYVIEWCATALOGID] = @ID)
      begin
        if @CHANGEAGENTID is null
          exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

        select
          @RECORDSOURCEID = [MKTLIST].[RECORDSOURCEID]
        from dbo.[MKTSEGMENTLIST]
        inner join dbo.[MKTLIST] on [MKTLIST].[ID] = [MKTSEGMENTLIST].[LISTID]
        where [MKTSEGMENTLIST].[QUERYVIEWCATALOGID] = @ID;

        set @CURRENTDATE = getdate();

        insert into dbo.[SYSTEMROLEPERM_QUERYVIEW] (
          [SYSTEMROLEID],
          [QUERYVIEWCATALOGID],
          [GRANTORDENY],
          [ADDEDBYID],
          [CHANGEDBYID],
          [DATEADDED],
          [DATECHANGED]
        )
        select distinct
          [SYSTEMROLE].[ID],
          @ID,
          1,
          @CHANGEAGENTID,
          @CHANGEAGENTID,
          @CURRENTDATE,
          @CURRENTDATE
        from dbo.[SYSTEMROLE]
        inner join dbo.[SYSTEMROLEPERM_QUERYVIEW] on [SYSTEMROLE].[ID] = [SYSTEMROLEPERM_QUERYVIEW].[SYSTEMROLEID]
        inner join dbo.[QUERYVIEWCATALOG] on [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = [QUERYVIEWCATALOG].[ID]
        inner join dbo.[RECORDTYPE] on [QUERYVIEWCATALOG].[RECORDTYPEID] = [RECORDTYPE].[ID]
        where [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] = @RECORDSOURCEID
        and [SYSTEMROLEPERM_QUERYVIEW].[QUERYVIEWCATALOGID] <> @ID;
      end
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;