Example #1
0
    def create(self, request, *args, **kwargs):
        """rewrite method create"""

        if User.objects.filter(username=request.data['username']).exists():
            return Response(
                {
                    'error': 'LOGIN',
                    'message': 'User was NOT created, because LOGIN is exists'
                },
                status=status.HTTP_409_CONFLICT)

        if User.objects.filter(email=request.data['email']).exists():
            return Response(
                {
                    'error': 'EMAIL',
                    'message': 'User was NOT created, because EMAIL is exists',
                },
                status=status.HTTP_409_CONFLICT)

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)

        email_confirm_token_send(user, self.get_token(user=user))
        log.info(msg='User {} was registered'.format(user.username))
        request.session.flush()

        return Response(status=status.HTTP_201_CREATED, headers=headers)
Example #2
0
 def update(self, request, *args, **kwargs):
     department_data = Departments.objects.get(id=int(request.data.get('id')))
     department_data.name = request.data['name']
     department_data.questions.set(request.data['questions'])
     department_data.save()
     serializer = DepartmentsSerializer(department_data)
     log.info('Department {} was updated by {}'.format(serializer.data['name'],
                                                       request.user.username))
     return Response(serializer.data, status=status.HTTP_201_CREATED)
Example #3
0
    def post(self, request, role):
        request.data['role'] = role
        candidate = PasswordlessRegistration(data=request.data)
        candidate.is_valid(raise_exception=True)
        registered = candidate.create(candidate.validated_data)
        log.info(
            'New {role} successfully registered as {username} by {recruiter}'.
            format(role=role.title(),
                   username=registered.username,
                   recruiter=request.user.username))
        email_confirm_token_send(registered, self.get_token(user=registered))

        return Response(registered.id, status=status.HTTP_201_CREATED)
Example #4
0
def login(request):
    username = request.data.get("username")
    password = request.data.get("password")
    if username is None or password is None:
        log.debug('username or password is none')
        return Response({'error': 'Please provide both username and password'},
                        status=HTTP_400_BAD_REQUEST)
    user = authenticate(request, username=username, password=password)
    if not user:
        log.debug('Server refused credentials')
        return Response({'error': 'Invalid Credentials'},
                        status=HTTP_404_NOT_FOUND)
    if user.is_active:
        log.info('User {} sign in'. format(user.get_username()))
        auth_login(request, user)

    return Response(status=HTTP_200_OK)
Example #5
0
    def create(self, request, *args, **kwargs):
        query_list = []
        for comment in request.data:
            try:
                query_list.append(Comments(comment=comment.get('comment') if comment.get('comment') != '' else None,
                                           f_grade_id=comment.get('grade'),
                                           f_interview_id=comment.get('interview'),
                                           f_question_id=comment.get('question')))

            except Answers.DoesNotExist as error:
                log.error(error)
                return Response('Grades does not exist', status=status.HTTP_400_BAD_REQUEST)

        serializer = CommentsSerializer(data=Comments.objects.bulk_create(query_list), many=True)
        serializer.is_valid()
        log.info('{} was validate candidate\'s answers'.format(request.user.username))
        log.debug('{} comments was saved'.format(len(query_list)))
        return Response(serializer.data, status=status.HTTP_201_CREATED)
Example #6
0
    def create(self, request, *args, **kwargs):
        query_list = []
        for question in request.data:
            try:
                query_list.append(
                    Answers(answer_like=question.get('answer_like'),
                            f_grade_id=question.get('grades'),
                            f_question_id=question.get('questions'),
                            f_interview_id=question.get('interviews')))
            except Answers.DoesNotExist as error:
                log.error(error)
                return Response('Grades does not exist',
                                status=status.HTTP_400_BAD_REQUEST)

        serializer = AnswersSerializer(
            data=Answers.objects.bulk_create(query_list), many=True)
        serializer.is_valid()
        log.info('{} answered for poll'.format(request.user.username))
        log.debug('{} answers was saved'.format(len(query_list)))
        return Response(serializer.data, status=status.HTTP_201_CREATED)
def password_reset_token_created(sender, reset_password_token, *args,
                                 **kwargs):
    """password_reset_token_created function"""

    context = {
        'current_user':
        reset_password_token.user,
        'username':
        reset_password_token.user.username,
        'email':
        reset_password_token.user.email,
        'reset_password_url':
        "{SITE_URL}/password_reset/confirm/{}".format(
            reset_password_token.key, SITE_URL=settings.SITE_URL)
    }

    subject = 'Contact Form Received'
    from_email = settings.DEFAULT_FROM_EMAIL
    to_email = [reset_password_token.user.email]
    log.info('User {} requested password reset'.format(
        reset_password_token.user.username))
    email_html_message = get_template('mail_send.html').render(context)
    is_email_sent = send_mail(subject, email_html_message, from_email,
                              to_email)
    if is_email_sent:
        log.info('Email was sent to {}'.format(
            reset_password_token.user.email))
    else:
        log.info('Email was\'t sent')

    return is_email_sent
