Exemple #1
0
def processa(ses, args):

    # Determina se o usuário corrente {usr_ses} é administrador:
    if ses is None:
        usr_ses = None
        admin = False
    else:
        usr_ses = sessao.obtem_usuario(ses)
        assert usr_ses is not None
        admin = usuario.obtem_atributos(usr_ses)['administrador']

    id_usr = args["id_usuario"] if "id_usuario" in args else None
    assert id_usr is not None, "id_usuario obrigatório para atualizar"

    usr = usuario.busca_por_identificador(id_usr)

    # Tenta editar o usuário:
    try:
        if usr == None: raise ErroAtrib("esse usuário não existe")

        atrs_muda = args.copy()
        del atrs_muda["id_usuario"]
        usuario.confere_e_elimina_conf_senha(atrs_muda)

        usuario.muda_atributos(usr, atrs_muda)

        # Mostra de novo a página de alterar com dados novos:
        args_novos = usuario.obtem_atributos(usr)
        pag = html_pag_usuario.gera(ses, usr, args_novos, None)
    except ErroAtrib as ex:
        erros = ex.args[0]
        # Repete a página de cadastrar com os mesmos argumentos e mens de erro:
        pag = html_pag_usuario.gera(ses, usr, args, erros)
    return pag
def processa(ses, args):
    usr_ses = None if ses == None else sessao.obtem_usuario(ses)
    # Tenta criar o usuário:
    try:
        usuario.confere_e_elimina_conf_senha(args)
        usr = usuario.cria(args)
        pag = html_pag_login.gera(ses, None)
    except ErroAtrib as ex:
        erros = ex.args[0]
        # Repete a página de cadastrar com os mesmos argumentos e mens de erro:
        pag = html_pag_usuario.gera(ses, None, args, erros)
    return pag
Exemple #3
0
def processa(ses, args):
    usr_ses = None if ses == None else sessao.obtem_usuario(ses)
    assert sessao.eh_administrador(
        ses)  # O dono da sessão deve ser administrador.
    try:
        if not 'id' in args:
            pag = html_pag_mensagem_de_erro.gera(
                ses, 'É necessário adicionar um ID para pesquisar.')
            return pag

        id = args['id']
        if len(id) != 10:
            raise ErroAtrib("O identificador \"" + id + "\" é inválido")

        letra = id[0]
        if letra == "U":
            usr = usuario.busca_por_identificador(id)
            if usr == None:
                raise ErroAtrib("Não existe usuário com identificador " + id)
            usr_atrs = usuario.obtem_atributos(usr)
            usr_atrs['id_usuario'] = usuario.obtem_identificador(usr)
            pag = html_pag_usuario.gera(ses, usr, usr_atrs, None)
        elif letra == "C":
            cpr = compra.busca_por_identificador(id)
            if cpr == None:
                raise ErroAtrib(
                    "Não existe pedido de compra com identificador" + id)
            pag = html_pag_compra.gera(ses, cpr, None, None)
        elif letra == "T":
            trc = trecho.busca_por_identificador(id)
            if trc == None:
                raise ErroAtrib(
                    "Não existe trecho de viagem com identificador" + id)
            pag = html_pag_trecho.gera(ses, trc, None, None)
        elif letra == "S":
            ses_a_ver = sessao.busca_por_identificador(id)
            if ses_a_ver == None:
                raise ErroAtrib("Não existe sessão com identificador" + id)
            pag = html_pag_sessao.gera(ses, ses_a_ver, None)
        elif letra == "A":
            pol = poltrona.busca_por_identificador(id)
            if pol == None:
                raise ErroAtrib("Não existe poltrona com identificador" + id)
            pag = html_pag_poltrona.gera(ses, pol, None, None)
        else:
            raise ErroAtrib("Classe de objeto \"" + letra + "\" inválida")
    except ErroAtrib as ex:
        erros = ex.args[0]
        return html_pag_mensagem_de_erro.gera(ses, erros)
    return pag
def processa(ses, args):
    if ses == None or not sessao.aberta(ses):
        erro_prog("sessão deveria estar aberta")
    else:
        usr_ses = sessao.obtem_usuario(ses)
        admin = usuario.obtem_atributo(usr_ses, 'administrador')

    if args == {} or args['id_usuario'] == None:
        # O 'id_usuario' nao foi especificado; supõe que é o dono da sessao:
        usr = usr_ses
        id_usr = usuario.obtem_identificador(usr)
    elif args['id_usuario'] != None:
        # O 'id_usuario' foi especificado; obtém dados do do dito cujo.
        id_usr = args['id_usuario']
        usr = usuario.busca_por_identificador(id_usr)
    else:
        erro_prog("usuário não identificado")

    atrs = usuario.obtem_atributos(usr)
    pag = html_pag_usuario.gera(ses, usr, atrs, None)
    return pag
def processa(ses, args):
    usr_ses = None if ses == None else sessao.obtem_usuario(ses)
    pag = html_pag_usuario.gera(ses, None, None, None)
    return pag