USP_APPUSER_ADDCUSTOMAPPUSER

Adds a custom authenticated application user to the system.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CUSTOMNAME nvarchar(255) IN
@DISPLAYNAME nvarchar(255) IN
@CHANGEAGENTID uniqueidentifier IN
@SITEID uniqueidentifier IN
@CURRENCYSETID uniqueidentifier IN
@ISSYSADMIN bit IN
@ISSYSTEM bit IN

Definition

Copy


CREATE procedure dbo.USP_APPUSER_ADDCUSTOMAPPUSER 
(
  @ID uniqueidentifier = null output,
  @CUSTOMNAME nvarchar(255),
  @DISPLAYNAME nvarchar(255),
  @CHANGEAGENTID uniqueidentifier = null,
  @SITEID    uniqueidentifier = null,
  @CURRENCYSETID uniqueidentifier = null,
  @ISSYSADMIN bit = 0,
  @ISSYSTEM bit = 0
)
as
begin
  set nocount on;

  if @ID is null
    set @ID = newid();

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

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

  if @DISPLAYNAME is null
    set @DISPLAYNAME = @CUSTOMNAME;

  if @ISSYSADMIN is null
    set @ISSYSADMIN = 0;

  if @ISSYSTEM is null
    set @ISSYSTEM = 0;

  begin try
    if exists(select ID from dbo.APPUSER where CUSTOM_AUTHENTICATION_USERID = @CUSTOMNAME
      begin
        /*Modeling after other application user add and edit forms*/
        select @ID = ID from dbo.APPUSER where CUSTOM_AUTHENTICATION_USERID = @CUSTOMNAME;

        /*update existing records with current info*/
        update DBO.APPUSER set 
          SITEID = @SITEID
          DISPLAYNAME = @DISPLAYNAME
          ISSYSADMIN = @ISSYSADMIN,
          ISSYSTEM = @ISSYSTEM,
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
        where ID = @ID;
      end
    else
      begin
        insert into dbo.APPUSER
          (ID, CUSTOM_AUTHENTICATION_USERID, [DISPLAYNAME], USERSID, SITEID, ISSYSADMIN, ISSYSTEM, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
          (@ID, @CUSTOMNAME, @DISPLAYNAME, SUSER_SID('NT AUTHORITY\ANONYMOUS LOGON'), @SITEID, @ISSYSADMIN, @ISSYSTEM, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        if @CURRENCYSETID is not null
          insert into dbo.APPUSERCURRENCYSET
            (APPUSERID, CURRENCYSETID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
          values
            (@ID, @CURRENCYSETID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
      end

    return 0;
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch
end