コード例 #1
0
    def mutate(self, info: ResolveInfo, admin_id: str, board_id: str):
        success = False

        user = get_user_by_context(info.context)

        if BoardModel.objects.filter(id=map_id(board_id)).exists():
            board = BoardModel.objects.get(id=map_id(board_id))

            if not UserModel.objects.filter(id=map_id(admin_id)).exists():
                raise exceptions.ObjectDoesNotExist(
                    'Cannot entitle user to become admin, that does not exist')

            would_be_admin = UserModel.objects.get(id=map_id(admin_id))

            if (user not in board.admins):
                raise exceptions.PermissionDenied(
                    'User has no permissions to give somebody administrative privileges'
                )

            if (would_be_admin in board.admins
                    or would_be_admin is board.maker):
                raise exceptions.SuspiciousOperation(
                    'User is already board admin, it\'s kinda sus')

            board.admins.add(would_be_admin)
            board.save()
            success = True

            return AddAdmin(board=board, success=success)
        else:
            raise exceptions.ObjectDoesNotExist(
                'Cannot add admin to board that does not exist')
コード例 #2
0
    def mutate(self, info, list_id: str):
        if not ListModel.objects.filter(id=map_id(list_id)).exists():
            raise exceptions.ObjectDoesNotExist('Provided list does not exist')

        user = get_user_by_context(info.context)
        originalList = ListModel.objects.get(id=map_id(list_id))
        board = originalList.board
        board.check_user(user, "User is not allowed to modify old board")

        # update positions of other lists on board
        for eachList in board.lists.all():
            if eachList.position_on_board > originalList.position_on_board:
                eachList.position_on_board = eachList.position_on_board + 1
                eachList.save()

        copiedList = ListModel(
            title=originalList.title,
            board=originalList.board,
            position_on_board=originalList.position_on_board + 1,
            is_hidden=originalList.is_hidden)
        copiedList.save()

        for originalCard in originalList.cards.all():
            newCard = originalCard.copy_without_id()
            newCard.list = copiedList
            newCard.save()

        return MoveList(copiedList)
コード例 #3
0
ファイル: models.py プロジェクト: kelwys/SME-Terceirizadas
    def cancel(self, user):
        cancelamento_dict = get_object_as_dict(self)
        num_solicitacao = cancelamento_dict.get('StrNumSol')
        guias = cancelamento_dict.get('guias')

        if isinstance(guias, list):
            guias_payload = [x['StrNumGui'] for x in guias]
        else:
            guias_payload = [x['StrNumGui'] for x in guias.values()]

        try:
            solicitacao = SolicitacaoRemessa.objects.get(
                numero_solicitacao=num_solicitacao)

        except exceptions.ObjectDoesNotExist:
            raise exceptions.ObjectDoesNotExist('Solicitacão não encontrada.')

        solicitacao.guias.filter(numero_guia__in=guias_payload).update(
            status=SolicitacaoRemessaWorkFlow.PAPA_CANCELA)

        guias_existentes = list(
            solicitacao.guias.values_list('numero_guia', flat=True))
        existe_guia_nao_cancelada = solicitacao.guias.exclude(
            status=GuiaModel.STATUS_CANCELADA).exists()

        if set(guias_existentes) == set(
                guias_payload) or not existe_guia_nao_cancelada:
            solicitacao.cancela_solicitacao(user=user)
        else:
            solicitacao.salvar_log_transicao(
                status_evento=LogSolicitacoesUsuario.PAPA_CANCELA_SOLICITACAO,
                usuario=user,
                justificativa=f'Guias canceladas: {guias_payload}')
コード例 #4
0
 def validate_username(self, username):
     try:
         query_set = self.objects.get(username=username)
         return True
     except exceptions.ObjectDoesNotExist as err:
         raise exceptions.ObjectDoesNotExist(
             "No username '{}' exists in database.".format(username))
