diff options
author | Peter Palfrader <peter@palfrader.org> | 2006-10-18 11:33:32 +0000 |
---|---|---|
committer | weasel <weasel@bc3d92e2-beff-0310-a7cd-cc87d7ac0ede> | 2006-10-18 11:33:32 +0000 |
commit | c88bc35f1c88d9fbbba6706a4abaad24a1868c98 (patch) | |
tree | 487c31421b2f92e6e76bcf946500187b6b014e91 /bin/ldap2mail |
Add hosting ldap
git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@190 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede
Diffstat (limited to 'bin/ldap2mail')
-rwxr-xr-x | bin/ldap2mail | 29 |
1 files changed, 29 insertions, 0 deletions
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 <peter@palfrader.org> +# +# 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 +} |