Mercurial > prosody-hg
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 |
| parents | b374eb414a32 |
| children | 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 |
