PublicShow sourceprofile.pl -- User profile configuration

Complementary to authentication, this module configures the maintenance of user profiles.

There are several places where we need interaction with the user profile:

Source swish_config:reply_logged_in(+Options)[multifile]
Hook logins from federated identity provides. Options processed:
user_info(+UserInfo:Dict)
Provides information about the user provided by the external identity provider.
reply(+Format)
If Format = html, reply with an HTML page. Other values are left for future extensions.
profile_id(-Id)
Unify Id with the found or created profile id.
Source swish_config:reply_logged_out(+Options)[multifile]
Perform a logout, removing the link to the session
Source swish_config:user_profile(+Request, -Profile) is semidet[multifile]
Provide the profile for the current user. The Profile dict contains the profile keys and the profile_id key.
Source swish_search:typeahead(+Set, +Query, -Match, +Options) is nondet[multifile]
Find users based on their profile. This handler defines the set user. A Match is a dict holding:
id:ProfileID
label:Name
A reasonable name for the user
email:Email
Only present if the match was found on the email.
hit:hit{key:Key, value:Value}
Field key and value on which the hit was found
avatar:Avatar
Avatar URL