コード例 #5
0
    def mutate(self, info: ResolveInfo, card_id: str, content: str, **kwargs):
        user = get_user_by_context(info.context)
        type_val = kwargs.get('type_val', None)
        created_on = kwargs.get('created_on', None)
        type_val = type_val if type_val is not None else ActivityTypeEnum.ACTIVITY_LOG_VAL
        if not CardModel.objects.filter(id=map_id(card_id)):
            return exceptions.ObjectDoesNotExist(
                "Provided card does not exist")
        if not ActivityTypeEnum.is_viable_enum(type_val):
            return exceptions.FieldError(
                "type_val is not a viable ActivityType value")

        card = CardModel.objects.get(id=map_id(card_id))
        card.list.board.check_user(user,
                                   "User is not allowed to modify this board")
        if created_on is None:
            activity = ActivityModel(
                card=card,
                user=user,
                content=content,
                type=type_val,
            )
        else:
            activity = ActivityModel(
                card=card,
                user=user,
                content=content,
                created_on=created_on,
                type=type_val,
            )
        activity.save()
        return CreateActivity(activity=activity)
コード例 #6
0
 def get_access_token(self, user_id=None, access_token=None):
     if user_id:
         return Token.objects.get(user_id=user_id)
     elif access_token:
         return Token.objects.get(access_token=access_token)
     raise django_exc.ObjectDoesNotExist(
         'access token object does not exists')
コード例 #7
0
ファイル: models.py プロジェクト: kelwys/SME-Terceirizadas
    def create(self):
        data = get_object_as_dict(self)
        distribuidor = None
        cnpj = data.get('StrCnpj')
        guias = data.pop('guias', [])
        data.pop('IntSeqenv', None)
        data.pop('IntTotVol', None)

        try:
            distribuidor = Terceirizada.objects.get(cnpj=cnpj,
                                                    eh_distribuidor=True)
            data['distribuidor'] = distribuidor
        except exceptions.ObjectDoesNotExist:
            raise exceptions.ObjectDoesNotExist(
                'Não existe distribuidor cadastrado com esse cnpj')

        try:
            solicitacao = SolicitacaoRemessa.objects.create_solicitacao(**data)

        except IntegrityError as e:
            if 'unique constraint' in str(e):
                error = str(e)
                msg = error.split('Key')
                raise IntegrityError('Solicitação duplicada:' + msg[1])
            raise IntegrityError('Erro ao salvar Solicitação.')

        Guia().create_many(guias, solicitacao)

        return solicitacao
コード例 #8
0
ファイル: utils.py プロジェクト: vikram7599/BAT
def get_project(name):
    try:
        p = Project.objects.get(name=name)
    except:
        raise e.ObjectDoesNotExist("Project '%s' does not exist. Create it first." % project_name)

    return p
コード例 #9
0
    def mutate(self, info: ResolveInfo, label_id: str):
        user = get_user_by_context(info.context)
        if not LabelModel.objects.filter(id=map_id(label_id)).exists():
            raise exceptions.ObjectDoesNotExist(
                "Provided label does not exist")

        label = LabelModel.objects.get(id=map_id(label_id))
        board = label.board

        if board is None:
            raise exceptions.ObjectDoesNotExist(
                "Provided board does not exist")

        board.check_user(user, "User is not allowed to modify this board")

        label.delete()
        return DeleteLabel(success=True)
コード例 #10
0
def get_countries(code=""):
    if code:
        country = [country for country in COUNTRIES if country["code"] == code]
        if country:
            return country[0]
        raise exceptions.ObjectDoesNotExist(
            f"'{code}' is not a valid country.")
    return COUNTRIES
コード例 #11
0
    def mutate(self, info: ResolveInfo, card_id: str, **kwargs):
        # user = get_user_by_context(info.context)
        title = kwargs.get('title', None)
        description = kwargs.get('description', None)
        list_id = kwargs.get('list_id', None)
        archived = kwargs.get('archived', None)
        due_date = kwargs.get('due_date', None)
        position_in_list = kwargs.get('position_in_list', None)
        cover = kwargs.get('cover', None)

        if CardModel.objects.filter(id=map_id(card_id)).exists():
            user = get_user_by_context(info.context)
            card = CardModel.objects.get(id=map_id(card_id))
            card.list.board.check_user(
                user, 'User have no permission to update this board')
            listdb: ListModel = None

            if list_id is not None and ListModel.objects().filter(
                    id=map_id(list_id)).exists():
                listdb = ListModel.objects().get(id=map_id(list_id))
            elif list_id is not None:
                raise exceptions.ObjectDoesNotExist(
                    'Provided list does not exist')

            # listdb.board.check_user(user, "User is not allowed to modify this board")
            card.edit(
                title=title,
                description=description,
                listdb=listdb,
                archived=archived,
                due_date=due_date,
                position_in_list=position_in_list,
                cover=cover,
            )
            activityContent = user.name + " " + user.last_name + " edited card in list " + card.list.title
            activity = ActivityModel(card=card,
                                     user=user,
                                     content=activityContent,
                                     type=ActivityTypeEnum.ACTIVITY_LOG_VAL)
            activity.save()
            card.save()
            return EditCard(card=card, success=True)
        else:
            raise exceptions.ObjectDoesNotExist("Provided card does not exist")
