chagnesa
This commit is contained in:
29
server/AdminFuncs.py
Normal file
29
server/AdminFuncs.py
Normal file
@ -0,0 +1,29 @@
|
||||
class AdminFuncException(Exception):
|
||||
def __init__(self, msg):
|
||||
Logger.log("Exception in AdminFuncs: %s" % msg)
|
||||
self.msg = msg
|
||||
|
||||
class AdminFuncs(object):
|
||||
@classmethod
|
||||
def setParams(cls, entries, adminPwd):
|
||||
cls.entries = entries
|
||||
cls.adminPwd = adminPwd
|
||||
|
||||
@classmethod
|
||||
def register(cls, dynid, subdomain, zone, sharedSecret):
|
||||
di = "%s %s %s %s %s" % (dynid, subdomain, zone, sharedSecret, AdminFuncs.adminPwd)
|
||||
d = md5.new(di).hexdigest()
|
||||
Logger.debug("%s, received: %s, calculated: %s" % (di, checksum, d))
|
||||
if d != self.checksum:
|
||||
raise AdminFuncException("access denied" % di)
|
||||
|
||||
if AdminFuncs.entries.has_key(dynid):
|
||||
raise AdminFuncException("duplicate dynid")
|
||||
|
||||
for entry in AdminFuncs.entries.values():
|
||||
if entry.name == subdomain and entry.zone == zone:
|
||||
raise AdminFuncException("duplicate full name")
|
||||
|
||||
newEntry = Entry.Entry(dynid, sharedSecret, subdomain, zone)
|
||||
AdminFuncs.entries[dynid] = newEntry
|
||||
|
Reference in New Issue
Block a user