groups: port missing functionality

* Implement user group manage function

* Add filter on list of group that user can join.

Signed-off-by: Leonardo Rossi <leonardo.r@cern.ch>
what is the difference between this method and `is_admin`?