-userdir-ldap (0.3.XX) unstable; urgency=low
+userdir-ldap (0.3.51) unstable; urgency=low
* Update template/welcome-message-800 to match the actual template used
on db.debian.org.
* Extend that support so that subgroups work on a per host basis too,
so that for instance the debbugs group can be in group
maillog@rietz.debian.org.
+ * Add hostnames from the host purpose field to the ssh_known_hosts
+ file [Thomas Viehmann].
- -- Peter Palfrader <weasel@debian.org> Sun, 23 Nov 2008 21:06:53 +0100
+ -- Peter Palfrader <weasel@debian.org> Sun, 23 Nov 2008 21:22:58 +0100
userdir-ldap (0.3.50) unstable; urgency=low
# Copyright (c) 2008 Andreas Barth <aba@not.so.argh.org>
# Copyright (c) 2008 Mark Hymers <mhy@debian.org>
# Copyright (c) 2008 Luk Claes <luk@debian.org>
+# Copyright (c) 2008 Thomas Viehmann <tv@beamnet.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
EmailCheck = re.compile("^([^ <>@]+@[^ ,<>@]+)?$");
BSMTPCheck = re.compile(".*mx 0 (gluck)\.debian\.org\..*",re.DOTALL);
+PurposeHostField = re.compile(r"\[\[([\*\-]?[a-z0-9.\-]*)(?:\|.*)?\]\]")
DNSZone = ".debian.net"
Keyrings = ConfModule.sync_keyrings.split(":")
continue;
Host = GetAttr(x,"hostname");
HostNames = [ Host ]
- SHost = Host.find(".")
- if SHost != None: HostNames += [Host[0:SHost]]
+ if Host.endswith(HostDomain):
+ HostNames.append(Host[:-(len(HostDomain)+1)])
+
+ #<weasel> [[]] makes http links
+ #<weasel> but integrating it somehow into the purpose line might be a good idea
+ #<weasel> maybe [[*fooobar]] things would be a link but not added to the ssh key list,
+ # and [[-..]] or something would be just an ssh entry but no link
+ # in the purpose field [[host|some other text]] (where some other text is optional)
+ # makes a hyperlink on the web thing. we now also add these hosts to the ssh known_hosts
+ # file. But so that we don't have to add everything we link we can add an asterisk
+ # and say [[*... to ignore it. In order to be able to add stuff to ssh without
+ # http linking it we also support [[-hostname]] entries.
+ for i in x[1].get("purpose",[]):
+ m = PurposeHostField.match(i)
+ if m:
+ m = m.group(1)
+ # we ignore [[*..]] entries
+ if m.startswith('*'):
+ continue;
+ if m.startswith('-'):
+ m = m[1:]
+ if m:
+ HostNames.append(m)
+ if m.endswith(HostDomain):
+ HostNames.append(m[:-(len(HostDomain)+1)])
for I in x[1]["sshRSAHostKey"]:
if mode and mode == 'authorized_keys':
"mailWhitelist", "sudoPassword"]);
# Fetch all the hosts
HostAttrs = l.search_s(HostBaseDn,ldap.SCOPE_ONELEVEL,"sshRSAHostKey=*",\
- ["hostname","sshRSAHostKey"]);
+ ["hostname","sshRSAHostKey","purpose"]);
# Open the control file
if len(sys.argv) == 1: