306 |
306 |
return hash(tuple((at.name, at.required) for at in attributes))
|
307 |
307 |
|
308 |
308 |
|
|
309 |
class RoleSerializer(serializers.ModelSerializer):
|
|
310 |
ou = serializers.SlugRelatedField(
|
|
311 |
queryset=get_ou_model().objects.all(),
|
|
312 |
slug_field='ou__slug',
|
|
313 |
required=True, default=get_default_ou)
|
|
314 |
|
|
315 |
class Meta:
|
|
316 |
model = get_role_model()
|
|
317 |
|
|
318 |
|
309 |
319 |
class BaseUserSerializer(serializers.ModelSerializer):
|
310 |
320 |
ou = serializers.SlugRelatedField(
|
311 |
321 |
queryset=get_ou_model().objects.all(),
|
... | ... | |
575 |
585 |
utils.send_email_change_email(user, serializer.validated_data['email'], request=request)
|
576 |
586 |
return Response({'result': 1})
|
577 |
587 |
|
|
588 |
class RolesInOuAPI(ExceptionHandlerMixin, APIView, ModelViewSet):
|
|
589 |
|
|
590 |
def initial(self, request, *args, **kwargs):
|
|
591 |
super(RolesInOuAPI, self).initial(request, *args, **kwargs)
|
|
592 |
Role = get_role_model()
|
|
593 |
try:
|
|
594 |
self.role = get_object(Role, ou__slug=kwargs['ou_id_or_ou_slug'])
|
|
595 |
except MultipleObjectsReturned:
|
|
596 |
self.role = get_object_or_404(Role, ou__id=kwargs['ou_id_or_ou_slug'])
|
|
597 |
|
|
598 |
roles_in_ou = RolesInOuAPI.as_view()
|
|
599 |
|
578 |
600 |
|
579 |
|
class RolesAPI(ExceptionHandlerMixin, APIView):
|
|
601 |
class RoleMembershipsAPI(ExceptionHandlerMixin, APIView):
|
580 |
602 |
permission_classes = (permissions.IsAuthenticated,)
|
581 |
603 |
|
582 |
604 |
def initial(self, request, *args, **kwargs):
|
583 |
|
super(RolesAPI, self).initial(request, *args, **kwargs)
|
|
605 |
super(RoleMembershipsAPI, self).initial(request, *args, **kwargs)
|
584 |
606 |
Role = get_role_model()
|
585 |
607 |
User = get_user_model()
|
586 |
608 |
self.role = get_object_or_404(Role, uuid=kwargs['role_uuid'])
|
... | ... | |
601 |
623 |
return Response({'result': 1, 'detail': _('User successfully removed from role')},
|
602 |
624 |
status=status.HTTP_200_OK)
|
603 |
625 |
|
604 |
|
roles = RolesAPI.as_view()
|
|
626 |
role_memberships = RoleMembershipsAPI.as_view()
|
605 |
627 |
|
606 |
628 |
|
607 |
629 |
class BaseOrganizationalUnitSerializer(serializers.ModelSerializer):
|
... | ... | |
620 |
642 |
router = SimpleRouter()
|
621 |
643 |
router.register(r'users', UsersAPI, base_name='a2-api-users')
|
622 |
644 |
router.register(r'ous', OrganizationalUnitAPI, base_name='a2-api-ous')
|
|
645 |
# router.register(r'roles', RolesAPO, base_name='a2-api-roles')
|
623 |
646 |
|
624 |
647 |
|
625 |
648 |
class CheckPasswordSerializer(serializers.Serializer):
|
626 |
|
-
|