# user management

---

_WORK IN PROGRESS:_  
https://github.com/eHealthAfrica/kazana/issues/125

---

Kazana’s user management capabilities are implemented in [kazana-account](https://github.com/eHealthAfrica/kazana-account),
one of [Kazana’s core plugins](architecture.md#core-plugins). `kazana-account`
is wrapper around [hoodie-server-account](https://github.com/hoodiehq/hoodie-server-account)
which is a [hapi](http://hapijs.com/) plugin implementing a [generic account JSON API](http://docs.accountjsonapi.apiary.io/#)
as well as [client](https://github.com/hoodiehq/hoodie-client-account#api)
([admin](https://github.com/hoodiehq/hoodie-client-account/tree/master/admin#api))
and [server](https://github.com/hoodiehq/hoodie-server-account/blob/master/api/README.md#api) APIs.
Despite it’s name, `hoodie-server-account` has no dependency on [Hoodie](http://hood.ie),
but is a core module implementing Hoodie’s account functionality.

## Groups

A user can be assigned to one or multiple groups by setting `roles`, see
[Group Permissions](permissions.md#groups). `hoodie-server-account` has no
built-in feature for user group management, so it’s implemented in `kazana-account`.
Groups are managed in [entities](entities.md). Every entity type can be set to
be used as user group in `account.groups` option of the [Kazana manifest](../api/kazana-manifest.md).

Groups can be queried at `GET /groups` which supports all
[JSON API data fetching parameters](http://jsonapi.org/format/#fetching). The
`filter` will support [CouchDB’s 2 query feature](https://github.com/apache/couchdb-mango),
but that is work in progress and would set a hard requirement for CouchDB 2,
which is only in alpha at time of writing this.
