File

teal-src/core/usermanager.d.tl @ 12947:14a44b1a51d0

prosody.loader: Allow loading modules under 'prosody' namespace (#1223) Actually `hg mv`-ing all the files is disruptive, basically breaking everything from rebasing all my WIP draft commits to the package building. So instead, what if we didn't and instead rewrote package names as they are `require()`-d? Debian packages produced by the Prosody are already installed into this structure so much will Just Work if all require calls are updated.
author Kim Alvefur <zash@zash.se>
date Fri, 17 Mar 2023 13:51:43 +0100
parent 12905:8473a516004f
line wrap: on
line source

local Role = require "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