X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-mailgate;h=7a70f662b2062b7d850f9aa11fb3131df3380511;hb=ae1e5a947fad4c2a450281a1a1d6ec3ca768101b;hp=6e94c75fadba29cc2f2826af9499871902cdfda0;hpb=2525bf73603cb6487cfcea096e2dc347ad360394;p=mirror%2Fuserdir-ldap.git diff --git a/ud-mailgate b/ud-mailgate index 6e94c75..7a70f66 100755 --- a/ud-mailgate +++ b/ud-mailgate @@ -27,6 +27,7 @@ ArbChanges = {"c": "..", "loginshell": ".*", "emailforward": "^([^<>@]+@.+)?$", "ircnick": ".*", + "icquin": "^[0-9]*$", "onvacation": ".*", "labeledurl": ".*"}; @@ -42,6 +43,7 @@ DelItems = {"c": None, "labeledurl": None, "latitude": None, "longitude": None, + "icquin": None, "sshrsaauthkey": None}; # Decode a GPS location from some common forms @@ -176,7 +178,8 @@ def DoSSH(Str,Attrs): def DoDNS(Str,Attrs,DnRecord): if re.match('^[\w-]+\s+in\s+a\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$',\ Str,re.IGNORECASE) == None and \ - re.match("^[\w-]+\s+in\s+cname\s+[\w.\-]+\.$",Str,re.IGNORECASE) == None: + re.match("^[\w-]+\s+in\s+cname\s+[\w.\-]+\.$",Str,re.IGNORECASE) == None and \ + re.match("^[\w-]+\s+in\s+mx\s+\d{1,3}\s+[\w.\-]+\.$",Str,re.IGNORECASE) == None: return None; # Check if the name is already taken @@ -308,7 +311,7 @@ def HandleChPass(Reply,DnRecord,Key): # Check for a locked account Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid="+GetAttr(DnRecord,"uid")); - if (string.find(GetAttr(Attrs[0],"userPassword"),"*LK*") != -1): + if (string.find(GetAttr(Attrs[0],"userpassword"),"*LK*") != -1): raise Error, "This account is locked"; # Modify the password @@ -395,7 +398,7 @@ try: if Sender == None: raise Error, "Unable to determine the sender's address"; - if (string.find(GetAttr(Attrs[0],"userPassword"),"*LK*") != -1): + if (string.find(GetAttr(Attrs[0],"userpassword"),"*LK*") != -1): raise Error, "This account is locked"; # Formulate a reply