#!/usr/bin/python3
#
# Univention RADIUS 802.1X
#  authentication test program
#
# SPDX-FileCopyrightText: 2012-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

import argparse
import sys

from univention.radius import get_NetworkAccess
from univention.radius.networkaccess import NetworkAccessError


def main() -> int:
    parser = argparse.ArgumentParser(description='Check network access for a user and/or MAC address')
    parser.add_argument('--username', required=True)
    parser.add_argument('--station-id')
    options = parser.parse_args()
    NetworkAccess = get_NetworkAccess()
    networkAccess = NetworkAccess(options.username, options.station_id, loglevel=4)
    exitCode = 0
    try:
        networkAccess.getNTPasswordHash()
    except NetworkAccessError as exc:
        networkAccess.logger.debug(exc.msg)
        exitCode = 1
        networkAccess.logger.debug('--- Thus access is DENIED.')
    else:
        networkAccess.logger.debug('--- Thus access is ALLOWED.')
    return exitCode


if __name__ == "__main__":
    sys.exit(main())
