From 9e6a23e3dfabe4ef6b595f80de3ca45696735966 Mon Sep 17 00:00:00 2001 From: Paul Marillonnet Date: Thu, 30 Aug 2018 14:51:56 +0200 Subject: [PATCH] WIP include roles in users api (#25645) --- src/authentic2/api_views.py | 6 +++++- tests/test_api.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/authentic2/api_views.py b/src/authentic2/api_views.py index b6fa431a..c3938b59 100644 --- a/src/authentic2/api_views.py +++ b/src/authentic2/api_views.py @@ -322,6 +322,9 @@ class BaseUserSerializer(serializers.ModelSerializer): default=CreateOnlyDefault(utils.generate_password), required=False) force_password_reset = serializers.BooleanField(write_only=True, required=False, default=False) + roles = serializers.SlugRelatedField( + queryset=get_role_model().objects.all(), slug_field='slug', + required=False, many=True) def __init__(self, *args, **kwargs): super(BaseUserSerializer, self).__init__(*args, **kwargs) @@ -537,7 +540,8 @@ class ChangeEmailSerializer(serializers.Serializer): class UsersAPI(HookMixin, ExceptionHandlerMixin, ModelViewSet): - ordering_fields = ['username', 'first_name', 'last_name', 'modified', 'date_joined'] + ordering_fields = ['username', 'first_name', 'last_name', 'modified', + 'date_joined', 'roles'] lookup_field = 'uuid' serializer_class = BaseUserSerializer filter_class = UsersFilter diff --git a/tests/test_api.py b/tests/test_api.py index 240b0382..eb7648e6 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -231,7 +231,7 @@ def test_api_users_create(settings, app, api_user): if api_user.is_superuser or api_user.roles.exists(): assert set(['ou', 'id', 'uuid', 'is_staff', 'is_superuser', 'first_name', 'last_name', 'date_joined', 'last_login', 'username', 'password', 'email', 'is_active', - 'title', 'modified', 'email_verified']) == set(resp.json.keys()) + 'title', 'modified', 'email_verified', 'roles']) == set(resp.json.keys()) assert resp.json['first_name'] == payload['first_name'] assert resp.json['last_name'] == payload['last_name'] assert resp.json['email'] == payload['email'] -- 2.19.0.rc1