Software /
code /
prosody
Comparison
plugins/mod_auth_internal_plain.lua @ 6054:7a5ddbaf758d
Merge 0.9->0.10
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 02 Apr 2014 17:41:38 +0100 |
parent | 5781:b374eb414a32 |
child | 8057:4a9275594981 |
comparison
equal
deleted
inserted
replaced
6053:2f93a04564b2 | 6054:7a5ddbaf758d |
---|---|
14 | 14 |
15 local accounts = module:open_store("accounts"); | 15 local accounts = module:open_store("accounts"); |
16 | 16 |
17 -- define auth provider | 17 -- define auth provider |
18 local provider = {}; | 18 local provider = {}; |
19 log("debug", "initializing internal_plain authentication provider for host '%s'", host); | |
20 | 19 |
21 function provider.test_password(username, password) | 20 function provider.test_password(username, password) |
22 log("debug", "test password for user %s at host %s", username, host); | 21 log("debug", "test password for user '%s'", username); |
23 local credentials = accounts:get(username) or {}; | 22 local credentials = accounts:get(username) or {}; |
24 | 23 |
25 if password == credentials.password then | 24 if password == credentials.password then |
26 return true; | 25 return true; |
27 else | 26 else |
28 return nil, "Auth failed. Invalid username or password."; | 27 return nil, "Auth failed. Invalid username or password."; |
29 end | 28 end |
30 end | 29 end |
31 | 30 |
32 function provider.get_password(username) | 31 function provider.get_password(username) |
33 log("debug", "get_password for username '%s' at host '%s'", username, host); | 32 log("debug", "get_password for username '%s'", username); |
34 return (accounts:get(username) or {}).password; | 33 return (accounts:get(username) or {}).password; |
35 end | 34 end |
36 | 35 |
37 function provider.set_password(username, password) | 36 function provider.set_password(username, password) |
37 log("debug", "set_password for username '%s'", username); | |
38 local account = accounts:get(username); | 38 local account = accounts:get(username); |
39 if account then | 39 if account then |
40 account.password = password; | 40 account.password = password; |
41 return accounts:set(username, account); | 41 return accounts:set(username, account); |
42 end | 42 end |
44 end | 44 end |
45 | 45 |
46 function provider.user_exists(username) | 46 function provider.user_exists(username) |
47 local account = accounts:get(username); | 47 local account = accounts:get(username); |
48 if not account then | 48 if not account then |
49 log("debug", "account not found for username '%s' at host '%s'", username, host); | 49 log("debug", "account not found for username '%s'", username); |
50 return nil, "Auth failed. Invalid username"; | 50 return nil, "Auth failed. Invalid username"; |
51 end | 51 end |
52 return true; | 52 return true; |
53 end | 53 end |
54 | 54 |
74 return password, true; | 74 return password, true; |
75 end | 75 end |
76 }; | 76 }; |
77 return new_sasl(host, getpass_authentication_profile); | 77 return new_sasl(host, getpass_authentication_profile); |
78 end | 78 end |
79 | 79 |
80 module:provides("auth", provider); | 80 module:provides("auth", provider); |
81 | 81 |