
user_profile.pl -- User Profile ManagementThis module implements user profile management, in particular for managing authentication and authorization for HTTP servers. It mainly defines the interface that can be used within an HTTP application.
The actual storage is left to a plugin providing the backend implementation. Backend choices may depend on integration needs with other services, scale of the site (number of users), distribution, ease of installation.
The typical setup sequence is
:- use_module(library(http/user_profile)).
:- use_module(library(http/impl/profile_prolog)).
:- set_setting(user_profile:backend, impl_profile_prolog).
:- multifile
user_profile:attribute/3.
user_profile:attribute_type(name, string, []).
...
profile_open_db(+Options) is det
profile_create(?ProfileID, +Attributes) is det
profile_canonical_value(+Attribute, +ValueIn, -Value) is det
current_profile(?ProfileID) is nondet
current_profile(?ProfileID, -Attributes:dict) is nondet
profile_property(?ProfileID, ?Property:compound) is nondet
set_profile(+ProfileID, +Attribute) is det
set_profile(+ProfileID, +Attribute, -Modified) is det
profile_remove(+ProfileID) is det
profile_remove(+ProfileID, +Attribute) is det
profile_add_session(+ProfileID, +SessionID, +Options) is dettrue, store the session association persistently, such
that a server restart maintains the login.
profile_refresh_session(+ProfileID, +SessionID) is det
profile_remove_session(+ProfileID, +SessionID) is det
profile_session(?ProfileID, ?SessionID) is nondet
error:has_type(+Type, +Value) is semidet[multifile]The following predicates are exported from this file while their implementation is defined in imported modules or non-module files loaded by this module.
set_profile(+ProfileID, +Attribute) is det
set_profile(+ProfileID, +Attribute, -Modified) is det