#!/usr/bin/env python
# CCS Computer Science
#
# Douglas Thrift
#
# $Id$

from __future__ import with_statement
import admin
import ldap

try:
	from _users import users
except ImportError:
	users = set()

def user(user):
	if user in users:
		return True

	connection = admin.ldap_connection()

	try:
		return bool(connection.search_s(admin.PEOPLE, ldap.SCOPE_ONELEVEL, '(uid=%s)' % user, ('uid',), 1))
	finally:
		connection.unbind_s()

if __name__ == '__main__':
	for file in ('/etc/passwd', '/etc/group'):
		with open(file, 'rb') as file:
			for line in file:
				if line.startswith('#'):
					continue

				users.update(line.split(':', 1)[:1])

	with open('_users.py', 'wb') as file:
		file.write('users = set((\n')

		for user in sorted(users):
			file.write('\t%s,\n' % repr(user))

		file.write('))\n')
