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')
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)
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}')
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))
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)
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')
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
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
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)
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
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")
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()
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)
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)
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")
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")
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)
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)
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()
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)
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)
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()
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']
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()
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')
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')
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")
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')
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)
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)