Example #8
0
    def create(self, request, *args, **kwargs):
        """Get name from 'section', serialize it and get full JSON"""

        try:
            ser = SectionsSerializer(
                Sections.objects.get(id=request.data['section']))
        except Sections.DoesNotExist as error:
            log.error(error)
            return Response('Section does not exist',
                            status=status.HTTP_400_BAD_REQUEST)

        request.data['section'] = ser.data
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        log.info('Stage {} was created by {}'.format(serializer.data['name'],
                                                     request.user.username))
        return Response(serializer.data,
                        status=status.HTTP_201_CREATED,
                        headers=headers)
Example #9
0
    def create(self, request, *args, **kwargs):
        try:
            recruiter = UserDataSerializer(UserData.objects.get(f_auth_id=self.request.user.id))
            candidate = UserDataSerializer(UserData.objects.get(f_auth_id=request.data['candidate']))
            expert = UserDataSerializer(UserData.objects.get(f_auth_id=request.data['expert']))
            department = DepartmentsSerializer(Departments.objects
                                               .get(id=request.data['department']))
            department.to_representation = department.original_representation

            if recruiter.data['auth']['id'] == candidate.data['auth']['id'] or \
                    recruiter.data['auth']['id'] == expert.data['auth']['id'] or \
                    candidate.data['auth']['id'] == expert.data['auth']['id']:
                return Response('Users can not be the same!', status=status.HTTP_400_BAD_REQUEST)

            if recruiter.data['role']['name'] != 'recruiter':
                log.error('User {} with role {} tries to create interview'
                          .format(request.user.username, recruiter.data['role']['name']))
                return Response('You aren\'t recruiter!', status=status.HTTP_400_BAD_REQUEST)

        except UserData.DoesNotExist as error:
            log.error(error)
            return Response('User does not exist!', status=status.HTTP_400_BAD_REQUEST)
        except Departments.DoesNotExist as error:
            log.error(error)
            return Response('Department does not exist!', status=status.HTTP_400_BAD_REQUEST)

        request.data['recruiter'] = recruiter.data
        request.data['candidate'] = candidate.data
        request.data['expert'] = expert.data
        request.data['department'] = department.data
        request.data['created_date'] = datetime.date.today()
        request.data['status'] = 'scheduled'

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        log.info(self.perform_create(serializer))
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    def create(self, request, *args, **kwargs):
        """Get name from 'departments', serialize it and get full JSON"""
        list_questions = []
        for i in request.data['questions']:
            try:
                ser = QuestionsSerializer(Questions.objects.get(id=i))
                list_questions.append(ser.data)

            except Questions.DoesNotExist:
                log.error('Question with id={} doesn\'t exist'.format(i))
                return Response('question does not exist',
                                status=status.HTTP_400_BAD_REQUEST)

        request.data['questions'] = list_questions
        serializer = DepartmentsSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)

        headers = self.get_success_headers(serializer.data)
        log.info('Department {} was created by {}'.format(serializer.data.get('name'),
                                                          request.user.username))
        log.debug('Department was created with {} questions'.format(len(list_questions)))
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
Example #11
0
    def get(self, request, token, *args, **kwargs):

        if token:
            try:
                decoded = jwt.decode(token,
                                     settings.SECRET_KEY,
                                     algorithms=['HS256'])

                user = User.objects.get(id=decoded['id'])
                user.is_active = True
                user.save()
                log.info('Email {} verified!'.format(user.email))
                auth_login(request,
                           user,
                           backend='django.contrib.auth.backends.ModelBackend')

                return redirect('/home/')

            except Exception as exp:
                log.error(exp)
                raise exp
            except jwt.ExpiredSignatureError:
                return Response('User was NOT confirm, because time went out ',
                                status=status.HTTP_409_CONFLICT)
Example #12
0
 def update(self, request, *args, **kwargs):
     log.info('Stage {} was updated by {}'.format(request.data['name'],
                                                  request.user.username))
     return super().update(request, *args, **kwargs)
Example #13
0
 def create(self, request, *args, **kwargs):
     log.info('Section {} was created by {}'.format(request.data['name'],
                                                    request.user.username))
     return super().create(request, *args, **kwargs)
Example #14
0
 def post(self, request, *args, **kwargs):
     thread = super().post(request, *args, **kwargs)
     log.info('User {} changed the password'.format(request.user.username))
     return thread
Example #15
0
 def create(self, request, *args, **kwargs):
     log.info('New grade was created by {}'.format(request.user.username))
     return super().create(request, *args, **kwargs)
Example #16
0
 def update(self, request, *args, **kwargs):
     log.info('Grade with id: {} was updated by {}'.format(
         request.data.get('id'), request.user.username))
     return super().update(request, *args, **kwargs)