USP_RECORDOPERATION_THIRDPARTYAUTH_APPUSER_MARKACTIVE

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_RECORDOPERATION_THIRDPARTYAUTH_APPUSER_MARKACTIVE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as 
    set nocount on;

    declare @INACTIVE bit = 0;

    select
        @INACTIVE = case when isnull(APPUSERTHIRDPARTYAUTH.INACTIVE, 0) = 0 and APPUSER.ISACTIVE = 1 then 0 else 1 end
    from dbo.APPUSER
    left outer join dbo.APPUSERTHIRDPARTYAUTH
        on APPUSER.ID = APPUSERTHIRDPARTYAUTH.ID
    where APPUSER.ID = @ID;

    if @INACTIVE = 0
        raiserror('BBERR_APPUSERALREADYACTIVE', 13, 1);

    declare @CURRENTDATE datetime = getdate();

    declare @PROXYOWNERID uniqueidentifier;
    declare @ISPROXYUSER bit;

    select @ISPROXYUSER = dbo.UFN_APPUSER_ISPROXYUSER(@ID);

    if @ISPROXYUSER = 1
       begin
             select  @PROXYOWNERID = PROXYOWNERID from dbo.APPUSER where ID = @ID;

              --if appuser is inactive in any of the tables below then the proxy user can't be marked active again

                if exists (select ID from dbo.APPUSER where ID = @PROXYOWNERID and ISACTIVE = 0) or
                   exists (select ID from dbo.APPUSERTHIRDPARTYAUTH where ID = @PROXYOWNERID and INACTIVE = 1)
                   begin
                        raiserror('ERR_PROXYOWNER_INACTIVE', 13, 1);
                   end
                else
                   begin 
                          exec USP_RECORDOPERATION_APPUSER_APPUSERTHIRDPARTYAUTH_MARKACTIVE @ID;
                   end
       end
    else
       begin
              exec USP_RECORDOPERATION_APPUSER_APPUSERTHIRDPARTYAUTH_MARKACTIVE @ID;
       end


    return 0;