From c88bc35f1c88d9fbbba6706a4abaad24a1868c98 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Wed, 18 Oct 2006 11:33:32 +0000 Subject: Add hosting ldap git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@190 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede --- bin/ldap2mail | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 bin/ldap2mail (limited to 'bin/ldap2mail') diff --git a/bin/ldap2mail b/bin/ldap2mail new file mode 100755 index 0000000..71eddd9 --- /dev/null +++ b/bin/ldap2mail @@ -0,0 +1,29 @@ +#!/usr/bin/ruby + +# +# Copyright (c) 2004 Peter Palfrader +# +# All rights reserved. +# + +require "ldap" +require "getoptlong" +require "myldap" +require "yaml" + + +@config = YAML::load( File.open( '/etc/noreply/config' ) ) +@basedir = @config['module']['mail']['basedir'] + + +ldap = MyLDAP.new(@config, "ldap2mail") +clients = ldap.conn.search2(@config['basedn'], LDAP::LDAP_SCOPE_SUBTREE, 'objectclass=tnClient') + +clients.each { |c| + if not File.exists?(@basedir + "/" + c['o'][0]) + Dir.mkdir(@basedir + "/" + c['o'][0], 02700 ) + File.chown(c['uidNumber'][0].to_i, c['gidNumber'][0].to_i, @basedir + "/" + c['o'][0]) + elsif not File.stat( @basedir + "/" + c['o'][0]).directory? + STDERR.puts("Warning: #{@basedir}/#{c['o'][0]} is not a directory."); + end +} -- cgit v1.2.3