diff --git a/htman/htpasswd.py b/htman/htpasswd.py index 6c1611c..6ffd7ab 100644 --- a/htman/htpasswd.py +++ b/htman/htpasswd.py @@ -57,6 +57,10 @@ class HtpasswdFile: for line in open(self.filename, 'r').readlines(): if ":" in line: username, pwhash = line.split(':', 1) + # remove spaces + username = username.strip() + # remove newline characters and spaces + pwhash = pwhash.strip() self.entries[username] = pwhash def save(self): @@ -73,8 +77,10 @@ class HtpasswdFile: if os.path.isfile(self.filename): # copy the original file mode (mod, timestamps) shutil.copystat(self.filename, temp_filename) - for name, pwhash in self.entries.items(): - os.write(temp_file, "%s:%s%s" % (name, pwhash, os.linesep)) + sorted_names = self.entries.keys() + sorted_names.sort() + for name in sorted_names: + os.write(temp_file, "%s:%s%s" % (name, self.entries[name], os.linesep)) os.close(temp_file) except IOError: try: