"latitude": ["Latitude",12],
"longitude": ["Longitude",13],
"comment": ["Comment",114],
- "userpassword": ["Crypted Password",115]};
+ "userpassword": ["Crypted Password",115],
+ "dnszoneentry": ["d.net Entry",116]};
AttrPrompt = {"cn": ["Common name or first name"],
"mn": ["Middle name (or initial if it ends in a dot)"],
"member": ["LDAP Group Member for slapd ACLs"],
"latitude": ["XEarth latitude in ISO 6709 format - see /usr/share/zoneinfo/zone.tab or etak.com"],
"longitude": ["XEarth latitude in ISO 6709 format - see /usr/share/zoneinfo/zone.tab or etak.com"],
+ "dnszoneentry": ["DNS Zone fragment associated this this user"],
"labeledurl": ["Web home page"]};
# Create a map of IDs to desc,value,attr
print x,
print;
+# Print the SSH RSA Authentication keys for a user
+def PrintSshRSAKeys(Attrs):
+ if Attrs[1].has_key("sshrsaauthkey") == 0:
+ return;
+ First = 0;
+ for x in Attrs[1]["sshrsaauthkey"]:
+ if First == 0:
+ print "%-24s:" % ("SSH RSA Auth Keys"),
+ First = 1;
+ else:
+ print "%-24s:" % (""),
+
+ print FormatSSHAuth(x);
+
# Display all of the attributes in a numbered list
def ShowAttrs(Attrs):
print;
PrintModTime(Attrs);
PrintShadow(Attrs);
PrintKeys(Attrs);
+ PrintSshRSAKeys(Attrs);
for at in Attrs[1].keys():
if AttrInfo.has_key(at):
# Change a single attribute
def ChangeAttr(Attrs,Attr):
- if (Attr == "supplementarygid" or Attr == "allowedhosts" or Attr == "member"):
+ if (Attr == "supplementarygid" or Attr == "allowedhosts" or \
+ Attr == "member" or Attr == "dnszoneentry"):
return MultiChangeAttr(Attrs,Attr);
print "Old value: '%s'" % (GetAttr(Attrs,Attr,""));
# Query the server for all of the attributes
Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=" + User);
+if len(Attrs) == 0:
+ print "User",User,"was not found.";
+ sys.exit(0);
# repeatedly show the account configuration
while(1):
NewUser = raw_input("User? ");
if NewUser == "":
continue;
+ NAttrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=" + NewUser);
+ if len(NAttrs) == 0:
+ print "User",NewUser,"was not found.";
+ continue;
+ Attrs = NAttrs;
User = NewUser;
UserDn = "uid=" + User + "," + BaseDn;
- Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=" + User);
OrderedIndex = copy.deepcopy(OrigOrderedIndex);
continue;