plugins/mod_register_ibr.lua
changeset 13174 082c7d856e61
parent 12981 74b9e05af71e
child 13236 e0ab20519ce5
--- a/plugins/mod_register_ibr.lua	Thu Jun 29 15:31:46 2023 +0100
+++ b/plugins/mod_register_ibr.lua	Thu Jun 29 15:36:13 2023 +0100
@@ -10,7 +10,7 @@
 local st = require "prosody.util.stanza";
 local dataform_new = require "prosody.util.dataforms".new;
 local usermanager_user_exists  = require "prosody.core.usermanager".user_exists;
-local usermanager_create_user  = require "prosody.core.usermanager".create_user;
+local usermanager_create_user_with_role  = require "prosody.core.usermanager".create_user_with_role;
 local usermanager_set_password = require "prosody.core.usermanager".create_user;
 local usermanager_delete_user  = require "prosody.core.usermanager".delete_user;
 local nodeprep = require "prosody.util.encodings".stringprep.nodeprep;
@@ -20,6 +20,8 @@
 local require_encryption = module:get_option_boolean("c2s_require_encryption",
 	module:get_option_boolean("require_encryption", true));
 
+local default_role = module:get_option_string("register_ibr_default_role", "prosody:registered");
+
 pcall(function ()
 	module:depends("register_limits");
 end);
@@ -166,7 +168,12 @@
 		return true;
 	end
 
-	local user = { username = username, password = password, host = host, additional = data, ip = session.ip, session = session, allowed = true }
+	local user = {
+		username = username, password = password, host = host;
+		additional = data, ip = session.ip, session = session;
+		role = default_role;
+		allowed = true;
+	};
 	module:fire_event("user-registering", user);
 	if not user.allowed then
 		local error_type, error_condition, reason;
@@ -200,7 +207,7 @@
 		end
 	end
 
-	local created, err = usermanager_create_user(username, password, host);
+	local created, err = usermanager_create_user_with_role(username, password, host, user.role);
 	if created then
 		data.registered = os.time();
 		if not account_details:set(username, data) then