#!/bin/bash

# Env vars set by caller:
# provider     %d
# srvrgrp      %s
# user         %s
# remoteIp     %s
# port         %s
# authorInfo   %s
# role         %d
# stats        %d
# service      %s
# sessionId    %s

args=

# Call program to send ephemeral user data to identity-service
if [ $stats = 3 ]; then
   if [ $provider != 2 ]; then
      /usr/bin/ephemeralUser -a -r "$role" "$user"
   fi

   if [[ "$sessionId" ]]; then
       args="-i $sessionId"
   fi
   /usr/bin/aaaSessionClient $args "$provider" "$user" "$remoteIp" "$port" "$authorInfo" "$stats" "$service" "$PPID"
fi
# Call program to send authentication statistics to identity-service
/usr/bin/aaaAuthenStatClient "$srvrgrp" "$stats" "$user" "$remoteIp" "$port" "$service"

# Debugging:
: <<'END'
printf "\n____Debug:____\n"
if ! [ -z "$provider" ]
then
   printf "Provider: $provider\n"
else
   printf "Env:provider not set\n"
fi

if ! [ -z "$srvrgrp" ]
then
   printf "Server Group: $srvrgrp\n"
else
   printf "Env:srvrgrp not set\n"
fi

if ! [ -z "$user" ]
then
   printf "User: $user\n"
else
   printf "Env:user not set\n"
fi

if ! [ -z "$remoteIp" ]
then
   printf "Server: $remoteIp\n"
else
   printf "Env:remoteIp not set\n"
fi

if ! [ -z "$port" ]
then
   printf "Port: $port\n"
else
   printf "Env:port not set\n"
fi

if ! [ -z "$authorInfo" ]
then
   printf "AuthorInfo: $authorInfo\n"
else
   printf "Env:authorInfo not set\n"
fi

if ! [ -z "$role" ]
then
   printf "Role: $role\n"
else
   printf "Env:role not set\n"
fi

if ! [ -z "$stats" ]
then
   printf "Stats: $stats\n"
else
   printf "Env:stats not set\n"
fi

if ! [ -z "$service" ]
then
   printf "Service: $service\n"
else
   printf "Env:service not set\n"
fi

if ! [ -z "$sessionId" ]
then
   printf "SessionId: $sessionId\n\n"
else
   printf "Env:sessionId not set\n\n"
fi

END
