def globalUser(self): """ Este metodo se usa para crear o modificar una pagina en espacifico variables a parasar por data repeate, plantillas, categorias, post, pagina, boxes,titulo """ from modulos.ztec.zred import normalizar,redirecter if self.data["ajax"]==False: if self.data["action"]=="editar": self.data["repeate"]=1 self.data["plantillas"]=self.data["model"]["main"].obtenerFilas("Plantillas") keys=self.data["args"][0] i=normalizar(self.data["args"][0]) self.data["categorias"]={} self.data["titulo"]=self.data["metodo"] if i!=None: self.data["categorias"]={} self.data["titulo"]=self.data["model"]["global"].obtenerFilas("Usuarios")[i][0] self.data["layout"]=self.data["titulo"] self.data["post"]=str(i) self.data["pagina"]="{'pagina':'"+self.data["titulo"]+"'}" l1=self.data["model"]["global"].obtenerFilas("Usuarios")[i][1] self.data["boxes"]=[l1] else: self.data["titulo"]="Agregar nuevo usuario" self.data["boxes"]=self.data["model"]["global"].obtenerEstructura("Usuarios")[1] self.servir() elif self.data["action"]=="save": #self.HEADERS.set_headers({"Content-type":"text/plain\n"}) self.HEADERS.show() if self.data["args"][0]!=None: self.data["model"]["global"].modificarUsuario(self.data["args"][0], self.data["request"]["usuario"].value, self.data["request"]["email"].value, self.data["request"]["password"].value, self.data["request"]["avatar"].value, self.data["request"]["permisologia"].value, hours=4) redirecter(config,settings.app,"admin","Usuarios",action="listar")() else: self.data["model"]["global"].registrarUsuario(self.data["request"]["usuario"].value, self.data["request"]["email"].value, self.data["request"]["password"].value, self.data["request"]["avatar"].value, self.data["request"]["permisologia"].value, hours=4) redirecter(config,settings.app,"admin","Usuarios",action="listar")()
def Plantilla(self): """ Este metodo se usa para crear o modificar una pagina en espacifico """ from modulos.ztec.zred import normalizar self.HEADERS.show() if self.data["ajax"] == False: if self.data["action"] == "editar": self.data["repeate"] = 1 self.data["plantillas"] = self.data["model"][ "main"].obtenerFilas("Plantillas") keys = self.data["args"][0] i = normalizar(self.data["args"][0]) self.data["categorias"] = {} self.data["titulo"] = self.data["metodo"] if i != None: self.data["categorias"] = {} self.data["titulo"] = self.data["model"][ "archivos"].obtenerFilas("Archivos")[i][0] l1 = self.data["model"]["archivos"].obtenerFilas("Archivos")[i][1] self.data["boxes"] = [l1] else: data["titulo"] = "Subir nuevo archivo" data["boxes"] = data["model"]["archivos"].obtenerEstructura( "Archivos") self.servir()
def Eliminar(self): l = [] from modulos.ztec.zred import normalizar self.HEADERS.set_headers({"Content-type": "text/plain"}) self.HEADERS.show() for elem in self.data["marcados"]: l.append(elem) modelos = self.data["model"]["main"].obtenerFilas( 'Tablas,args>Modelos')[0][0] tablas = self.data["model"]["main"].obtenerFilas('args>Tablas')[0][0] for c, elem in enumerate(self.data["marcados"]): while c < len(l): if normalizar(l[c]) == True: self.data["model"][modelos[self.data["metodo"]]].eliminar( c, tablas[self.data["metodo"]] if self.data["metodo"] in tablas else self.data["metodo"]) del l[c] c = 0 else: c += 1 data = {} lista = self.data["model"][modelos[self.data["metodo"]] if self. data["metodo"] in modelos else self. data["metodo"]].obtenerFilas( self.data["metodo"]) for k, elem in enumerate(lista): del lista[k][1] data["listar"] = lista data["ajax-data"] = str({ "action": "listar", "args": self.data["args"], "pag-action": None }) data[ "baseAction"] = "app=" + settings.app + "&admin=True&vista=index&args=" + str( self.data["args"]) data["titulo"] = self.data["metodo"] data["filtrar"] = ["Todas las fechas", "Septiembre 2014"] data["addNew"] = 'Añadir nuevo' data["n-pag"] = 5 data['campos'] = ["Titulo", "Fecha"] data['app'] = settings.app data['vista'] = "index" data["action"] = self.data["action"] data["beforeAction"] = "listar" data["acciones"] = { "Acciones en lote": "marcar", "Editar": "editar", "Mover a la papelera": "eliminar" } print data
def Entrada(self): """ Este metodo se usa para crear o modificar una pagina en espacifico """ from modulos.ztec.zred import normalizar,gringolizar if self.data["ajax"]==False: if self.data["action"]=="editar": #self.HEADERS.set_headers({"Content-type":"text/plain\n"}) self.HEADERS.show() self.data["repeate"]=1 self.data["plantillas"]=self.data["model"]["main"].obtenerFilas("Plantillas") keys=self.data["args"][0] i=normalizar(self.data["args"][0]) self.data["categorias"]={} self.data["titulo"]=self.data["metodo"] if i!=None: self.data["categorias"]={} tabla=self.data["model"]["paginas"].obtenerFilas("Entradas")[i] self.data["titulo"]=tabla[0] self.data["meta-layout"]=self.data["model"]["paginas"].exportarMetadato(tabla[4],"layout") self.data["meta-control"]=self.data["model"]["paginas"].exportarMetadato(tabla[4],"control") self.data["post"]=gringolizar(self.data["titulo"],"-") self.data["control-post"]="Blog" l1=self.data["model"]["paginas"].obtenerFilas("Entradas")[i][1] self.data["boxes"]=[l1] else: self.data["titulo"]="Crea una nueva entrada" self.data["layout"]=self.data["titulo"] self.data["post"]=gringolizar(self.data["titulo"],"-") self.data["control-post"]="Inicio" self.data["boxes"]=[self.data["model"]["paginas"].obtenerEstructura("Entradas")[1]] modelos=self.data["model"]["main"].obtenerFilas('Tablas,args>Modelos')[0][0] tablas=self.data["model"]["main"].obtenerFilas('args>Tablas')[0][0] self.data["vars"]["modelos"]=modelos self.data["vars"]["opciones"]=self.data["model"][modelos[self.data["metodo"]]].obtenerFilas('Opciones') self.data["vars"]["Tablas"]=tablas self.servir() elif self.data["action"]=="save": #self.HEADERS.set_headers({"Content-type":"text/plain\n"}) self.HEADERS.show() if self.data["args"][0]!=None: self.data["model"]["paginas"].modificarEntrada(self.data["args"][0],self.data["request"],self.data["metadatos"]) redirecter(config,settings.app,"admin","Entrada",str(self.data["args"][0]),action="editar")() else: self.data["model"]["paginas"].crearEntrada(self.data["request"],self.data["metadatos"]) redirecter(config,settings.app,"admin","Entrada","None",action="editar")()
def Registrarse(self): try: self.data["model"]["usuarios" if self.data["isGlobalUser"] == False else "global"].registrarUsuario( self.data["request"]["usuario"]["value"], data["email"].value, self.data["request"]["password"].value, self.data["opciones"]["archivos"][1] [1].index(data["avatar"].value), self.data["opciones"] ["usuarios" if self.data["isGlobalUser"] == False else "global"][0][1].index( data["permisologia"].value)) token = self.data[ "model"]["usuarios" if self.data["isGlobalUser"] == False else "global"].login( self.data["request"]["email"].value, self.data["request"]["password"].value) #pendiente que de momento trabajamos solo con la cookie token cookies = getCookie() folder = os.getcwd().replace("\\", "/").split("/")[-2] if self.data["isGlobalUser"] == False: if "token" in cookies: tokens = normalizar(cookies["token"]) else: tokens = {} tokens[settings.app] = token cookie["token"] = tokens cookie["token"]["path"] = "/" + ( folder if folder != config.host_folder else "") else: cookie["token2"]["path"] = "/" + ( folder if folder != config.host_folder else "") #print "token="+str(tokens)[1:-1].replace("'","").replace('"',"").replace(" ","") print cookie HEADERS.show() contenttype = True redirecter(config, self.data["app"], "admin", "")() except Exception, e: print str(e)[1:-1]
def Formulario(self): """ Este metodo se usa para crear o modificar una pagina en espacifico """ from modulos.ztec.zred import normalizar,redirecter self.HEADERS.show() if self.data["ajax"]==False: if self.data["action"]=="editar": self.data["repeate"]=1 self.data["plantillas"]=self.data["model"]["main"].obtenerFilas("Plantillas") keys=self.data["args"][0] i=normalizar(self.data["args"][0]) self.data["categorias"]={} self.data["titulo"]=self.data["metodo"] if i!=None: self.data["categorias"]={} self.data["titulo"]=self.data["model"]["formularios"].obtenerFilas("Formularios")[i][0] self.data["layout"]=self.data["titulo"] self.data["post"]=str(i) self.data["pagina"]="{'pagina':'"+self.data["titulo"]+"'}" l1=self.data["model"]["formularios"].obtenerFilas("Formularios")[i][1] self.data["boxes"]=[l1] else: self.data["titulo"]="Subir nuevo archivo" self.data["boxes"]=self.data["model"]["formularios"].obtenerEstructura("Formularios")[1] self.servir() elif self.data["action"]=="save": self.data["model"]["formularios"].modificarFormulario(self.data["args"][0],self.data["request"]) redirecter(config,settings.app,"admin","Formulario",str(self.data["args"][0]),action="editar")() elif self.data["action"]=="post": """ Esta accion es registrada por el usuario y no por el administrador """ self.data["model"]["formularios"].registrarFormulario(self.data["indice"],self.data["tabla"],self.data["request"]) redirecter(config,settings.app,"")()
def Pagina(self): """ Este metodo se usa para crear o modificar una pagina en espacifico """ from modulos.ztec.zred import normalizar self.HEADERS.show() if self.data["ajax"] == False: if self.data["action"] == "editar": self.data["repeate"] = 1 self.data["plantillas"] = self.data["model"][ "main"].obtenerFilas("Plantillas") keys = self.data["args"][0] i = normalizar(self.data["args"][0]) self.data["categorias"] = {} self.data["titulo"] = self.data["metodo"] if i != None: self.data["categorias"] = {} self.data["titulo"] = self.data["model"][ "paginas"].obtenerFilas("Paginas")[i][0] self.data["layout"] = self.data["titulo"] self.data["post"] = str(i) self.data[ "pagina"] = "{'pagina':'" + self.data["titulo"] + "'}" l1 = self.data["model"]["paginas"].obtenerFilas( "Paginas")[i][1] self.data["boxes"] = [l1] else: data["titulo"] = "Subir nuevo archivo" data["boxes"] = data["model"][ "archivos"].obtenerEstructura("Archivos") self.servir() elif self.data["ajax"] == True: if self.data["action"] == "modificar-atributo": self.HEADERS.set_headers({"Content-type": "text/plain\n"}) self.data["model"]["paginas"].updatesMetas( self.data["request"]["args"][0], self.data["request"]["meta"], tabla="Paginas")
def Show(self): self.HEADERS.set_headers({"Content-type": "text/plain"}) self.HEADERS.show() from modulos.ztec.intervalor.control import generar2 import os if self.data["login"]: if "db" in normalizar(self.data["kwargs"]): """ Muestra contenido directamente desde la base de datos """ if "id" in normalizar(self.data["kwargs"]) and normalizar( self.data["kwargs"])["id"] != None: tabla = None for elem in list(self.data["model"]["main"].db.tablas): if len(self.data["model"]["main"].db.tablas[elem]) > 0: temp = self.data["model"]["main"].db( elem).obtenerFilaValores(0) if len(temp) > 2: if normalizar( self.data["kwargs"])["tabla"] == list( temp[2])[0]: tabla = elem if tabla != None: print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas(tabla)[ normalizar(self.data["kwargs"])["id"]] else: if normalizar(self.data["kwargs"])["tabla"] in list( self.data["model"]["main"].db.tablas): for elem in list(self.data["model"]["main"].db.tablas): if len(self.data["model"] ["main"].db.tablas[elem]) > 0: temp = self.data["model"]["main"].db( elem).obtenerFilaValores(0) if len(temp) > 2: if normalizar(self.data["kwargs"] )["tabla"] == list( temp[2])[0]: tabla = elem print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas( normalizar(self.data["kwargs"])["tabla"]) else: print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas( normalizar(self.data["kwargs"])["tabla"]) if len(self.data["args"]) > 2: """ Muestra el codigo de diseños, modelos y controladores """ if self.data["args"][0] == "layout": if self.data["args"][1] == "user": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] generar2( config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + "/".join(self.data["args"][2:]), config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py") f = open( config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py", "r") print f.read() f.close() else: print None elif self.data["args"][1] == "admin": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] generar2( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + "/".join(self.data["args"][2:]), config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py") f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py", "r") print f.read() f.close() else: print None elif self.data["args"][1] == "global": if os.path.exists(config.base_root + config.vistas_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.vistas_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.vistas_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] generar2( config.base_root + config.vistas_folder + "/".join(self.data["args"][2:]), config.base_root + config.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py") f = open( config.base_root + config.vistas_folder + (routes.templates_folder if self.data["args"][2] != routes.widgets_dir else "") + "/".join( self.data["args"][2:])[:-len(ext)] + "py", "r") print f.read() f.close() else: print None pass elif self.data["args"][0] == "controlador": if self.data["args"][1] == "user": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/user/" + routes.controller_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.controller_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/user/" + routes.controller_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": """ ext=self.data["args"][-1].split(".")[-1] generar2(config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:]),config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:])[:-len(ext)]+"py") f=open(config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:])[:-len(ext)]+"py","r") print f.read() f.close() """ else: print None elif self.data["args"][1] == "global": if os.path.exists(config.base_root + config.controller_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.controller_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.controller_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": """ ext=self.data["args"][-1].split(".")[-1] generar2(config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:]),config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:])[:-len(ext)]+"py") f=open(config.base_root+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"/".join(self.data["args"][2:])[:-len(ext)]+"py","r") print f.read() f.close() """ else: print None elif self.data["args"][0] == "plugins": if os.path.exists(config.base_root + config.plugins_folder + "/".join(self.data["args"][1:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.plugins_folder + "/".join( self.data["args"][1:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.plugins_folder + "/".join(self.data["args"][1:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] _ext = self.data[ "ext"] if "ext" in self.data else "py" generar2( config.base_root + config.plugins_folder + "/".join(self.data["args"][1:]), config.base_root + config.plugins_folder + "/".join(self.data["args"][1:])[:-len(ext)] + _ext) f = open( config.base_root + config.plugins_folder + "/".join(self.data["args"][1:])[:-len(ext)] + _ext, "r") print f.read() f.close() else: print None elif self.data["args"][0] == "modelo": if self.data["args"][1] == "admin": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] generar2( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join(self.data["args"][2:]), config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join( self.data["args"][2:])[:-len(ext)] + "py") f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder + "/".join( self.data["args"][2:])[:-len(ext)] + "py", "r") print f.read() f.close() else: print None elif self.data["args"][1] == "global": if os.path.exists(config.base_root + config.modelos_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.modelos_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.modelos_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] generar2( config.base_root + config.modelos_folder + "/".join(self.data["args"][2:]), config.base_root + config.modelos_folder + "/".join(self.data["args"][2:])[:-len(ext)] + "py") f = open( config.base_root + config.modelos_folder + "/".join(self.data["args"][2:])[:-len(ext)] + "py", "r") print f.read() f.close() else: print None elif self.data["args"][0] == "static": if self.data["args"][1] == "user": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] _ext = "py" if "ext" not in self.data else self.data[ "ext"] generar2( config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join(self.data["args"][2:]), config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join( self.data["args"][2:])[:-len(ext)] + _ext) f = open( config.base_root + config.apps_folder + settings.app + "/user/" + routes.static_folder + "/".join( self.data["args"][2:])[:-len(ext)] + _ext, "r") print f.read() f.close() else: print None elif self.data["args"][1] == "admin": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split( "." )[-1] if "ext" not in self.data else self.data[ "ext"] _ext = "py" if "ext" not in self.data else self.data[ "ext"] generar2( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join(self.data["args"][2:]), config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join( self.data["args"][2:])[:-len(ext)] + _ext) f = open( config.base_root + config.apps_folder + settings.app + "/admin/" + routes.static_folder + "/".join( self.data["args"][2:])[:-len(ext)] + _ext, "r") print f.read() f.close() else: print None elif self.data["args"][1] == "global": if os.path.exists(config.base_root + config.static_folder + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.static_folder + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.static_folder + "/".join(self.data["args"][2:]), "r") print f.read() f.close() elif self.data["action"] == "componer": ext = self.data["args"][-1].split(".")[-1] _ext = "py" if "ext" not in self.data else self.data[ "ext"] generar2( config.base_root + config.static_folder + "/".join(self.data["args"][2:]), config.base_root + config.static_folder + "/".join(self.data["args"][2:])[:-len(ext)] + _ext) f = open( config.base_root + config.static_folder + "/".join(self.data["args"][2:])[:-len(ext)] + _ext, "r") print f.read() f.close() else: print None elif self.data["args"][0] == "ajustes": if self.data["args"][1] == "admin": if os.path.exists(config.base_root + config.apps_folder + settings.app + "/admin/settings/" + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + config.apps_folder + settings.app + "/admin/settings/" + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + config.apps_folder + settings.app + "/admin/settings/" + "/".join(self.data["args"][2:]), "r") print f.read() f.close() else: print None elif self.data["args"][1] == "global": if os.path.exists(config.base_root + "config/" + "/".join(self.data["args"][2:])): if self.data["action"] == None or self.data[ "action"] == "router": print config.base_root + "config/" + "/".join( self.data["args"][2:]) if self.data["action"] == None or self.data[ "action"] == "incluir": f = open( config.base_root + "config/" + "/".join(self.data["args"][2:]), "r") print f.read() f.close() else: print None elif self.data["args"][0] == "path": if self.data["args"][1] == "admin": if self.data["args"][2] == "layouts": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder elif self.data["args"][2] == "widgets": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.vistas_folder + routes.widgets_folder elif self.data["args"][2] == "modelos": print config.base_root + config.apps_folder + settings.app + "/admin/" + routes.models_folder elif self.data["args"][1] == "user": if self.data["args"][2] == "layouts": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder elif self.data["args"][2] == "widgets": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.vistas_folder + routes.widgets_folder elif self.data["args"][2] == "controladores": print config.base_root + config.apps_folder + settings.app + "/user/" + routes.controller_folder else: self.HEADERS.show() print "None" pass
def __init__(self, data): from modulos.ztec import zu Login.__init__(self, data) self.isglobal = True #------------------------------------------------ #SECCION DE VARIABLES CONTRSTRUCTORAS self.data["creditos"] = self.data["model"]["global"].obtenerCreditos( settings.app)[settings.app] self.data["adminMenu"] = self.data["model"]["main"].obtenerAdminMenu() self.data["archivos"] = self.data["model"]["archivos"].obtenerFilas( "Archivos") self.data[ "actionbase"] = "app=" + settings.app + "&vista=index&admin=True" self.modelo = data["model"]["main"] self.data["licencias"] = config.licencias #------------------------------- #SECCION DE HOOKS self.data["hook1"] = [ ["listar", ["list"]], ["content", ["content"]], ["editar", ["edit"]], ["editar2", ["edit2"]], ["editar3", ["edit3"]], ["codear", ["edit2"]], ["plugins", ["gestor"]], ["plugin", ["plugin"]], ["post", ["post"]], ["update", ["update"]], ["allapps", ["gestor"]], ["menus", ["menus"]], ["explorar", ["explorar"]], ["download", ["download"]], ] self.data[ "base_url"] = config.base_url + config.apps_folder + settings.app + "/user/" #-------------------------------- #SECCION DE SELECCION DE VISTA if self.data["login"] == True: self.vista = "index" self.data["vars"]["login"] = True else: self.vista = "login" self.data["vars"]["login"] = False #-------------------------------- #SECCION DE ACCIONES if self.data["login"] == True: if self.data["action"] == "allapps": import os import urllib, urllib2 from modulos.ztec.zu import redict l = self.data["model"]["global"].obtenerFilas("apps") for k, elem in enumerate(l): if os.path.isdir("../" + config.apps_folder + elem[0]): l[k][1].append({ "Screenshot": "url", "name": "screenshot", "value": config.base_url + config.apps_folder + elem[0] + "/screenshot.png" }) data["items"] = l params = urllib.urlencode({ "global_control": "apps", "metodo": "allapps", "manager": True }) self.HEADERS.show() print config.asenzor_host f = urllib2.urlopen(config.asenzor_host, params) item = redict(normalizar(f.read())) data["items-destacadas"] = item["Destacada"] data["items-populares"] = item["Populares"] data["items-recientes"] = item["Recientes"] data["items-favoritos"] = item["Favoritos"] f.close() elif self.data["action"] == "plugins": import os import urllib, urllib2 from modulos.ztec.zu import redict l = self.data["model"]["global"].obtenerFilas("Plugins") l2 = self.data["model"]["main"].obtenerFilas("Plugins") for k, elem in enumerate(l): if os.path.isdir("../" + config.plugins_folder + elem[0]): l[k][1].append({ "Screenshot": "url", "name": "screenshot", "value": config.base_url + config.plugins_folder + elem[0] + "/screenshot.png" }) self.HEADERS.show() data["items"] = l params = urllib.urlencode({ "global_control": "plugins", "manager": True }) f = urllib2.urlopen(config.asenzor_host, params) item = redict(normalizar(f.read())) data["items-destacadas"] = item["Destacada"] data["items-populares"] = item["Popular"] data["items-recientes"] = item["Reciente"] data["items-favoritos"] = item["Favorita"] f.close() elif self.data["action"] == "editar2" or self.data[ "action"] == "codear": app = settings.app if list(self.data["kwargs"]) == ["Diseño"]: self.data["titulo"] = "Diseños" user = "******" + config.apps_dir + "/" + app + "/user/" + routes.vistas_folder admin = "../" + config.apps_dir + "/" + app + "/admin/" + routes.vistas_folder globales = config.base_root + config.vistas_folder self.data["trees"] = [ { "user": zu.treeFolder(user) }, { "admin": zu.treeFolder(admin) }, ] if self.data["isGlobalUser"]: self.data["trees"].append( {"global": zu.treeFolder(globales)}) self.data["excluir"] = ".py" elif list(self.data["kwargs"]) == ["Controlador"]: self.data["titulo"] = "Controles" user = "******" + config.apps_dir + "/" + app + "/user/" + routes.controller_folder globales = config.base_root + config.controller_folder self.data["trees"] = [ { "user": zu.treeFolder(user) }, ] if self.data["isGlobalUser"]: self.data["trees"].append( {"global": zu.treeFolder(globales)}) self.data["excluir"] = ".pyc" elif list(self.data["kwargs"]) == ["Modelo"]: self.data["titulo"] = "Modelos" admin = "../" + config.apps_dir + "/" + app + "/admin/" + routes.models_folder globales = config.base_root + config.modelos_folder self.data["trees"] = [ { "admin": zu.treeFolder(admin) }, ] if self.data["isGlobalUser"]: self.data["trees"].append( {"global": zu.treeFolder(globales)}) self.data["excluir"] = ".pyc" elif list(self.data["kwargs"]) == ["Script"]: self.data["titulo"] = "Scripts" user = "******" + config.apps_dir + "/" + app + "/user/" + routes.static_folder admin = "../" + config.apps_dir + "/" + app + "/admin/" + routes.static_folder globales = config.base_root + "static/" self.data["trees"] = [ { "user": zu.treeFolder(user) }, { "admin": zu.treeFolder(admin) }, ] if self.data["isGlobalUser"]: self.data["trees"].append( {"global": zu.treeFolder(globales)}) self.data["excluir"] = ".pyc" elif list(self.data["kwargs"]) == ["Ajustes"]: self.data["titulo"] = "Ajustes" admin = "../" + config.apps_folder + app + "/admin/" + config.settings_folder _global = "../config/" self.data["trees"] = [{ "admin": zu.treeFolder(admin), }] if self.data["isGlobalUser"]: self.data["trees"].append({ "global": zu.treeFolder(_global), }) self.data["excluir"] = ".pyc" elif list(self.data["kwargs"]) == ["Plugin"]: self.data["titulo"] = "Plugins" admin = config.base_root + config.plugins_folder self.data["trees"] = [{ "plugins": zu.treeFolder(admin), }] self.data["excluir"] = [".pyc"] self.data["renderTree"] = renderTree elif self.data["action"] == "editar": self.data["vars"]["opciones"] = self.data["opciones"] self.data["vars"]["Tablas"] = ["Usuarios", "Formularios"] self.data["vars"]["modelos"] = ["formularios"] self.data["vars"]["campos"] = ["formularios"] self.data["vars"]["boxes"] = [[{ "Titulo": "text", "name": "nombre", "value": "aaaa" }]] elif self.data["action"] == "personalizar": self.vista = "personalizar" self.data["vars"]["categorias"] = self.data["model"][ "archivos"].obtenerFilas("Opciones")[3][1] self.data["vars"]["tipos"] = self.data["model"][ "archivos"].obtenerFilas("Opciones")[4][1] self.servir()
def __init__(self): #==================================================================== self.HEADERS = Headers() self.data = {"ajax": False} self.vista = "error404" self.data.update(getRest(config)) import imp import cgi, cgitb cgitb.enable() data = cgi.FieldStorage() if (self.data["control"] == None and self.data['global_control'] == None and self.data['metodo'] == None and self.data['app'] == None and self.data['args'] == [] and self.data['request'] == {} and self.data['manager'] == False and self.data['ajax'] == False and self.data['kwargs'] == {} and self.data['action'] == None): self.data["app"] = config.default_app import os try: if type(data.value) == list: d = {} d2 = {} for elem in data.value: if elem.name == "app": if elem.value != "None" and elem.value != None: self.data[elem.name] = normalizar(elem.value) self.data["request"][elem.name] = elem else: if elem.name in d: d[elem.name].append(elem.value) d2[elem.name].append(elem) self.data[elem.name] = d[elem.name] self.data["request"][elem.name] = d2[elem.name] else: d[elem.name] = [elem.value] d2[elem.name] = [elem] self.data[elem.name] = normalizar(elem.value) self.data["request"][elem.name] = elem else: """ params=data.value.split("/")[-1].split("&") for elem in params: k,v=elem.split("=") self.data[k]=normalizar(v) self.data["request"][k]={"value":normalizar(v)} """ except Exception, e: if "action" not in data: self.data["action"] = None else: self.data["action"] = data["action"].value self.data["request"]["action"] = data["action"]
def Show(self): """ Este metodo se usa para mostrar datos planos en el framework """ if self.data["login"]: self.HEADERS.show() if "db" in normalizar(self.data["kwargs"]): if "id" in normalizar(self.data["kwargs"]) and normalizar( self.data["kwargs"])["id"] != None: tabla = None for elem in list(self.data["model"]["main"].db.tablas): if len(self.data["model"]["main"].db.tablas[elem]) > 0: temp = self.data["model"]["main"].db( elem).obtenerFilaValores(0) if len(temp) > 2: if normalizar( self.data["kwargs"])["tabla"] == list( temp[2])[0]: tabla = elem if tabla != None: print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas(tabla)[ normalizar(self.data["kwargs"])["id"]] else: if normalizar(self.data["kwargs"])["tabla"] in list( self.data["model"]["main"].db.tablas): for elem in list(self.data["model"]["main"].db.tablas): if len(self.data["model"] ["main"].db.tablas[elem]) > 0: temp = self.data["model"]["main"].db( elem).obtenerFilaValores(0) if len(temp) > 2: if normalizar(self.data["kwargs"] )["tabla"] == list( temp[2])[0]: tabla = elem print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas( normalizar(self.data["kwargs"])["tabla"]) else: print self.data["model"][normalizar( self.data["kwargs"])["db"]].obtenerFilas( normalizar(self.data["kwargs"])["tabla"]) if "path" in self.data["kwargs"] and ( self.data["user"]["permisologia"] == 0 or self.data["user"]["permisologia"] == 1): if self.data["kwargs"]["path"][0] == "admin": if self.data["kwargs"]["path"][1] == "Template": print config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/admin/" + routes.vistas_dir elif self.data["kwargs"]["path"][1] == "Widget": print config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/admin/" + routes.vistas_folder + routes.widgets_folder elif normalizar(self.data["kwargs"])["path"][0] == "user": if normalizar( self.data["kwargs"])["path"][1] == "Template": print config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/user/" + routes.vistas_dir elif normalizar( self.data["kwargs"])["path"][1] == "Widget": print config.base_root + ( config.apps_dir + "/" if self.dat["manager"] == False else config.projects_folder ) + settings.app + "/user/" + routes.vistas_folder + routes.widgets_folder elif self.data["kwargs"]["path"][0] == "Controlador": print config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/user/" + config.controller_folder elif self.data["kwargs"]["path"][0] == "Modelo": print config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/admin/" + routes.models_folder if list(normalizar(self.data["kwargs"])) == ["widget"]: import os if normalizar(self.data["kwargs"])["widget"].strip( ) + ".html" in os.listdir( config.base_root + config.apps_dir + "/" + settings.app + "/admin/" + routes.vistas_folder + routes.widgets_folder if normalizar( self.data["isglobal"]) == False else "../" + config.vistas_folder + "widgets/"): f = open( config.base_root + (config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder) + settings.app + "/admin/" + routes.vistas_folder + routes.widgets_folder + normalizar(self.data["kwargs"])["widget"].strip() + ".html" if normalizar(self.data["isglobal"]) == False else "../" + config.vistas_folder + "widgets/" + normalizar(self.data["kwargs"])["widget"].strip() + ".html", "r") print f.read() f.close() else: print None elif self.data["kwargs"] == { "Contacto": "*****@*****.**" }: print "data['Contactos']=" + str( modelo.obtenerContactos(self.data["kwargs"]["Contacto"])) elif len(list(self.data["kwargs"])) > 0 and list( self.data["kwargs"])[0] == "Controlador": try: f = open( config.base_root + (config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder) + settings.app + "/user/" + decode(self.data["kwargs"]["Controlador"]).strip() + ".py", "r") print "#" + config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/user/" + decode( self.data["kwargs"]["Controlador"]).strip() + ".py" print f.read() f.close() except Exception, e: print e elif len(list(self.data["kwargs"])) > 0 and list( self.data["kwargs"])[0] == "Modelo": try: f = open( config.base_root + (config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder) + settings.app + "/admin/" + decode(self.data["kwargs"]["Modelo"]).strip() + ".py", "r") print "#" + config.base_root + ( config.apps_dir + "/" if self.data["manager"] == False else config.projects_folder ) + settings.app + "/admin/" + decode( self.data["kwargs"]["Modelo"]).strip() + ".py" print f.read() f.close() except Exception, e: print e
def action(data,p):#manejador de los formularios sys.path.append(p["base_root"]+"../admin/") debug=False contenttype=False from config import config import settings.routes as routes import settings.config as settings import imp from modulos.ztec.zu import redict sys.path.append(p["base_root"]+"../admin/"+routes.libs_folder) sys.path.append(p["base_root"]+"../admin/"+routes.models_folder) errores=[] for elem in settings.libs_python: exec("import "+elem,locals()) import modulos.ztec.zu as zu import ztec.zred as zred from modulos.ztec.zred import clienteSock,getCookie,setCookie, redirecter,decode,normalizar,encode,Headers HEADERS=Headers() if p["method"]=="ajax": HEADERS.set_headers({"Content-type":"text/plain"}) #============================================================================== #INICIALIZACION DE LOS MODELOS if "model" not in p: p["model"]={} if "opciones" not in p: p["opciones"]={} contenido=p["model"]["global"].obtenerContenido(p["app"],"apps")[p["app"]] p["model"]["global"].p=p p["model"]["usuarios"].p=p for k,db in enumerate(contenido[1]): if contenido[1][db]["value"] in settings.dbs: exec("from "+contenido[1][db]["value"]+"_model import model as model"+str(k),locals()) if "token" not in p: exec('p["model"][contenido[1][db]["value"]]=model'+str(k)+'(p["base_root"]+"../admin/"+routes.models_folder+contenido[1][db]["value"],p["base_root"]+"../admin/"+routes.request_folder,"user",debug=debug,ext=".py")',locals()) p["model"][contenido[1][db]["value"]].models["global"]=p["model"]["global"] p["model"]["global"].models[contenido[1][db]["value"]]=p["model"][contenido[1][db]["value"]] if "Opciones" in p["model"][contenido[1][db]["value"]].db.tablas: p["opciones"][contenido[1][db]["value"]]=p["model"][contenido[1][db]["value"]].obtenerFilas("Opciones") else: exec('p["model"][contenido[1][db]["value"]]=model'+str(k)+'(p["base_root"]+"../admin/"+routes.models_folder+contenido[1][db]["value"],p["base_root"]+"../admin/"+routes.request_folder,p["token"],debug=debug,ext=".py")',locals()) p["model"][contenido[1][db]["value"]].models["global"]=p["model"]["global"] p["model"]["global"].models[contenido[1][db]["value"]]=p["model"][contenido[1][db]["value"]] if "Opciones" in p["model"][contenido[1][db]["value"]].db.tablas: p["opciones"][contenido[1][db]["value"]]=p["model"][contenido[1][db]["value"]].obtenerFilas("Opciones") p["model"][contenido[1][db]["value"]].p=p #=================================================================================== #MANEJO DE REGISTRO DE ACCIONES DE USARIO(SESION) cookies=getCookie() p["cookies"]=cookies token2=None tokens={} if "token" in cookies: tokens=normalizar(cookies["token"]) if "token2" in cookies: token2=normalizar(cookies["token2"]) if settings.app in tokens and token2==None: p["token"]=tokens[settings.app] if p["model"]["usuarios"].isUser(token=tokens[settings.app]) and p["model"]["usuarios"].consultarLogin(tokens[settings.app]): p["user"]=p["model"]["usuarios"].obtenerUsuario(p["token"]) p["login"]=True p["isGlobalUser"]=False else: p["login"]=False elif token2!=None and p["model"]["global"].consultarLogin(token2): p["token"]=token2 p["user"]=p["model"]["global"].obtenerUsuario(p["token"]) p["login"]=True p["isGlobalUser"]=True else: p["login"]=False for elem in p["model"]: if "token" in p: p["model"][elem].token=p["token"] else: p["model"][elem].token="user" #================================================================================= #CREAR LOS LANZADORES DEL LOS PLUGINS p["plugins"]={} for k,plugin in enumerate(p["model"]["main"].obtenerFilas("Plugins")): if plugin[1]==True: p["plugins"][plugin[0]]=imp.load_source("plugin"+str(k),config.base_root+config.plugins_folder+plugin[0]+"/"+"default.py").Plugin(p["model"]) p["plugins"][plugin[0]].action(data,p) #======================================================================================== if p["cookies"]!={} and normalizar(p["cookies"]["beforeArgs"])!=[]: if len(normalizar(p["cookies"]["beforeArgs"]))>0: beforeAction=normalizar(p["cookies"]["beforeArgs"])[0] if len(normalizar(p["cookies"]["beforeArgs"]))>1: indice=normalizar(p["cookies"]["beforeArgs"])[1] else: try: beforeAction=data["action"].value except Exception as e: beforeAction="" indice=None #========================================================================= #CARGA DE SUBCONTROLADORES for elem in settings.global_post_controllers: try: sub=open("../"+config.controller_folder+config.global_folder+routes.http_folder+elem+".py","r") script=sub.read() sub.close() exec(script,locals()) except Exception as e: print "#error: ",elem," ",e errores.append([sys.exc_info(),[p["base_root"]+routes.controller_folder+"default.py",p["base_root"]+routes.controller_folder+routes.http_folder+elem+".py"]]) for elem in settings.post_controllers: sub=open(config.base_root+config.apps_folder+p["app"]+"/user/"+config.controles_dir+"/"+routes.http_folder+elem+".py","r") script=sub.read() try: exec(script,locals()) except Exception as e: if settings.mod_debug!=False: import traceback exc_type,exc_obj,exc_tb=sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "#===================================" print "#No se pudo cargar el modulo ",elem print "# ","".join(traceback.format_exception(exc_type,fname,exc_tb)) print "#", e print "#===================================" for elem in settings.post_custom_controllers: sub=open(config.base_root+config.apps_folder+p["app"]+"/user/"+config.controles_dir+"/"+routes.custom_http_folder+elem+".py","r") script=sub.read() sub.close() try: exec(script,locals()) except Exception as e: if settings.mod_debug!=False: import traceback exc_type,exc_obj,exc_tb=sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "#===================================" print "#No se pudo cargar el modulo ",elem print "# ","".join(traceback.format_exception(exc_type,fname,exc_tb)) print "#", e print "#==================================="
def cnt(p,m):#Manejador de las paginas p["method"]="get" debug=False import sys import config import settings.config as settings import settings.routes as routes import modulos.ztec.zu as zu from modulos.ztec.zu import redict import ztec.zred as zred from modulos.ztec.zred import zform from modulos.ztec.zt import ZT import imp #print config.base_root+config.apps_folder+settings.app+"/admin/"+routes.models_folder+"traducciones-"+settings.lang.upper() routes.base_url=config.base_url+(settings.app+"/") if config.default_app!=settings.app else "" from modulos.ztec.zred import clienteSock,getCookie,setCookie, redirecter,normalizar,decode,Headers HEADERS=Headers() """ for elem in settings.libs_python: exec("import "+elem,locals()) pass """ p["AsenZor:Detalles"]={"Versi贸n":0.1,"Autor original":"Jes煤s Abraham Zerpa Maldonado", "Email":"*****@*****.**","Website":"https://zerpatechnology.com.ve", "Actualizaciones":"AsenZor esta en su versi贸n mas reciente"} p["AsenZor:chat-box"]={"comentarios":1} p["defaultpath"]="../"+config.apps_folder+p["app"]+"/user/" #============================================================ #Cuerpo del controlador #------------------------------------------------------------ #Secci贸n de parametrisaje data=p data["login"]=False beforeAction="" contenido=p["model"]["global"].obtenerContenido(p["app"],"apps")[p["app"]] embebe_request=[] errores=[] data["model"]["global"].p=p data["model"]["usuarios"].p=p try: for k,db in enumerate(contenido[1]): if contenido[1][db]["value"] in settings.dbs: exec("from modelos."+contenido[1][db]["value"]+"_model import model as model"+str(k),locals()) pass if "token" not in p: exec('data["model"][contenido[1][db]["value"]]=model'+str(k)+'(p["base_root"]+"../admin/"+routes.models_folder+contenido[1][db]["value"],p["base_root"]+"../admin/"+routes.request_folder,"user",debug=debug,ext=".py")',locals()) data["model"][contenido[1][db]["value"]].models["global"]=data["model"]["global"] data["model"]["global"].models[contenido[1][db]["value"]]=data["model"][contenido[1][db]["value"]] if "Opciones" in data["model"][contenido[1][db]["value"]].db.tablas: data["opciones"][contenido[1][db]["value"]]=data["model"][contenido[1][db]["value"]].obtenerFilas("Opciones") else: exec('data["model"][contenido[1][db]["value"]]=model'+str(k)+'(p["base_root"]+"../admin/"+routes.models_folder+contenido[1][db]["value"],p["base_root"]+"../admin/"+routes.request_folder,p["token"],debug=debug,ext=".py")',locals()) data["model"][contenido[1][db]["value"]].models["global"]=data["model"]["global"] data["model"]["global"].models[contenido[1][db]["value"]]=data["model"][contenido[1][db]["value"]] if "Opciones" in data["model"][contenido[1][db]["value"]].db.tablas: data["opciones"][contenido[1][db]["value"]]=data["model"][contenido[1][db]["value"]].obtenerFilas("Opciones") except Exception as e: if settings.mod_debug!=False: import traceback try: exc_type,exc_obj,exc_tb=sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "#===================================<br>" print "#No se pudo crear la base de datos" print "# ","".join(traceback.format_exception(exc_type,fname,exc_tb)).replace("%5Cn","<br>")+"<br>" print "#", e,"<br>" print "#===================================" raise except: pass cookies=getCookie() token2=None tokens={} if "token" in cookies: tokens=normalizar(cookies["token"]) if "token2" in cookies: token2=normalizar(cookies["token2"]) if settings.app in tokens and token2==None: p["token"]=tokens[settings.app] if p["model"]["usuarios"].isUser(token=tokens[settings.app]) and p["model"]["usuarios"].consultarLogin(tokens[settings.app]): p["user"]=p["model"]["usuarios"].getUser(p["token"]) p["login"]=True p["isGlobalUser"]=False else: p["login"]=False elif token2!=None and p["model"]["global"].consultarLogin(token2): p["token"]=token2 p["user"]=p["model"]["global"].getUser(p["token"]) p["login"]=True p["isGlobalUser"]=True else: p["login"]=False for elem in data["model"]: if "token" in p: data["model"][elem].token=p["token"] else: data["model"][elem].token="user" data["cookies"]=cookies if p["login"]==True: miscookies=getCookie() import Cookie cookie=Cookie.SimpleCookie() folder=os.getcwd().split("/")[-2] if "notification" not in miscookies: cookie["notification"]="False" cookie["notification"]["path"]="/"+(folder if folder!=config.host_folder else "") import time tiempo=time.gmtime() meses=[ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "OcT", "Nov", "Dec"] dias=["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] cookie["notification"]["expires"]= str(dias[tiempo.tm_wday+1 if len(dias)<tiempo.tm_wday+1 else 0])+", "+str(tiempo.tm_mday+1)+" "+str(meses[tiempo.tm_mon])+" "+str(tiempo.tm_hour)+":"+str(tiempo.tm_min)+":"+str(tiempo.tm_sec)+" UTC" print cookie zt=ZT(config.base_root+(config.apps_folder if data["manager"]==False else config.projects_folder)+settings.app+"/admin/"+routes.models_folder+routes.traducciones_folder+"traducciones-"+settings.lang.upper(),"request/",p["token"] if "token" in p else "",ext=".py") import urllib,urllib2 temp_p={} for elem in p: if type(elem)==int: temp_p[elem]=p[elem] elif type(elem)==str: temp_p[elem]=p[elem] elif type(elem)==bool: temp_p[elem]=p[elem] elif type(elem)==float: temp_p[elem]=p[elem] elif type(elem)==dict: temp_p[elem]=p[elem] elif type(elem)==list: temp_p[elem]=p[elem] elif type(elem)==tuple: temp_p[elem]=p[elem] php_request={} #================================================================================= #CREAR LOS LANZADORES DEL LOS PLUGINS data["plugins"]={} data["plugins-hooks"]=[] for k,plugin in enumerate(data["model"]["main"].obtenerFilas("Plugins")): if plugin[1]==True: data["plugins"][plugin[0]]=imp.load_source("plugin"+str(k),config.base_root+config.plugins_folder+plugin[0]+"/"+"default.py").Plugin(p["model"]) hook=data["model"]["global"].obtenerFilas("Plugins")[k][1][1] data["plugins"][plugin[0]].cnt(data) for accion in hook: data["plugins-hooks"].append([accion["name"].split("-")[1],accion["value"]]) #======================================================================================== def servir(vista,data=data,path1=None,path2=None,p=p,m=m,settings=settings,config=config,routes=routes,isglobal=None,plugins=data["plugins"]): import __builtin__ import os from modulos.ztec.zred import clienteSock,getCookie,setCookie, redirecter,normalizar,encode str=__builtin__.str data["isglobal"]=isglobal if p["control"]=="admin": if path1==__builtin__.None: path1=p["base_root"]+"../admin/"+routes.vistas_folder if path2==__builtin__.None: path2=p["base_root"]+"../admin/"+routes.templates_url #data["incluir"]=m["incluir"] m["servir"](vista,path1,path2,data=data,isglobal=isglobal,plugins=plugins) else: if vista in settings.vistas: if path1==__builtin__.None: path1=p["base_root"]+routes.vistas_folder if path2==__builtin__.None: path2=p["base_root"]+routes.templates_url #data["incluir"]=m["incluir"] m["servir"](vista,path1,path2,data=data,isglobal=isglobal,plugins=plugins) for elem in settings.get_php_controllers: try: params = urllib.urlencode({"p":temp_p}) f=urllib2.urlopen(config.base_url+config.apps_folder+settings.app+"/user/"+routes.controller_folder+routes.http_folder+routes.php_folder+elem+".php",params) php_request[elem]=f.read() f.close() except Exception,e: print e errores.append([sys.exc_info(),[p["base_root"]+routes.controller_folder+"default.py",config.base_url+config.apps_folder+settings.app+"/user/"+routes.controller_folder+"http/"+elem+".php"]])
def Entrar(self, email=None, password=None): """ Metodo de logeado de la pagina """ if ("email" in self.data["request"] and "password" in self.data["request"]) or (email != None and password != None): from modulos.ztec.zred import getCookie, normalizar, redirecter import Cookie cookie = Cookie.SimpleCookie() token = False if self.data["model"]["global"].isUser( self.data["request"]["email"].value if email == None else email): token = self.data["model"]["global"].login( self.data["request"]["email"].value if email == None else email, self.data["request"]["password"].value if password == None else password) self.data["isGlobalUser"] = True elif self.data["model"]["usuarios"].isUser( self.data["request"]["email"].value if email == None else email): token = self.data["model"]['usuarios'].login( self.data["request"]["email"].value if email == None else email, self.data["password"] if password == None else password) self.data["isGlobalUser"] = False if token != False: #pendiente que de momento trabajamos solo con la cookie token cookies = getCookie() if "token" in cookies: tokens = normalizar(cookies["token"]) if normalizar( cookies["token"]) != "" else {} else: tokens = {} if "token2" in cookies: token2 = normalizar(cookies["token2"]) else: token2 = "None" folder = os.getcwd().replace("\\", "/").split("/")[-2] if self.data["isGlobalUser"]: cookie["token2"] = token cookie["token2"]["path"] = "/" + ( folder if folder != config.host_folder else "") else: if self.data["app"] != None and self.data["user"] == None: from settings import config as settings from settings import routes tokens[settings.app] = token cookie["token"] = tokens cookie["token"]["path"] = "/" + ( folder if folder != config.host_folder else "") print cookie self.HEADERS.show() contenttype = True if self.data["global_control"] == None: redirecter(config, self.data["app"], "admin", "")() pass else: self.HEADERS.show() contenttype = True print "Datos incorrectos"
def handleMessage(self): # echo message back to client try: request = "" global mtime global develop global clients global escribir global cliente global datos global script global beforeScript cliente = self print "$$", self.data datos = self.data if type(self.data) == unicode: if self.data[0] == "{" and self.data[-1] == "}": try: exec("data=" + self.data) if "app" not in data: data["app"] = config.default_app sys.path.append(config.apps_folder + data["app"] + "/admin/") import settings from settings import routes as routes from settings import config as settings from modulos.ztec.zred import normalizar global routes global settings global app app = data["app"] for elem in settings.websocket_controllers: f = open( config.apps_folder + data["app"] + "/user/" + config.controller_folder + routes.websocket_folder + elem + ".py", "r") try: exec(f.read()) if request != "": self.sendMessage(unicode(request)) except Exception, e: import traceback exc_type, exc_obj, exc_tb = sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "".join( traceback.format_exception( exc_type, fname, exc_tb)) f.close() if data["action"] == "develop": if normalizar(data["args"]) == [True]: develop = self.address[1] (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(config.apps_folder + data["app"] + "/user/" + config.controller_folder + routes.websocket_folder + "develop.py") self.sendMessage(unicode(True)) elif normalizar(data["args"]) != [False]: develop = None self.sendMessage(unicode(False)) for elem in settings.custom_websocket_controllers: f = open( config.apps_folder + data["app"] + "/user/" + config.controller_folder + routes.custom_websocket_folder + elem + ".py", "r") try: exec(f.read()) if request != "": self.sendMessage(unicode(request)) except Exception, e: import traceback exc_type, exc_obj, exc_tb = sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "".join( traceback.format_exception( exc_type, fname, exc_tb)) f.close() except Exception, e: import traceback exc_type, exc_obj, exc_tb = sys.exc_info() fname = exc_tb.tb_frame.f_code.co_filename print "".join( traceback.format_exception(exc_type, fname, exc_tb))
def Ayuda(self): """ Este metodo se usa para controlar el conjunto de paginas """ from modulos.ztec.zred import listar, listarAjax, normalizar, redirecter if self.data["ajax"] == False: if self.data["action"] == "listar": self.HEADERS.show() self.data["Tabla"] = "Ayuda" self.data["Modelos"] = ["ayuda"] listar(self.data, config) self.servir() elif self.data["action"] == "editar": self.data["repeate"] = 1 self.data["plantillas"] = self.data["model"][ "main"].obtenerFilas("Plantillas") keys = self.data["metodo"] i = normalizar(self.data["args"][0]) self.data["categorias"] = {} self.data["titulo"] = self.data["metodo"] if i != None: self.data["categorias"] = {} self.data["titulo"] = self.data["model"][ "ayuda"].obtenerFilas("Ayuda")[i][0] l1 = self.data["model"]["ayuda"].obtenerFilas( "Ayuda")[i][1] self.data["boxes"] = [l1] else: data["titulo"] = "Subir nuevo archivo" data["boxes"] = data["model"]["ayuda"].obtenerEstructura( "Ayuda") self.servir() elif self.data["action"] == "save": self.HEADERS.show() if self.data["args"][0] != None: self.data["model"]["ayuda"].modificarTema( self.data["args"][0], self.data["request"], self.data["metadatos"]) redirecter(config, settings.app, "admin", "Ayuda", action="listar")() else: self.data["model"]["ayuda"].crearTema( self.data["request"], self.data["metadatos"]) redirecter(config, settings.app, "admin", "Ayuda", action="listar")() else: self.HEADERS.set_headers({"Content-type": "text/plain"}) if self.data["action"] == "listar": self.HEADERS.show() listarAjax(self.data, config)
def __init__(self, data): from modulos.ztec.zred import getCookie, normalizar, renderTree from modulos.ztec import zu Controlador.__init__(self, data) self.data = data #------------------------------------------------- #SECCION DE CONTROL DE USUARIO cookies = getCookie() token2 = None tokens = {} folder = os.getcwd().replace("\\", "/").split("/")[-2] cookie = Cookie.SimpleCookie() if self.data["app"] != None and self.data["user"] == None: from settings import config as settings from settings import routes if "token" in cookies: tokens = normalizar(cookies["token"]) if normalizar( cookies["token"]) != "" else {} if "token2" in cookies: token2 = normalizar(cookies["token2"]) if settings.app in tokens and (token2 == None or token2 == ""): self.data["token"] = tokens[settings.app] if data["model"]["usuarios"].isUser( token=tokens[settings.app] ) and data["model"]["usuarios"].consultarLogin( tokens[settings.app]): self.data["user"] = data["model"]["usuarios"].getUser( self.data["token"]) self.data["login"] = True self.data["isGlobalUser"] = False else: self.data["login"] = False cookie["token2"] = "" cookie["token2"]["path"] = "/" + ( folder if folder != config.host_folder else "") cookie["token"] = "" cookie["token"]["path"] = "/" + ( folder if folder != config.host_folder else "") print cookie elif token2 != None and data["model"]["global"].consultarLogin( token2): self.data["token"] = token2 self.data["user"] = data["model"]["global"].getUser( self.data["token"]) self.data["login"] = True self.data["isGlobalUser"] = True elif data["app"] == settings.app: self.data["login"] = False cookie["token2"] = "" cookie["token2"]["path"] = "/" + ( folder if folder != config.host_folder else "") cookie["token"] = "" cookie["token"]["path"] = "/" + ( folder if folder != config.host_folder else "") print cookie for elem in self.data["model"]: if "token" in data: self.data["model"][elem].token = self.data["token"] else: self.data["model"][elem].token = "user" self.data["cookies"] = cookies self.isglobal = True if "token" in data: user = self.data["model"]["usuarios"].getUser( self.data["token"]) if self.data["user"] == {}: self.data["user"] = self.data["model"]["global"].getUser( self.data["token"])
def Archivo(self): """ Este metodo se usa para crear o modificar una pagina en espacifico """ from modulos.ztec.zred import normalizar self.HEADERS.show() if self.data["ajax"] == False: if self.data["action"] == "editar": self.data["repeate"] = 1 self.data["plantillas"] = self.data["model"][ "main"].obtenerFilas("Plantillas") keys = self.data["args"][0] i = normalizar(self.data["args"][0]) self.data["categorias"] = {} self.data["titulo"] = self.data["metodo"] if i != None: self.data["categorias"] = {} self.data["titulo"] = self.data["model"][ "archivos"].obtenerFilas("Archivos")[i][0] l1 = self.data["model"]["archivos"].obtenerFilas( "Archivos")[i][1] self.data["boxes"] = [l1] else: self.data["titulo"] = "Subir nuevo archivo" self.data["boxes"] = [ self.data["model"]["archivos"].obtenerEstructura( "Archivos")[1] ] modelos = self.data["model"]["main"].obtenerFilas( 'Tablas,args>Modelos')[0][0] tablas = self.data["model"]["main"].obtenerFilas( 'args>Tablas')[0][0] self.data["control-post"] = "static" self.data["post"] = self.data["titulo"] self.data["vars"]["modelos"] = modelos self.data["vars"]["opciones"] = self.data["model"][modelos[ self.data["metodo"]]].obtenerFilas('Opciones') self.data["vars"]["Tablas"] = tablas self.servir() elif self.data["action"] == "save": #self.HEADERS.set_headers({"Content-type":"text/plain\n"}) self.HEADERS.show() opciones = self.data["model"]["archivos"].obtenerFilas( "Opciones") for k, elem in enumerate(opciones): if elem[0] == "Categorias": tipo = opciones[k][1][int( self.data["request"]["tipo"].value)] if self.data["args"][0] == None: resultado = self.data["model"]["archivos"].subirArchivo( self.data["request"], self.data["metadatos"] if "metadatos" in self.data else {}) if resultado: redirecter(config, settings.app, "admin", "Archivo", "None", action="editar")() pass else: print "Ya existe un archivo con el mismo nombre, por favor utilice otro nombre,<br>", " regresando en 3 segundos..." print "<script>setTimeout(function(){history.back()},3000)</script>" else: self.data["model"]["archivos"].actualizarArchivo( self.data["args"][0], self.data["request"], self.data["metadatos"] if "metadatos" in self.data else {}) redirecter(config, settings.app, "admin", "Archivo", str(self.data["args"][0]), action="editar")()