Beispiel #1
0
    def get(self, request):
        resp_fields = ['first_name', 'last_name', 'email', 'username']
        model = get_user_model()
        q = request.GET.get('username')
        if q:
            try:
                user = model.objects.get(username=q)
            except ObjectDoesNotExist as err:
                return HttpResponseNotFound()
            res_dict = {
                'first_name': user.first_name,
                'last_name': user.last_name,
                'email': user.email,
                'username': user.username,
            }
            if (user.profile.orcid_id):
                res_dict['orcid_id'] = user.profile.orcid_id
            try:
                user_tas = TASClient().get_user(username=q)
                res_dict['profile'] = {'institution': user_tas['institution']}
            except Exception as err:
                logger.info('No Profile.')

            return JsonResponse(res_dict)

        q = request.GET.get('q')
        role = request.GET.get('role')
        user_rs = model.objects.filter()
        if q:
            query = users_utils.q_to_model_queries(q)
            if query is None:
                return JsonResponse({})

            user_rs = user_rs.filter(query)
        if role:
            logger.info(role)
            user_rs = user_rs.filter(groups__name=role)
        resp = [model_to_dict(u, fields=resp_fields) for u in user_rs]
        if len(resp):
            return JsonResponse(resp, safe=False)
        else:
            return HttpResponseNotFound()
Beispiel #2
0
    def get(self, request):
        resp_fields = ['first_name', 'last_name', 'email', 'username']

        model = get_user_model()
        q = request.GET.get('username')
        if q:
            user = model.objects.get(username=q)
            return JsonResponse(model_to_dict(user, fields=resp_fields))

        q = request.GET.get('q')

        if q:
            query = users_utils.q_to_model_queries(q)
            if query is None:
                return JsonResponse({})

            user_rs = model.objects.filter(query)
            resp = [model_to_dict(u, fields=resp_fields) for u in user_rs]
            return JsonResponse(resp, safe=False)

        return HttpResponseNotFound()