teal-src/prosody/core/usermanager.d.tl
author Kim Alvefur <zash@zash.se>
Thu, 23 Mar 2023 13:36:52 +0100
changeset 12983 fbbf4f0db8f0
parent 12909 teal-src/core/usermanager.d.tl@8473a516004f
permissions -rw-r--r--
teal: Move into prosody namespace

local Role = require "prosody.util.roles".Role;

local record usermanager
	record AuthProvider
		-- TODO
	end
	record AccountInfo
		created : number
		password_updated : any
		enabled : boolean
	end

	-- Users
	test_password : function (username : string, host : string, password : string) : boolean
	get_password : function (username : string, host : string) : string, string
	set_password : function (username : string, host : string, password : string) : boolean, string
	get_account_info : function (username : string, host : string) : AccountInfo
	user_exists : function (username : string, host : string) : boolean
	create_user : function (username : string, password : string, host : string) : boolean, string
	delete_user : function (username : string, host : string) : boolean, string
	user_is_enabled : function (username : string, host : string) : boolean, string
	enable_user : function (username : string, host : string) : boolean, string
	disable_user : function (username : string, host : string) : boolean, string
	users : function (host : string) : function () : string

	-- Roles
	get_user_role : function (username : string, host : string) : Role
	set_user_role : function (username : string, host : string, role_name : string) : boolean, string
	user_can_assume_role : function (username : string, host : string, role_name : string) : boolean
	add_user_secondary_role : function (username : string, host: string, role_name : string) : boolean, string
	remove_user_secondary_role : function (username : string, host: string, role_name : string) : boolean, string
	get_user_secondary_roles : function (username : string, host : string) : { string : Role }
	get_users_with_role : function (role : string, host : string) : { string }
	get_jid_role : function (jid : string, host : string) : Role
	set_jid_role : function (jid : string, host : string, role_name : string) : boolean
	get_jids_with_role : function (role : string, host : string) : { string }
	get_role_by_name : function (role_name : string) : Role

	-- Etc
	get_provider : function (host : string) : AuthProvider
	get_sasl_handler : function (host : string, session : table) : table
	initialize_host : function (host : string)
	new_null_provider : function () : AuthProvider
end

return usermanager