Beispiel #1
0
    def has_permission(self, request, view):
        try:
            if request.method == "GET":
                return True

            isCheck = False
            user = request_get_user(request)
            if user:
                isCheck = True
                subject_pk = view.kwargs["subject_pk"]
                subject = get_object_or_404(Subject, pk=subject_pk)

                # 해당 유저가 속한 그룹의 Subject가 아닌경우
                if subject.group_id not in user.attendGroups.all():
                    self.message = "자신이 속한 그룹에서만 작성 가능합니다."
                    isCheck = False
            else:
                isCheck = False
        except User.DoesNotExist:
            self.message = "존재하지 않는 유저입니다."
            isCheck = False
        except Subject.DoesNotExist:
            self.message = "존재하지 않는 목표입니다."
            isCheck = False

        return isCheck
Beispiel #2
0
    def has_permission(self, request, view):
        try:
            isCheck = False
            user = request_get_user(request)
            if user:
                isCheck = True

                subject_pk = view.kwargs["subject_pk"]
                todo_pk = view.kwargs["todo_pk"]
                subject = get_object_or_404(Subject, pk=subject_pk)
                todo = get_object_or_404(Todo, pk=todo_pk)

                # 해당 유저가 속한 그룹의 Subject가 아닌경우
                if subject.group_id not in user.attendGroups.all():
                    self.message = "다른사람이 작성한 게시물은 수정할 수 었습니다."
                    isCheck = False

                # 내가 작성한 글이 아닌 경우
                if todo.writer != user:
                    self.message = "다른사람이 작성한 게시물은 수정할 수 었습니다."
                    isCheck = False
            else:
                isCheck = False
        except User.DoesNotExist:
            self.message = "존재하지 않는 유저입니다."
            isCheck = False
        except Subject.DoesNotExist:
            self.message = "존재하지 않는 목표입니다."
            isCheck = False

        return isCheck
Beispiel #3
0
    def put(self, request):
        user = request_get_user(request)
        serializer = UserUpdateSerializer(data=request.data)
        if serializer.is_valid():
            serializer.update(instance=user, validated_data=request.data)
            return Response(serializer.data, status=200)

        return Response(serializer.errors, status=400)
Beispiel #4
0
 def delete(self, request):
     try:
         user = request_get_user(request)
         user.is_active = False
         user.save()
         return Response("회원탈퇴에 성공", status=200)
     except User.DoesNotExist:
         message = "존재하지 않는 유저입니다."
         return Response(message, status=200)
Beispiel #5
0
 def post(self, request, group_pk):
     serializer = SubjectBaseSerializer(
         group=get_object_or_404(Group, pk=group_pk),
         leader=request_get_user(request),
         data=request.data,
     )
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=201)
Beispiel #6
0
 def post(self, request, subject_pk):
     serializer = todoGroupSimpleSerializer(
         subject=get_object_or_404(Subject, pk=subject_pk),
         writer=request_get_user(request),
         data=request.data,
     )
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=201)
Beispiel #7
0
    def put(self, request, group_pk, subject_pk):
        user = request_get_user(request)
        group = (get_object_or_404(Group, pk=group_pk),)

        serializer = SubjectDetailSerializer(data=request.data)
        if serializer.is_valid():
            serializer.update(
                get_object_or_404(Subject, pk=subject_pk), serializer.data
            )
            return Response(serializer.data, status=200)

        return Response(serializer.errors, status=400)
Beispiel #8
0
    def put(self, request, pk):

        group = self.get_object(pk)
        user = request_get_user(request)

        # 참가신청목록과, 그룹멤버에 포함되지 않아야 신청가능하다.
        if user in group.attends.all():
            return Response("이미 참가신청을 하였습니다.", status=405)
        elif user in group.members.all():
            return Response("이미 그룹에 참여중입니다.", status=405)

        group.attends.add(user)
        group.save()
        return Response("참가신청 되었습니다.", status=200)
    def get(self, request):
        #  유저를 받아온다 hoon
        user = request_get_user(request)
        # hoon이 속한 그룹을 가져온다
        groups = user.attendGroups.all()

        devices = []
        for group in groups:
            subjects = Subject.objects.filter(group_id=group)
            todoGroups = TodoGroup.objects.filter(subject_id__in=subjects)
            todos = Todo.objects.filter(todoGroup_id__in=todoGroups,
                                        writer=user)
            devices.append(groupAndTodoDevice(group, todos))

        serializer = DeviceSerializer(devices, many=True)
        return Response(serializer.data)
Beispiel #10
0
    def delete(self, request, pk):

        group = self.get_object(pk)
        user = request_get_user(request)

        # 참가신청목록과, 그룹멤버에 포함되지 않아야 신청가능하다.
        if user in group.attends.all():
            group.attends.remove(user)
            group.save()
            return Response("참가신청이 취소 되었습니다.", status=200)
        elif user in group.members.all():
            group.members.remove(user)
            user.attendGroups.remove(group)
            user.save()
            group.save()
            return Response("그룹에서 탈퇴하였습니다.", status=200)
        else:
            return Response("해당 그룹에 속한 정보가 없습니다.", status=405)
Beispiel #11
0
    def has_permission(self, request, view):
        try:
            if request.method == "GET":
                return True

            isCheck = False
            user = request_get_user(request)
            if user:
                isCheck = True
                pk = view.kwargs["group_pk"]
                group = get_object_or_404(Group, pk=pk)
                if group.leader != user:
                    self.message = "그룹장만 승인이 가능합니다."
                    isCheck = False
            else:
                isCheck = False
        except User.DoesNotExist:
            self.message = "존재하지 않는 유저입니다."
            isCheck = False
        except Group.DoesNotExist:
            self.message = "존재하지 않는 그룹입니다."
            isCheck = False

        return isCheck
Beispiel #12
0
 def get(self, request):
     user = request_get_user(request)
     serializer = UserBaseSerializer(user)
     return Response(serializer.data)
Beispiel #13
0
 def put(self, request):
     user = request_get_user(request)
     user.set_password(request.data["password"])
     user.save()
     return Response("비밀번호가 변경되었습니다.", status=200)
Beispiel #14
0
 def post(self, request):
     serializer = GroupBaseSerializer(leader=request_get_user(request),
                                      data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=201)
 def get(self, request):
     user = request_get_user(request)
     group = user.attendGroups.all()
     serializer = myGroupInfoSerializer(group, many=True)
     return Response(serializer.data)