コード例 #1
0
ファイル: admin.py プロジェクト: ptran068/hr_api
 def import_file(self, request, *args, **kwargs):
     for row in request.data.get('rows'):
         if row.get('success'):
             UserService.send_mail(email=row.get('email'),
                                   name=row.get('name'),
                                   phone=row.get('phone'),
                                   send_email=True)
     return Response({'success': True})
コード例 #2
0
ファイル: admin.py プロジェクト: ptran068/hr_api
 def invite_list_user(self, request, *args, **kwargs):
     serializer = InviteListSerializer(data=request.data, many=True)
     serializer.is_valid(raise_exception=True)
     invite_list_service = InviteListService()
     valid_user, invalid_user = invite_list_service.separation_data(
         serializer.validated_data)
     for user in valid_user:
         UserService.invite(email=user.get('email'), name=user.get('name'))
     data = {'valid_user': valid_user, 'invalid_user': invalid_user}
     return Response(data=data, status=status.HTTP_201_CREATED)
コード例 #3
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def create(self, request, *args, **kwargs):
     invite_serializer = InviteSerializer(data=request.data)
     if invite_serializer.is_valid(raise_exception=True):
         email = request.data.get('email')
         name = request.data.get('name')
         res = UserService.invite(email, name)
         return Response(res)
コード例 #4
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def change_password(self, request, *args, **kwargs):
     user = self.get_object()
     user = UserService.update_password(request.data, user)
     if user:
         self.perform_update(user)
         return Response({"Success": True})
     return Response({"Success": False})
コード例 #5
0
ファイル: team.py プロジェクト: ptran068/hr_api
 def set_project_manager(cls, team, **kwargs):
     email = kwargs.get('email')
     user = UserService.get_user_by_email(email)
     if user:
         team.project_manager = user
         team.save()
         cls.update_line_manager_in_team(team)
         cls.update_user_team(user, team.id)
コード例 #6
0
ファイル: login.py プロジェクト: ptran068/hr_api
 def forgot_password(cls, email):
     user = UserService.get_user_by_email(email)
     if user:
         token = TokenUtil.encode(user)
         link = f'http://{settings.UI_HOST}/resetPassword?token={token}'
         content = render_to_string('../templates/password_email.html',
                                    {'link': link})
         SendMail.start([email], 'Forgot Password', content)
         return True
     return False
コード例 #7
0
ファイル: login.py プロジェクト: ptran068/hr_api
 def verify(self, request, *args, **kwargs):
     password = request.data.get('password')
     user_data = TokenUtil.verify(request.data.get('token'))
     invite_serializer = InviteSerializer(data=user_data)
     if invite_serializer.is_valid(raise_exception=True):
         email = user_data.get('email')
         user = UserService.get_user_by_email(email)
         if user:
             LoginService.change_password(user, password)
             return Response({'success': True})
     raise ValidationError("Verify error")
コード例 #8
0
ファイル: cmd_set_password.py プロジェクト: ptran068/hr_api
def cmd_set_password():
    user_id = input("Enter user ID: ")
    pwd = input("Enter a new password: "******"No user with id {user_id}")
    except Exception as e:
        print(str(e))
コード例 #9
0
ファイル: api_token.py プロジェクト: ptran068/hr_api
    def decode(token, token_hours=12):
        payload = jwt.decode(token,
                             TokenUtil.get_secret_key(),
                             algorithms=['HS256'])

        iat = int(payload.get("iat"))
        email = payload.get('email')

        if iat + token_hours * 60 * 60 < datetime.now().timestamp():
            return None

        from api_user.services import UserService
        user = UserService.get_user_by_email(email)
        if user:
            return user
        return None
コード例 #10
0
ファイル: login.py プロジェクト: ptran068/hr_api
 def login(cls, **kwargs):
     try:
         email = kwargs.get('email')
         password = kwargs.get('password')
         user = UserService.get_user_by_email(email)
         if not user or not user.check_password(password):
             raise ValidationError("Invalid username or password")
         token = TokenUtil.encode(user)
         res = dict(success=True,
                    token=token,
                    user=user.id,
                    profile_id=user.profile.id,
                    email=user.email,
                    active=user.active,
                    admin=user.is_admin,
                    image=None,
                    pm=user.is_project_manager)
         if user.profile.image:
             res.update(image=settings.MEDIA_IMAGE + '/media/' +
                        str(user.profile.image))
         return res
     except Exception as e:
         raise e
コード例 #11
0
ファイル: team.py プロジェクト: ptran068/hr_api
 def remove_member(cls, data, instance):
     user = UserService.get_user_by_email(data.get('email'))
     if user:
         cls._remove_user_team(user, instance.id)
         user.profile.save()
コード例 #12
0
ファイル: team.py プロジェクト: ptran068/hr_api
 def add_new_member(cls, instance, **kwargs):
     user = UserService.get_user_by_email(kwargs.get('email'))
     if user:
         cls.update_user_team(user, instance.id)
コード例 #13
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def activate(self, request, *args, **kwargs):
     user = self.get_object()
     UserService.activate_user(user)
     return Response({"Success": True})
コード例 #14
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def search_non_paginate(self, request, *args, **kwargs):
     queryset = UserService.get_filter_query(request)
     data = self.get_serializer(queryset, many=True).data
     return Response(data)
コード例 #15
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def search(self, request, *args, **kwargs):
     queryset = UserService.get_filter_query(request)
     page = self.paginate_queryset(queryset)
     data = self.get_serializer(page, many=True).data
     return self.get_paginated_response(data)
コード例 #16
0
ファイル: user.py プロジェクト: ptran068/hr_api
 def destroy(self, request, *args, **kwargs):
     user = self.get_object()
     UserService.deactivate_user(user)
     return Response({"Success": True}, status=status.HTTP_204_NO_CONTENT)