コード例 #12
0
    def resolve_labels(self, info: ResolveInfo, boardId: str, **kwargs):
        print(info.path)

        if not BoardModel.objects.filter(id=map_id(boardId)).exists():
            raise exceptions.ObjectDoesNotExist(
                "Provided board does not exist")

        board = BoardModel.objects.get(id=boardId)

        return LabelModel.objects.filter(board=board).all()
コード例 #13
0
    def mutate(self, info: ResolveInfo, list_id: str):
        if not ListModel.objects.filter(id=map_id(list_id)).exists():
            raise exceptions.ObjectDoesNotExist('Provided list does not exist')

        user = get_user_by_context(info.context)
        list = ListModel.objects.get(id=map_id(list_id))
        board = list.board
        board.check_user(user, "User is not allowed to modify this board")
        list.hide()
        list.save()
        return HideList(list=list)
コード例 #14
0
    def mutate(self, info, user_id: str, email: str, name: str, last_name: str):
        if not UserModel.objects.filter(id=map_id(user_id)):
            raise exceptions.ObjectDoesNotExist('Provided user does not exist')

        user = get_user_by_context(info.context)

        user.name = name if name is not None else user.name
        user.last_name = last_name if last_name is not None else user.last_name
        user.email = email if email is not None else user.email
        user.save()

        return EditProfile(user=user)
コード例 #15
0
    def mutate(self, info: ResolveInfo, boardId: str, visibility: bool):
        if BoardModel.objects.filter(id=map_id(boardId)).exists():
            board: BoardModel = BoardModel.objects.get(id=map_id(boardId))
            user = get_user_by_context(info.context)

            board.check_user_update(
                user=user, message='User has no permissions to update board')
            board.is_visible = visibility
            board.save()
            board.save()
            return ChangeBoardVisibility(board=board)
        return exceptions.ObjectDoesNotExist("Given board does not exist")
コード例 #16
0
    def mutate(self, info: ResolveInfo, card_id: str):
        user = get_user_by_context(info.context)

        if CardModel.objects.filter(id=map_id(card_id)).exists():
            card = CardModel.objects.get(id=map_id(card_id))
            listdb = card.list
            listdb.board.check_user(
                user, "User is not allowed to modify this board")
            card.delete()
            return DeleteCard(card=card, success=True)
        else:
            raise exceptions.ObjectDoesNotExist("Provided card does not exist")
コード例 #17
0
    def mutate(self, info: ResolveInfo, name: str, color: str, label_id: str):
        user = get_user_by_context(info.context)
        if not LabelModel.objects.filter(id=map_id(label_id)).exists():
            raise exceptions.ObjectDoesNotExist(
                "Provided label does not exist")

        label = LabelModel.objects.get(id=map_id(label_id))
        board = label.board

        if board is None:
            raise exceptions.ObjectDoesNotExist(
                "Provided board does not exist")

        board.check_user(user, "User is not allowed to modify this board")

        label.color = color if color is not None else label.color
        label.name = name if name is not None else label.name

        label.save()

        return EditLabel(label=label)
コード例 #18
0
    def resolve_activitysByCard(self, info: ResolveInfo, cardId: str,
                                **kwargs):
        if not CardModel.objects.filter(id=map_id(cardId)).exists():
            return exceptions.ObjectDoesNotExist(
                "Provided card does not exist")
        user = get_user_by_context(info.context)

        card = CardModel.objects.get(id=map_id(cardId))
        card.list.board.check_user(
            user,
            "User is not allowed to even LOOK at this board. Get him outa here"
        )
        return ActivityModel.objects.filter(card=card)
