Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Os_current_user

module Os_current_user : sig..end

This module provides functions and types to manage the current user.


On server side, this will work only if the current request in wrapped in Os_session.connected_wrapper, or Os_session.connected_fun, etc. Otherwise, an exception is raised.

type current_user =  | CU_idontknown | CU_notconnected | CU_user of Os_types.User.t
val get_current_user : unit -> Os_types.User.t

get_current_user () returns the current user as a Os_types.User.t type. If no user is connected, it fails with Os_session.Not_connected.

val get_current_userid : unit -> Os_types.User.id

get_current_userid () returns the ID of the current user. If no user is connected, it fails with Os_session.Not_connected.

module Opt : sig..end

Instead of exception, the module Opt returns an option.

val remove_email_from_user : string -> unit Lwt.t

remove_email_from_user email removes the email email of the current user. If no user is connected, it fails with Os_session.Not_connected. If email is the main email of the current user, it fails with Os_db.Main_email_removal_attempt.

val update_main_email : string -> unit Lwt.t

update_main_email email sets the main email of the current user to email. If no user is connected, it fails with Os_session.Not_connected.

val update_language : string -> unit Lwt.t

update_language language updates the language of the current user. If no user is connected, it fails with Os_session.Not_connected.

val is_email_validated : string -> bool Lwt.t

is_email_validated email returns true if email is a valided email for the current user. If no user is connected, it fails with Os_session.Not_connected. It returns false in all other cases.

val is_main_email : string -> bool Lwt.t

is_main_email email returns true if email is the main email of the current user.