mod_auth_any/mod_auth_any.lua
author Matthew Wild <mwild1@gmail.com>
Fri, 23 Sep 2022 22:41:15 +0100
changeset 5058 62480053c87b
parent 2443 1f7820f68868
permissions -rw-r--r--
mod_cloud_notify_encrypted: Additional debug logging when enabling/skipping
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
-- Prosody IM
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
-- Copyright (C) 2008-2010 Matthew Wild
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
-- Copyright (C) 2008-2010 Waqas Hussain
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
--
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
-- This project is MIT/X11 licensed. Please see the
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     6
-- COPYING file in the source package for more information.
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
--
2441
75be377b74ea mod_auth_any: Ignore unused arguments, useful to show what arguments are given
Kim Alvefur <zash@zash.se>
parents: 1343
diff changeset
     8
-- luacheck: ignore 212
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
local datamanager = require "util.datamanager";
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
local new_sasl = require "util.sasl".new;
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    13
local host = module.host;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    14
local provider = { name = "any" };
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    15
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    16
function provider.test_password(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    17
	return true;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    18
end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    19
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    20
function provider.set_password(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    21
	local account = datamanager.load(username, host, "accounts");
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    22
	if account then
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    23
		account.password = password;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    24
		return datamanager.store(username, host, "accounts", account);
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    25
	end
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    26
	return nil, "Account not available.";
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    27
end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    28
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    29
function provider.user_exists(username)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    30
	return true;
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    31
end
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    32
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    33
function provider.create_user(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    34
	return datamanager.store(username, host, "accounts", {password = password});
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    35
end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    36
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    37
function provider.delete_user(username)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    38
	return datamanager.store(username, host, "accounts", nil);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    39
end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    40
2442
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    41
function provider.get_sasl_handler()
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    42
	local getpass_authentication_profile = {
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    43
		plain_test = function(sasl, username, password, realm)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    44
			return true, true;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    45
		end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    46
	};
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    47
	return new_sasl(module.host, getpass_authentication_profile);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    48
end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    49
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    50
module:add_item("auth-provider", provider);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2441
diff changeset
    51