password checking module

This commit is contained in:
Enno Rehling 2016-02-10 13:40:57 +01:00
parent 7cd81df23e
commit bb44126652
1 changed files with 54 additions and 0 deletions

54
process/epasswd.py Executable file
View File

@ -0,0 +1,54 @@
#!/usr/bin/python
from string import split
from string import strip
from string import lower
class EPasswd:
def __init__(self, file):
self.data = {}
try:
fp = open(file,"r")
except:
fp = None
if fp != None:
while True:
line = fp.readline()
if not line: break
line = strip(line)
[id, email, passwd, overri] = split(line, ":")[0:4]
lc_id = lower(id)
self.data[lc_id] = {}
self.data[lc_id]["id"] = id
self.data[lc_id]["email"] = email
self.data[lc_id]["passwd"] = passwd
self.data[lc_id]["overri"] = overri
fp.close()
def check(self, id, passwd):
pw = self.get_passwd(id)
if pw[0:6]=='$apr1$':
# htpasswd hashes, cannot check, assume correct
return 1
if lower(pw) == lower(passwd):
return 1
if lower(self.get_overri(id)) == lower(passwd):
return 1
return 0
def get_passwd(self, id):
return self.data[lower(id)]["passwd"]
def get_overri(self, id):
return self.data[lower(id)]["overri"]
def get_email(self, id):
return self.data[lower(id)]["email"]
def get_canon_id(self, id):
return self.data[lower(id)]["id"]
def fac_exists(self, id):
if self.data.has_key(lower(id)):
return 1
return 0