Software /
code /
prosody
Comparison
plugins/mod_auth_internal_plain.lua @ 3465:b6db1a8a78bb
mod_auth_internal_plain: Get rid of all checks for Cyrus SASL.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Mon, 23 Aug 2010 16:31:44 +0500 |
parent | 3425:26751c628207 |
child | 3981:2b0b8fe68df2 |
comparison
equal
deleted
inserted
replaced
3464:72cd7a785014 | 3465:b6db1a8a78bb |
---|---|
19 local nodeprep = require "util.encodings".stringprep.nodeprep; | 19 local nodeprep = require "util.encodings".stringprep.nodeprep; |
20 local hosts = hosts; | 20 local hosts = hosts; |
21 | 21 |
22 local prosody = _G.prosody; | 22 local prosody = _G.prosody; |
23 | 23 |
24 local is_cyrus = usermanager.is_cyrus; | |
25 | |
26 function new_default_provider(host) | 24 function new_default_provider(host) |
27 local provider = { name = "internal_plain" }; | 25 local provider = { name = "internal_plain" }; |
28 log("debug", "initializing default authentication provider for host '%s'", host); | 26 log("debug", "initializing default authentication provider for host '%s'", host); |
29 | 27 |
30 function provider.test_password(username, password) | 28 function provider.test_password(username, password) |
31 log("debug", "test password '%s' for user %s at host %s", password, username, module.host); | 29 log("debug", "test password '%s' for user %s at host %s", password, username, module.host); |
32 if is_cyrus(host) then return nil, "Legacy auth not supported with Cyrus SASL."; end | |
33 local credentials = datamanager.load(username, host, "accounts") or {}; | 30 local credentials = datamanager.load(username, host, "accounts") or {}; |
34 | 31 |
35 if password == credentials.password then | 32 if password == credentials.password then |
36 return true; | 33 return true; |
37 else | 34 else |
39 end | 36 end |
40 end | 37 end |
41 | 38 |
42 function provider.get_password(username) | 39 function provider.get_password(username) |
43 log("debug", "get_password for username '%s' at host '%s'", username, module.host); | 40 log("debug", "get_password for username '%s' at host '%s'", username, module.host); |
44 if is_cyrus(host) then return nil, "Passwords unavailable for Cyrus SASL."; end | |
45 return (datamanager.load(username, host, "accounts") or {}).password; | 41 return (datamanager.load(username, host, "accounts") or {}).password; |
46 end | 42 end |
47 | 43 |
48 function provider.set_password(username, password) | 44 function provider.set_password(username, password) |
49 if is_cyrus(host) then return nil, "Passwords unavailable for Cyrus SASL."; end | |
50 local account = datamanager.load(username, host, "accounts"); | 45 local account = datamanager.load(username, host, "accounts"); |
51 if account then | 46 if account then |
52 account.password = password; | 47 account.password = password; |
53 return datamanager.store(username, host, "accounts", account); | 48 return datamanager.store(username, host, "accounts", account); |
54 end | 49 end |
55 return nil, "Account not available."; | 50 return nil, "Account not available."; |
56 end | 51 end |
57 | 52 |
58 function provider.user_exists(username) | 53 function provider.user_exists(username) |
59 if is_cyrus(host) then return true; end | |
60 local account = datamanager.load(username, host, "accounts"); | 54 local account = datamanager.load(username, host, "accounts"); |
61 if not account then | 55 if not account then |
62 log("debug", "account not found for username '%s' at host '%s'", username, module.host); | 56 log("debug", "account not found for username '%s' at host '%s'", username, module.host); |
63 return nil, "Auth failed. Invalid username"; | 57 return nil, "Auth failed. Invalid username"; |
64 end | 58 end |
65 return true; | 59 return true; |
66 end | 60 end |
67 | 61 |
68 function provider.create_user(username, password) | 62 function provider.create_user(username, password) |
69 if is_cyrus(host) then return nil, "Account creation/modification not available with Cyrus SASL."; end | |
70 return datamanager.store(username, host, "accounts", {password = password}); | 63 return datamanager.store(username, host, "accounts", {password = password}); |
71 end | 64 end |
72 | 65 |
73 function provider.get_sasl_handler() | 66 function provider.get_sasl_handler() |
74 local realm = module:get_option("sasl_realm") or module.host; | 67 local realm = module:get_option("sasl_realm") or module.host; |