def post(self): """Inicia sesión en la aplicación. Si se inicia sesión con éxito enctonces se guarda el usuario en la cookie caso contrario se vuelve al login. """ self.check_xsrf_cookie() ip = self.request.remote_ip diccionary = json.loads(self.get_argument("object")) username = diccionary['username'] password = diccionary['password'] with transaction() as db: pass if username is not None and password is not None: user = LoginManager().login(username, password) if user: fecha = self.fecha_actual() b = Bitacora(fkusuario=user.id, ip=ip, accion="Inicio de sesión.", fecha=fecha) self.insertar_bitacora(b) self.set_user_id(user.id) self.respond(success=True, message='Sesión iniciada correctamente.') else: userb = LoginManager().not_enabled(username, password) if userb: self.render("sistema/usuarios/login/views/index.html", error=1) else: self.render("sistema/usuarios/login/views/index.html", error=2) else: self.render("sistema/usuarios/login/views/index.html", error=0)
def get(self, key): with transaction() as session: usuario = session.query(Usuario).options(joinedload('rol').joinedload('modulos').joinedload('children')).filter(Usuario.id == key).\ filter(Usuario.estado).filter(Usuario.enabled).first() if not usuario: return None session.expunge(usuario) make_transient(usuario) usuario.rol.modulos = self.order_modules(usuario.rol.modulos) return usuario
def insertions(): with transaction() as session: negocio_m = session.query(Modulo).filter(Modulo.nombre == 'negocio_mod').first() if negocio_m is None: negocio_m = Modulo(titulo='Negocio', nombre='negocio_mod', icono='business_center') producto_m = session.query(Modulo).filter(Modulo.nombre == 'producto').first() if producto_m is None: producto_m = Modulo(titulo='Producto', ruta='/producto', nombre='producto', icono='add_shopping_cart') negocio_m.children.append(producto_m) query_producto = session.query(Modulo).filter(Modulo.nombre == 'producto_query').first() if query_producto is None: query_producto = Modulo(titulo='Consultar', ruta='', nombre='producto_query', menu=False) insert_producto = session.query(Modulo).filter(Modulo.nombre == 'producto_insert').first() if insert_producto is None: insert_producto = Modulo(titulo='Adicionar', ruta='/producto_insert', nombre='producto_insert', menu=False) update_producto = session.query(Modulo).filter(Modulo.nombre == 'producto_update').first() if update_producto is None: update_producto = Modulo(titulo='Actualizar', ruta='/producto_update', nombre='producto_update', menu=False) delete_producto = session.query(Modulo).filter(Modulo.nombre == 'producto_delete').first() if delete_producto is None: delete_producto = Modulo(titulo='Dar de Baja', ruta='/producto_delete', nombre='producto_delete', menu=False) producto_m.children.append(query_producto) producto_m.children.append(insert_producto) producto_m.children.append(update_producto) producto_m.children.append(delete_producto) roles = session.query(Rol).filter(Rol.nombre.in_(['SUPER ADMINISTRADOR', "ADMINISTRADOR"])).all() for rol in roles: rol.modulos.append(negocio_m) rol.modulos.append(producto_m) rol.modulos.append(query_producto) rol.modulos.append(insert_producto) rol.modulos.append(update_producto) rol.modulos.append(delete_producto) session.commit()
def insertions(): with transaction() as session: negocio_m = session.query(Modulo).filter(Modulo.nombre == 'negocio_mod').first() if negocio_m is None: negocio_m = Modulo(titulo='Negocio', nombre='negocio_mod', icono='business_center') traspaso_m = session.query(Modulo).filter(Modulo.nombre == 'traspaso').first() if traspaso_m is None: traspaso_m = Modulo(titulo='Nota de Traspaso', ruta='/traspaso', nombre='traspaso', icono='compare_arrows') negocio_m.children.append(traspaso_m) query_traspaso = session.query(Modulo).filter(Modulo.nombre == 'traspaso_query').first() if query_traspaso is None: query_traspaso = Modulo(titulo='Consultar', ruta='', nombre='traspaso_query', menu=False) insert_traspaso = session.query(Modulo).filter(Modulo.nombre == 'traspaso_insert').first() if insert_traspaso is None: insert_traspaso = Modulo(titulo='Adicionar', ruta='/traspaso_insert', nombre='traspaso_insert', menu=False) update_traspaso = session.query(Modulo).filter(Modulo.nombre == 'traspaso_update').first() if update_traspaso is None: update_traspaso = Modulo(titulo='Actualizar', ruta='/traspaso_update', nombre='traspaso_update', menu=False) delete_traspaso = session.query(Modulo).filter(Modulo.nombre == 'traspaso_delete').first() if delete_traspaso is None: delete_traspaso = Modulo(titulo='Dar de Baja', ruta='/traspaso_delete', nombre='traspaso_delete', menu=False) traspaso_m.children.append(query_traspaso) traspaso_m.children.append(insert_traspaso) traspaso_m.children.append(update_traspaso) traspaso_m.children.append(delete_traspaso) roles = session.query(Rol).filter(Rol.nombre.in_(['SUPER ADMINISTRADOR', "ADMINISTRADOR"])).all() for rol in roles: rol.modulos.append(negocio_m) rol.modulos.append(traspaso_m) rol.modulos.append(query_traspaso) rol.modulos.append(insert_traspaso) rol.modulos.append(update_traspaso) rol.modulos.append(delete_traspaso) session.commit()
def insertions(): with transaction() as session: user_m = session.query(Modulo).filter( Modulo.nombre == 'usuarios_mod').first() if user_m is None: user_m = Modulo(titulo='Usuarios', nombre='usuarios_mod', icono='group') bitacora_m = session.query(Modulo).filter( Modulo.nombre == 'bitacora').first() if bitacora_m is None: bitacora_m = Modulo(titulo='Bitácora', ruta='/bitacora', nombre='bitacora', icono='library_books') user_m.children.append(bitacora_m) query_bitacora = session.query(Modulo).filter( Modulo.nombre == 'bitacora_query').first() if query_bitacora is None: query_bitacora = Modulo(titulo='Consultar', ruta='', nombre='bitacora_query', menu=False) bitacora_m.children.append(query_bitacora) roles = session.query(Rol).filter( Rol.nombre.in_(['SUPER ADMINISTRADOR', 'ADMINISTRADOR'])).all() for rol in roles: rol.modulos.append(user_m) rol.modulos.append(bitacora_m) rol.modulos.append(query_bitacora) session.commit()
def login(self, username, password): """Retorna un usuario que coincida con el username y password dados. parameters ---------- Usuarioname : str password : str | El password deberá estar sin encriptar. returns ------- Usuario None | Retornará None si no encuentra nada. """ password = hashlib.sha512(password.encode()).hexdigest() with transaction() as session: usuario = session.query(Usuario).options(joinedload('rol').joinedload('modulos').joinedload('children')).filter(Usuario.username == username).\ filter(Usuario.password == password).filter(Usuario.estado).filter(Usuario.enabled).first() if not usuario: return None session.expunge(usuario) make_transient(usuario) usuario.rol.modulos = self.order_modules(usuario.rol.modulos) return usuario
def insertions(): with transaction() as session: user_m = session.query(Modulo).filter( Modulo.nombre == 'usuarios_mod').first() if user_m is None: user_m = Modulo(titulo='Usuarios', nombre='usuarios_mod', icono='group') roles_m = session.query(Modulo).filter( Modulo.nombre == 'roles').first() if roles_m is None: roles_m = Modulo(titulo='Rol', ruta='/rol', nombre='roles', icono='settings') user_m.children.append(roles_m) query_rol = session.query(Modulo).filter( Modulo.nombre == 'rol_query').first() if query_rol is None: query_rol = Modulo(titulo='Consultar', ruta='', nombre='rol_query', menu=False) insert_rol = session.query(Modulo).filter( Modulo.nombre == 'rol_insert').first() if insert_rol is None: insert_rol = Modulo(titulo='Adicionar', ruta='/rol_insert', nombre='rol_insert', menu=False) update_rol = session.query(Modulo).filter( Modulo.nombre == 'rol_update').first() if update_rol is None: update_rol = Modulo(titulo='Actualizar', ruta='/rol_update', nombre='rol_update', menu=False) delete_rol = session.query(Modulo).filter( Modulo.nombre == 'rol_delete').first() if delete_rol is None: delete_rol = Modulo(titulo='Dar de Baja', ruta='/rol_delete', nombre='rol_delete', menu=False) roles_m.children.append(query_rol) roles_m.children.append(insert_rol) roles_m.children.append(update_rol) roles_m.children.append(delete_rol) super_role = session.query(Rol).filter( Rol.nombre == 'SUPER ADMINISTRADOR').first() if super_role is None: super_role = Rol(nombre='SUPER ADMINISTRADOR', descripcion='Todos los permisos.') admin_role = session.query(Rol).filter( Rol.nombre == 'ADMINISTRADOR').first() if admin_role is None: admin_role = Rol(nombre='ADMINISTRADOR', descripcion='Solo permisos de administrador.') super_role.modulos.append(user_m) super_role.modulos.append(roles_m) super_role.modulos.append(query_rol) super_role.modulos.append(insert_rol) super_role.modulos.append(update_rol) super_role.modulos.append(delete_rol) session.add(super_role) session.add(admin_role) session.commit()
def get(self): usuario = self.get_user() with transaction() as db: self.render("usuarios/usuario/views/manual.html", user=usuario)
def insertar_bitacora(self, bitacora): with transaction() as session: session.add(bitacora) session.commit()
def insertions(): with transaction() as session: negocio_m = session.query(Modulo).filter( Modulo.nombre == 'negocio_mod').first() if negocio_m is None: negocio_m = Modulo(titulo='Negocio', nombre='negocio_mod', icono='business_center') salida_m = session.query(Modulo).filter( Modulo.nombre == 'salida').first() if salida_m is None: salida_m = Modulo(titulo='Nota de Salida', ruta='/salida', nombre='salida', icono='article') negocio_m.children.append(salida_m) query_salida = session.query(Modulo).filter( Modulo.nombre == 'salida_query').first() if query_salida is None: query_salida = Modulo(titulo='Consultar', ruta='', nombre='salida_query', menu=False) insert_salida = session.query(Modulo).filter( Modulo.nombre == 'salida_insert').first() if insert_salida is None: insert_salida = Modulo(titulo='Adicionar', ruta='/salida_insert', nombre='salida_insert', menu=False) update_salida = session.query(Modulo).filter( Modulo.nombre == 'salida_update').first() if update_salida is None: update_salida = Modulo(titulo='Actualizar', ruta='/salida_update', nombre='salida_update', menu=False) delete_salida = session.query(Modulo).filter( Modulo.nombre == 'salida_delete').first() if delete_salida is None: delete_salida = Modulo(titulo='Dar de Baja', ruta='/salida_delete', nombre='salida_delete', menu=False) salida_m.children.append(query_salida) salida_m.children.append(insert_salida) salida_m.children.append(update_salida) salida_m.children.append(delete_salida) roles = session.query(Rol).filter( Rol.nombre.in_(['SUPER ADMINISTRADOR', "ADMINISTRADOR"])).all() for rol in roles: rol.modulos.append(negocio_m) rol.modulos.append(salida_m) rol.modulos.append(query_salida) rol.modulos.append(insert_salida) rol.modulos.append(update_salida) rol.modulos.append(delete_salida) session.commit()
def insertions(): with transaction() as session: negocio_m = session.query(Modulo).filter( Modulo.nombre == 'negocio_mod').first() if negocio_m is None: negocio_m = Modulo(titulo='Negocio', nombre='negocio_mod', icono='business_center') cliente_m = session.query(Modulo).filter( Modulo.nombre == 'cliente').first() if cliente_m is None: cliente_m = Modulo(titulo='Cliente', ruta='/cliente', nombre='cliente', icono='assignment_ind') negocio_m.children.append(cliente_m) query_cliente = session.query(Modulo).filter( Modulo.nombre == 'cliente_query').first() if query_cliente is None: query_cliente = Modulo(titulo='Consultar', ruta='', nombre='cliente_query', menu=False) insert_cliente = session.query(Modulo).filter( Modulo.nombre == 'cliente_insert').first() if insert_cliente is None: insert_cliente = Modulo(titulo='Adicionar', ruta='/cliente_insert', nombre='cliente_insert', menu=False) update_cliente = session.query(Modulo).filter( Modulo.nombre == 'cliente_update').first() if update_cliente is None: update_cliente = Modulo(titulo='Actualizar', ruta='/cliente_update', nombre='cliente_update', menu=False) delete_cliente = session.query(Modulo).filter( Modulo.nombre == 'cliente_delete').first() if delete_cliente is None: delete_cliente = Modulo(titulo='Dar de Baja', ruta='/cliente_delete', nombre='cliente_delete', menu=False) cliente_m.children.append(query_cliente) cliente_m.children.append(insert_cliente) cliente_m.children.append(update_cliente) cliente_m.children.append(delete_cliente) roles = session.query(Rol).filter( Rol.nombre.in_(['SUPER ADMINISTRADOR', "ADMINISTRADOR"])).all() for rol in roles: rol.modulos.append(negocio_m) rol.modulos.append(cliente_m) rol.modulos.append(query_cliente) rol.modulos.append(insert_cliente) rol.modulos.append(update_cliente) rol.modulos.append(delete_cliente) session.commit()
def insertions(): with transaction() as session: store_empress = Empresa(nombre='ROHO Homecenter') session.add(store_empress) suc_store = Sucursal(nombre='Central') suc_store.empresa = store_empress suc_store2 = Sucursal(nombre='3er anillo') suc_store2.empresa = store_empress session.add(suc_store) session.add(suc_store2) prod01_store = Producto( codigo='AIRCMPG030059', nombre='TERMO ROJO 2.5L ATACAMA', descripcion= 'Uso: Mantiene las bebidas frías\nCapacidad: 2.5 Litros\nColor: Rojo\nMedidas: 28x20x16Cm\nMarca: Soprano', precio=59.9) prod02_store = Producto(codigo='AIRCMPG020007', nombre='CARPA PHILY 2 PERSONAS 2500MM NTK', descripcion='', precio=550) prod03_store = Producto( codigo='HRRMANO030073', nombre='CAJA DE HERRAMIENTA PLASTICA 19PLG B/METAL STANLEY', descripcion= 'CAJA DE HERRAMIENTA PLÁSTICA 19 PULGADA BROCHE METÁLICO STANLEY', precio=190) prod04_store = Producto( codigo='MBLOFCN010039', nombre='ESCRITORIO STUDIO 1.3 C/CAJON ARG/PRT 136X75X60CM', descripcion= 'Con medidas de 60 ancho x 75 alto x 136 largo cm y un peso de 34 kilos, este escritorio podrá utilizarse sin problemas para ubicar un computador e impresora.', precio=969) session.add(prod01_store) session.add(prod02_store) session.add(prod03_store) session.add(prod04_store) #---------------------------------------------------------------------------------------------------------------------------------# # farm_empress = Empresa(nombre='Farmacorp') # # suc_farm01 = Sucursal(nombre='Banzer 3er anillo') # suc_farm01.empresa = farm_empress # suc_farm02 = Sucursal(nombre='Torres Gemelas') # suc_farm02.empresa = farm_empress # suc_farm03 = Sucursal(nombre='Av. Cristo Redentor') # suc_farm03.empresa = farm_empress # suc_farm04 = Sucursal(nombre='Equipetrol') # suc_farm04.empresa = farm_empress # # session.add(suc_farm01) # session.add(suc_farm02) # session.add(suc_farm03) # session.add(suc_farm04) # # prod01_farm = Producto(codigo='SK101', nombre='VITARosa', descripcion='Bloqueador solar VITAROSA', precio=50) # prod02_farm = Producto(codigo='SK247', nombre='Colágeno', descripcion='Whisky Dewar’s 12, Amaro, mermelada de higo, zumo de limón', precio=80) # prod03_farm = Producto(codigo='CR745', nombre='Crema', descripcion='Crema limpia pecas', precio=70) # # session.add(prod01_farm) # session.add(prod02_farm) # session.add(prod03_farm) # ---------------------------------------------------------------------------------------------------------------------------------# cliente01 = Cliente(nombre='Sandra Justiniano', nit='786521317826') cliente02 = Cliente(nombre='Marcelo Estrada', nit='234567569845') cliente03 = Cliente(nombre='Arturo Aguirre', nit='147832484574') cliente04 = Cliente(nombre='Alexander Vega', nit='654685404550') session.add(cliente01) session.add(cliente02) session.add(cliente03) session.add(cliente04) session.commit()
def obtener_usuario(self, key): with transaction() as session: usuario = session.query(Usuario).filter(Usuario.id == key).first() return usuario
def obtener_persona(self, key): with transaction() as session: persona = session.query(Persona).filter(Persona.id == key).first() return persona