import univention.uldap
import univention.config_registry
import ldap
cr = univention.config_registry.ConfigRegistry()
cr.load()
try:
	lo = univention.uldap.getAdminConnection()
except Exception, e:
	print "failed to get ldap connection: %s" % e

results = lo.search(base=cr.get("ldap/base"), attr=["uniqueMember"], filter="(&(objectClass=posixGroup)(uniqueMember=*))")
for result in results:
	dn = result[0]
	uniqueMember = result[1].get("uniqueMember", [""])
	if dn and uniqueMember:
		print dn
		print uniqueMember
		try:
			# delete uniqueMember
			lo.modify(dn, [("uniqueMember", uniqueMember, [])])
			# add uniqueMember
			lo.modify(dn, [("uniqueMember", [], uniqueMember)])
		except Exception, e:
			print "   modifing %s failed: %s" % (dn, e)

