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

Module Os_db.Groups

module Groups : sig..end

This module is low-level and used to manage groups of user.


val create : ?description:string -> string -> unit Lwt.t

create ?description name creates a new group with name name and with description description.

val group_of_name : 
  string -> (Os_types.Group.id * string * string option) Lwt.t

group_of_name name returns a tuple (groupid, name, description) describing the group. If no group has the name name, it fails with Os_db.No_such_resource.

val add_user_in_group : 
  groupid:Os_types.Group.id -> userid:Os_types.User.id -> unit Lwt.t

add_user_in_group ~groupid ~userid adds the user with ID userid in the group with ID groupid

val remove_user_in_group : 
  groupid:Os_types.Group.id -> userid:Os_types.User.id -> unit Lwt.t

remove_user_in_group ~groupid ~userid removes the user with ID userid in the group with ID groupid

val in_group : 
  ?dbh:PGOCaml.pa_pg_data PGOCaml.t ->
  groupid:Os_types.Group.id ->
  userid:Os_types.User.id -> unit -> bool Lwt.t

in_group ~groupid ~userid returns true if the user with ID userid is in the group with ID groupid.

val all : unit -> (Os_types.Group.id * string * string option) list Lwt.t

all () returns all groups as list of tuple (groupid, name, description).