0001-WIP-include-roles-in-users-api-25645.patch
src/authentic2/api_views.py | ||
---|---|---|
326 | 326 |
def __init__(self, *args, **kwargs): |
327 | 327 |
super(BaseUserSerializer, self).__init__(*args, **kwargs) |
328 | 328 | |
329 |
self.fields['roles'] = RoleCustomField(many=True, read_only=True) |
|
330 | ||
329 | 331 |
for at in Attribute.objects.all(): |
330 | 332 |
if at.name in self.fields: |
331 | 333 |
self.fields[at.name].required = at.required |
... | ... | |
490 | 492 |
extra_kwargs = {'uuid': {'read_only': True}} |
491 | 493 | |
492 | 494 | |
495 |
class RoleCustomField(RoleSerializer): |
|
496 |
class Meta(RoleSerializer.Meta): |
|
497 |
fields = ('uuid', 'name', 'slug',) |
|
498 | ||
499 | ||
493 | 500 |
class UsersFilter(FilterSet): |
494 | 501 |
class Meta: |
495 | 502 |
model = get_user_model() |
... | ... | |
537 | 544 | |
538 | 545 | |
539 | 546 |
class UsersAPI(HookMixin, ExceptionHandlerMixin, ModelViewSet): |
540 |
ordering_fields = ['username', 'first_name', 'last_name', 'modified', 'date_joined'] |
|
547 |
ordering_fields = ['username', 'first_name', 'last_name', 'modified', 'date_joined', 'roles']
|
|
541 | 548 |
lookup_field = 'uuid' |
542 | 549 |
serializer_class = BaseUserSerializer |
543 | 550 |
filter_class = UsersFilter |
tests/test_api.py | ||
---|---|---|
231 | 231 |
if api_user.is_superuser or api_user.roles.exists(): |
232 | 232 |
assert set(['ou', 'id', 'uuid', 'is_staff', 'is_superuser', 'first_name', 'last_name', |
233 | 233 |
'date_joined', 'last_login', 'username', 'password', 'email', 'is_active', |
234 |
'title', 'modified', 'email_verified']) == set(resp.json.keys()) |
|
234 |
'title', 'modified', 'email_verified', 'roles']) == set(resp.json.keys())
|
|
235 | 235 |
assert resp.json['first_name'] == payload['first_name'] |
236 | 236 |
assert resp.json['last_name'] == payload['last_name'] |
237 | 237 |
assert resp.json['email'] == payload['email'] |
238 |
- |