#!/bin/sh

set -eu

if [ -e /run/puavo/nbd-server ]; then
  # NetworkManager not used in fatclients
  exit 0
fi

# Clean up the network connections made in login screen
# (made by "Debian-gdm"-user).  Normal users are allowed to have their
# own networks and we want that information to persist.

bad_user_list="${1:-Debian-gdm guest}"

find /etc/NetworkManager/system-connections/ -mindepth 1 -maxdepth 1 -type f \
  ! -name 'puavo-*' -print0 \
    | xargs -0 --no-run-if-empty awk -v bad_user_list="$bad_user_list" '
        BEGIN { FS = "="; ORS = "\0"; split(bad_user_list, bad_users, " "); }
        $1 == "permissions" {
          split($2, userlist, /;/)
          for (u in userlist) {
            for (b in bad_users) {
              if (userlist[u] == ("user:" bad_users[b] ":")) {
                print FILENAME
              }
            }
          }
        }
      ' \
    | xargs -0 rm -f

# If guest was explicitly set, we are running as part of
# guest user cleanup and should also clear NetworkManager state.
if [ "$bad_user_list" = 'guest' ]; then
  nmcli connection reload
fi
