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
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