USP_DATAFORMTEMPLATE_EDIT_APPLICATIONUSERINACTIVE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@APPUSERINACTIVEREASONCODEID uniqueidentifier IN
@DETAILS nvarchar(300) IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_APPLICATIONUSERINACTIVE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @APPUSERINACTIVEREASONCODEID uniqueidentifier,
    @DETAILS nvarchar(300)
)
as
    set nocount on;

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

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    begin try
      update dbo.APPUSER set
          ISACTIVE = 0,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
      where ID = @ID;

      update dbo.APPUSERINACTIVEDETAIL set
          APPUSERINACTIVEREASONCODEID = @APPUSERINACTIVEREASONCODEID,
          DETAILS = @DETAILS,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
      where ID = @ID;

      if @@ROWCOUNT = 0
          insert into dbo.APPUSERINACTIVEDETAIL (ID, APPUSERINACTIVEREASONCODEID, DETAILS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
          values (@ID, @APPUSERINACTIVEREASONCODEID, @DETAILS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

      --USP executed to revoke PATs for inactive proxy user

      exec dbo.USP_PROXYUSER_MARKINACTIVE_REVOKEPERSONALACCESSTOKEN @ID, @CHANGEAGENTID, @CURRENTDATE, @DETAILS;

      declare @CURRENTDATETIMEOFFSET datetimeoffset = [dbo].[UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET](getutcdate(), 1);

      if exists (select 1 from [dbo].[APPUSERTHIRDPARTYAUTH] where ID = @ID)
        update [dbo].[APPUSERTHIRDPARTYAUTH] set
          [INACTIVE] = 1,
          [INACTIVEDATE] = @CURRENTDATETIMEOFFSET,
          [INACTIVEDETAILS] = @DETAILS,
          [INVITATIONID] = null,
          [CHANGEDBYID] = @CHANGEAGENTID,
          [DATECHANGED] = @CURRENTDATE
        where [ID] = @ID;
      else
        insert into [dbo].[APPUSERTHIRDPARTYAUTH]
          ([ID], [INACTIVE], [INACTIVEDATE], [INACTIVEDETAILS], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED])
        values
          (@ID, 1, @CURRENTDATETIMEOFFSET, @DETAILS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

      declare @ISPROXYOWNER bit = 0;
      exec @ISPROXYOWNER = dbo.UFN_APPUSER_HASPROXYUSER @ID;

      if @ISPROXYOWNER = 1
        begin
          exec dbo.USP_APPUSER_WITHPROXY_UPDATEPROXYINACTIVEREVOKEPAT @ID, @APPUSERINACTIVEREASONCODEID, @DETAILS, @CHANGEAGENTID, @CURRENTDATE;
        end

      if exists (select 1 from dbo.CONDITIONSETTING where NAME = 'SkyApi')
      begin
        declare @APPUSERCLAIMSLINKID uniqueidentifier = null;
        select @APPUSERCLAIMSLINKID = APPUSERCLAIMSLINK.ID
        from dbo.APPUSERCLAIMSLINK
        where APPUSERCLAIMSLINK.APPUSERID = @ID;

        if (@APPUSERCLAIMSLINKID is not null)
        begin
          exec dbo.USP_APPUSERCLAIMSLINK_DELETEBYID_WITHCHANGEAGENTID @APPUSERCLAIMSLINKID, @CHANGEAGENTID;
        end
      end
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;