コード例 #19
0
def copy_item_to_cart(request, item_id):
    """
    Copy an item from the active wishlist to the cart.
    """
    wishlist = get_or_create_wishlist(request)
    items = WishlistItem.objects.filter(wishlist=wishlist, pk=item_id)
    if not items.exists():
        raise exceptions.ObjectDoesNotExist('This item is not member of the active wishlist')
    product = items[0].product
    variation = items[0].variation
    cart = get_or_create_cart(request)
    cart.add_product(product, 1, variation)
    cart.save()
コード例 #20
0
    def mutate(self, info: ResolveInfo, name: str, color: str, board_id: str):
        user = get_user_by_context(info.context)
        if not BoardModel.objects.filter(id=map_id(board_id)).exists():
            raise exceptions.ObjectDoesNotExist(
                "Provided board does not exist")

        board = BoardModel.objects.get(id=map_id(board_id))
        board.check_user(user, "User is not allowed to modify this board")

        label = LabelModel(name=name, color=color, board=board)
        label.save()

        return CreateLabel(label=label)
コード例 #21
0
    def mutate(self, info, list_id: str, new_board_id: str,
               new_position_on_board: int):
        if not ListModel.objects.filter(id=map_id(list_id)).exists():
            raise exceptions.ObjectDoesNotExist('Provided list does not exist')
        if not BoardModel.objects.filter(id=map_id(new_board_id)).exists():
            raise exceptions.ObjectDoesNotExist(
                'Providede new board does not exist')

        user = get_user_by_context(info.context)
        listModel = ListModel.objects.get(id=map_id(list_id))
        old_board = listModel.board
        old_board.check_user(user, "User is not allowed to modify old board")

        new_board = BoardModel.objects.get(id=map_id(new_board_id))
        new_board.check_user(user, "User is not allowed to modify new board")

        # update positions of other lists on old board
        old_position_on_board = listModel.position_on_board
        for eachList in old_board.lists.all():
            if eachList.position_on_board >= old_position_on_board:
                eachList.position_on_board = eachList.position_on_board - 1
                eachList.save()

        # if new_position_on_board is greater than number of lists already on board
        # than new_position_on_board is truncated to this number
        if new_position_on_board > len(new_board.lists):
            new_position_on_board = len(new_board.lists)

        # update positions of other lists on new board
        for eachList in new_board.lists.all():
            if eachList.position_on_board >= new_position_on_board:
                eachList.position_on_board = eachList.position_on_board + 1
                eachList.save()

        listModel.board = new_board
        listModel.position_on_board = new_position_on_board
        listModel.save()
        return MoveList(listModel)
コード例 #22
0
def rename_active_wishlist(request, name):
    """
    Rename the active wishlist.
    """
    if hasattr(request, '_wishlist'):
        wishlist = getattr(request, '_wishlist')
    else:
        active_wishlist = request.session.get('active_wishlist')
        if not active_wishlist:
            raise exceptions.ObjectDoesNotExist('No active wishlist for this session')
        wishlist = Wishlist.objects.get(pk=active_wishlist)
        setattr(request, '_wishlist', wishlist)
    wishlist.name = name
    wishlist.save()
コード例 #23
0
def delete_active_wishlist(request):
    """
    Deletes the active wishlist together with all stored items.
    """
    if hasattr(request, '_wishlist'):
        wishlist = getattr(request, '_wishlist')
        delattr(request, '_wishlist')
    else:
        active_wishlist = request.session.get('active_wishlist')
        if not active_wishlist:
            raise exceptions.ObjectDoesNotExist('No active wishlist for this session')
        wishlist = Wishlist.objects.get(pk=active_wishlist)
    Wishlist.objects.get(pk=wishlist.id).delete()
    del request.session['active_wishlist']
