#!/usr/bin/python3
# SPDX-FileCopyrightText: 2012-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

"""This tool removes the sambaLMPassword value from all accounts"""

import sys
from argparse import ArgumentParser

import univention.admin
import univention.admin.uldap


if __name__ == '__main__':
    ACTIONS = ('test', 'remove')

    parser = ArgumentParser(description=__doc__)
    parser.add_argument('action', choices=ACTIONS, nargs='?')

    options = parser.parse_args()

    # check argument (action)
    if not options.action:
        print('', file=sys.stderr)
        print('warning: no action given. default is test', file=sys.stderr)
        print('', file=sys.stderr)
        options.action = ['test']

    action = options.action

    configRegistry = univention.config_registry.ConfigRegistry()
    configRegistry.load()

    lo, position = univention.admin.uldap.getAdminConnection()

    res = lo.search('sambaLMPassword=*', attr=['sambaLMPassword'])

    if len(res) < 1:
        print('No account with sambaLMPassword was found.')
    else:
        for ob in res:
            print('Remove sambaLMPassword (%s) for %s' % (ob[1].get('sambaLMPassword', [])[0].decode('utf-8'), ob[0]), end=' ')
            if action == 'remove':
                lo.modify(ob[0], [('sambaLMPassword', ob[1].get('sambaLMPassword', []), b'')])
                print('done')
            else:
                print('(testing mode)')
