Esempio n. 1
0
def authenticate_user(user, data):
    if user:
        token, _ = Token.objects.get_or_create(user=user)
        user_serializer = UserProfileSerializer(user, data=data)
        if user_serializer.is_valid():
            user_serializer_dict = user_serializer.data
            user_serializer_dict.update(TokenSerializer(token).data)
            user_serializer_dict.update(messages.LOGIN_SUCCESSFUL)
            return user_serializer_dict
        else:
            raise ValidationException(user_serializer.errors,
                                      status.HTTP_400_BAD_REQUEST)
    else:
        raise ValidationException(messages.INVALID_EMAIL_OR_PASSWORD,
                                  status.HTTP_401_UNAUTHORIZED)
Esempio n. 2
0
def change_password(current_password, new_password, user):
    if user.check_password(current_password):

        if current_password != new_password:
            user.set_password(new_password)
            user.is_password_changed = True
            user.save()
            resp = {'user_id': user.id}
            resp.update(messages.PASSWORD_CHANGED)
            return resp
        else:
            raise ValidationException(messages.SAME_PASSWORD,
                                      status.HTTP_406_NOT_ACCEPTABLE)
    else:
        raise ValidationException(messages.CURRENT_PASSWORD_INCORRECT,
                                  status.HTTP_401_UNAUTHORIZED)
Esempio n. 3
0
def update_user(data, user):
    user_serializer = UserProfileSerializer(data=data, instance=user)
    if user_serializer.is_valid():
        user_serializer.save()
        return user_serializer.data
    else:
        raise ValidationException(user_serializer.errors,
                                  status.HTTP_400_BAD_REQUEST)
Esempio n. 4
0
def fetch_token(user):
    try:
        # Get the goal for the specified user and return key
        token = Token.objects.get(user_id=user.id)
        return token.key
    except Token.DoesNotExist:
        raise ValidationException(messages.TOKEN_NOT_FOUND,
                                  status.HTTP_404_NOT_FOUND)
Esempio n. 5
0
def create_image(data):
    image_serializer = ImageSerializer(data=data)
    if image_serializer.is_valid():
        image_serializer.save()
        return image_serializer.data
    else:
        raise ValidationException(image_serializer.errors,
                                  status.HTTP_400_BAD_REQUEST)
Esempio n. 6
0
def authenticate_user(user, data):
    if user:
        token = fetch_token(user)
        user_serializer = UserProfileSerializer(user, data=data)
        if user_serializer.is_valid():
            keys = ['id', 'email']
            user_serializer_dict = {
                k: v
                for k, v in user_serializer.data.iteritems() if k in keys
            }
            user_serializer_dict['token'] = token
            user_serializer_dict.update(messages.LOGIN_SUCCESSFUL)
            return user_serializer_dict
        else:
            raise ValidationException(user_serializer.errors,
                                      status.HTTP_400_BAD_REQUEST)
    else:
        raise ValidationException(messages.INVALID_EMAIL_OR_PASSWORD,
                                  status.HTTP_401_UNAUTHORIZED)
Esempio n. 7
0
def validate_available_courses(data):
    try:
        available_courses = []
        course_list = data['courses']
        for course in course_list:
            try:
                available_courses.append(Course.objects.get(name=course))
            except Course.DoesNotExist:
                pass
        return available_courses
    except KeyError:
        raise ValidationException(messages.REQUIRED_COURSE,
                                  status=status.HTTP_400_BAD_REQUEST)
Esempio n. 8
0
def create_user(data):
    user_serializer = StudentRegistrationSerializer(data=data)
    if user_serializer.is_valid():
        user = user_serializer.save()
        token = Token.objects.create(user=user)
        keys = [
            'id', 'first_name', 'last_name', 'email', 'contact_no', 'created'
        ]  # data that we want to return as JSON response
        user_response = {
            k: v
            for k, v in user_serializer.data.iteritems() if k in keys
        }
        user_response['token'] = token.key
        return user_response
    else:
        raise ValidationException(user_serializer.errors,
                                  status.HTTP_400_BAD_REQUEST)