コード例 #24
0
ファイル: models.py プロジェクト: SpeedProg/standingsrequests
 def get_standing_for_id(self, contact_id, contact_type):
     """
     Attempts to fetch the standing for the given ID and type
     :param contact_id: Integer contact ID
     :param contact_type: Integer contact type from the contactTypes attribute in concrete models
     :return: concrete contact Object or ObjectDoesNotExist exception
     """
     if contact_type in PilotStanding.contactTypes:
         return self.pilotstanding_set.get(contactID=contact_id)
     elif contact_type in CorpStanding.contactTypes:
         return self.corpstanding_set.get(contactID=contact_id)
     elif contact_type in AllianceStanding.contactTypes:
         return self.alliancestanding_set.get(contactID=contact_id)
     raise exceptions.ObjectDoesNotExist()
コード例 #25
0
    def mutate(self, info: ResolveInfo, board_id: str):
        board = None

        user = get_user_by_context(info.context)

        if BoardModel.objects.filter(id=map_id(board_id)).exists():
            board: BoardModel = BoardModel.objects.get(id=map_id(board_id))
            board.check_user_update(
                user=user, message='User has no permission to close the board')
            board.close()
            board.save()
            return CloseBoard(board=board)
        else:
            raise exceptions.ObjectDoesNotExist(
                'Cannot close board that does not exist')
コード例 #26
0
 def mutate(self,
            info,
            list_id: str,
            title: str = None,
            position_on_board: int = None):
     if ListModel.objects.filter(id=map_id(list_id)).exists():
         list = ListModel.objects.get(id=map_id(list_id))
         user = get_user_by_context(info.context)
         board = list.board
         board.check_user(user, "User is not allowed to modify this board")
         list.title = title if title is not None else list.title
         list.position_on_board = position_on_board if position_on_board is not None else list.position_on_board
         list.save()
         return UpdateList(list=list)
     return exceptions.ObjectDoesNotExist('Provided list does not exist')
コード例 #27
0
    def mutate(self, info, board_id: str, title: str, description: str,
               background: str):
        if BoardModel.objects.filter(id=map_id(board_id)).exists():
            board: BoardModel = BoardModel.objects.get(id=map_id(board_id))
            user = get_user_by_context(info.context)

            board.check_user_update(
                user=user, message='User has no permissions to update board')

            board.title = title if title is not None else board.title
            board.description = description if description is not None else board.description
            board.background = background if background is not None else board.background
            board.save()
            return UpdateBoard(board=board)
        return exceptions.ObjectDoesNotExist("Given board does not exist")
コード例 #28
0
    def mutate(self, info: ResolveInfo, board_id: str):
        success = False

        user = get_user_by_context(info.context)

        if BoardModel.objects.filter(id=map_id(board_id)).exists():
            board: BoardModel = BoardModel.objects.get(id=map_id(board_id))

            board.check_user_update(
                user=user,
                message="User has no permissions to delete the board")

            board.delete()
            success = True
            return DeleteBoard(board=board, success=success)
        else:
            raise exceptions.ObjectDoesNotExist(
                'Cannot delete board that does not exist')
コード例 #29
0
    def mutate(self, info: ResolveInfo, refresh_token: str):
        user = get_user_by_context(info.context)
        tkn = shortcuts.get_refresh_token(refresh_token, info.context)
        tkn.revoke()

        if(user is None):
            raise exceptions.ObjectDoesNotExist("User doesn't exist for computed payload")
        
        if user.hashed_pwd.startswith(crypto.UNUSABLE_PASSWORD_PREFIX): 
            raise exceptions.SuspiciousOperation("User's password is marked as unusable, it's kinda sus")

        payload = jwt_utils.decode_token(
            info.context.headers['Authorization'].replace('Bearer ','')
        )
        user.jtis.filter(value=payload['jti']).delete()
        user.jwt_salt = crypto.create_jwt_id()
        user.save(update_fields=["jwt_salt"])
        
        return LogoutUser(success=True)
コード例 #30
0
    def mutate(self, info: ResolveInfo, email: str):
        
        if(info.context.user.is_authenticated):
            raise exceptions.SuspiciousOperation("User is already logged in, it's kinda sus")
        
        if not (UserModel.objects.filter(email=email).exists()):
            raise exceptions.ObjectDoesNotExist('User does not exist')

        user = UserModel.objects.filter(email=email).get()
        user.set_unusable_password()

        jti = user.jtis.create(value=crypto.create_jwt_id())
        user.jwt_salt = jti.value
        
        user.save()

        token = shortcuts.get_token(user, info.context)

        return ForgetPasswordRequest(forget_token=token)