diff options
Diffstat (limited to 'authenticator-freeswitch-vmail.lua')
-rw-r--r-- | authenticator-freeswitch-vmail.lua | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/authenticator-freeswitch-vmail.lua b/authenticator-freeswitch-vmail.lua new file mode 100644 index 0000000..5824dc7 --- /dev/null +++ b/authenticator-freeswitch-vmail.lua @@ -0,0 +1,46 @@ +-- Copy of authenticator-plaintext, plus added authentication from voicemail DB +module (..., package.seeall) + +require("md5") +a = require("authenticator-plaintext") + +list_fields = function(self, tabl) + result = a.list_fields(self, tabl) + return result +end + +read_field = function(self, tabl, field) + result = a.read_field(self, tabl, field) + if tabl == authenticator.usertable and field == "" then + -- authenticator is reading all users + local vmcontroller = self:new("freeswitch-vmail/vmail") + local users = vmcontroller:listusers() + for i,val in ipairs(users.value) do + local settings = vmcontroller.model.get_usersettings(val.username) + local string = md5.sumhexa(settings.value["vm-password"].value)..":Voicemail User:/freeswitch-vmail/vmail/USER" + result[#result+1] = { id=settings.value.username.value, entry=string } + end + vmcontroller:destroy() + end + return result +end + +delete_field = function(self, tabl, field) + result = a.delete_field(self, tabl, field) + return result +end + +write_entry = function(self, tabl, field, id, entry) + result = a.write_entry(self, tabl, field, id, entry) + return result +end + +read_entry = function(self, tabl, field, id) + result = a.read_entry(self, tabl, field, id) + return result +end + +delete_entry = function (self, tabl, field, id) + result = a.delete_entry(self, tabl, field, id) + return result +end |