def nombre_repetido(): rpta = None status = 200 try: data = json.loads(request.forms.get('data')) usuario_id = data['id'] nombre_usuario = data['usuario'] if usuario_id == 'E': #SELECT COUNT"(*) AS cantidad FROM usuarios WHERE usuario = ? n = session_db().query(Usuario).filter_by( usuario=nombre_usuario).count() rpta = str(n) else: #SELECT COUNT(*) AS cantidad FROM usuarios WHERE usuario = ? AND id = ? n = session_db().query(Usuario).filter_by(usuario=nombre_usuario, id=usuario_id).count() if n == 1: rpta = '0' else: #SELECT COUNT(*) AS cantidad FROM usuarios WHERE usuario = ? n = session_db().query(Usuario).filter_by( usuario=nombre_usuario).count() rpta = str(n) except Exception as e: rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en validar si el nombre es repetido', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)
def sistema(usuario_id): rpta = None status = 200 try: session = session_db() rs = session.execute( ''' SELECT T.id AS id, T.nombre AS nombre, (CASE WHEN (P.existe = 1) THEN 1 ELSE 0 END) AS existe FROM ( SELECT id, nombre, 0 AS existe FROM sistemas ) T LEFT JOIN ( SELECT S.id, S.nombre, 1 AS existe FROM sistemas S INNER JOIN usuarios_sistemas US ON US.sistema_id = S.id WHERE US.usuario_id = :usuario_id ) P ON T.id = P.id''', {'usuario_id': usuario_id}) rpta = [dict(r) for r in rs] session.commit() except Exception as e: print(e) rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en listar los sistema del usuario', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)
def guardar(): data = json.loads(request.query.data) nuevos = data['nuevos'] editados = data['editados'] eliminados = data['eliminados'] array_nuevos = [] rpta = None session = session_db() try: if len(nuevos) != 0: for nuevo in nuevos: temp_id = nuevo['id'] nombre = nuevo['nombre'] s = TipoEstacion(nombre = nombre) session.add(s) session.flush() temp = {'temporal' : temp_id, 'nuevo_id' : s.id} array_nuevos.append(temp) if len(editados) != 0: for editado in editados: session.query(TipoEstacion).filter_by(id = editado['id']).update(editado) if len(eliminados) != 0: for id in eliminados: session.query(TipoEstacion).filter_by(id = id).delete() session.commit() rpta = {'tipo_mensaje' : 'success', 'mensaje' : ['Se ha registrado los cambios en los tipos de estaciones', array_nuevos]} except Exception as e: session.rollback() rpta = {'tipo_mensaje' : 'error', 'mensaje' : ['Se ha producido un error en guardar los tipos de estaciones', str(e)]} return json.dumps(rpta)
def guardar_contrasenia(): rpta = None status = 200 try: data = json.loads(request.forms.get('contrasenia')) usuario_id = data['id'] contrasenia = data['contrasenia'] session = session_db() session.query(Usuario).filter_by(id=usuario_id).update({ 'contrasenia': contrasenia, }) session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha el cambio de contraseña del usuario', ] } except Exception as e: print(e) rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en actualizar la contraseña del usaurio', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)
def crear(): rpta = None nuevo_id = None try: data = json.loads(request.body.read().decode('UTF-8')) session = session_db() s = Estacion(nombre=data['nombre'], descripcion=data['descripcion'], latitud=data['latitud'], longitud=data['longitud'], altura=data['altura'], tipo_estacion_id=data['tipo_estacion_id']) session.add(s) session.flush() nuevo_id = s.id session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': ['Se ha creado una estación', nuevo_id] } except Exception as e: session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': ['Se ha producido un error en crear una estación', str(e)] } return json.dumps(rpta)
def crear(): rpta = None nuevo_id = None try: data = json.loads(request.body.read().decode('UTF-8')) session = session_db() s = TipoEstacion(nombre=data['nombre']) session.add(s) session.flush() nuevo_id = s.id session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': ['Se ha creado un tipo estación', nuevo_id] } except Exception as e: session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en crear un nuevo tipo de estación', str(e) ] } return json.dumps(rpta)
def guardar(): status = 200 data = json.loads(request.forms.get('data')) nuevos = data['nuevos'] editados = data['editados'] eliminados = data['eliminados'] sistema_id = data['extra']['sistema_id'] array_nuevos = [] rpta = None session = session_db() try: if len(nuevos) != 0: for nuevo in nuevos: temp_id = nuevo['id'] s = Modulo( nombre=nuevo['nombre'], icono=nuevo['icono'], url=nuevo['url'], sistema_id=sistema_id, ) session.add(s) session.flush() temp = {'temporal': temp_id, 'nuevo_id': s.id} array_nuevos.append(temp) if len(editados) != 0: for editado in editados: session.query(Modulo).filter_by(id=editado['id']).update({ 'nombre': editado['nombre'], 'icono': editado['icono'], 'url': editado['url'], }) if len(eliminados) != 0: for id in eliminados: session.query(Modulo).filter_by(id=id).delete() session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha registrado los cambios en los módulos del sistema', array_nuevos ] } except Exception as e: status = 500 session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en guardar los módulos del sistema', str(e) ] } return HTTPResponse(status=status, body=json.dumps(rpta))
def guardar(): data = json.loads(request.query.data) nuevos = data['nuevos'] editados = data['editados'] eliminados = data['eliminados'] campo_id = data['extra']['campo_id'] array_nuevos = [] rpta = None session = session_db() try: if len(nuevos) != 0: for nuevo in nuevos: temp_id = nuevo['id'] nombre = nuevo['nombre'] descripcion = nuevo['descripcion'] latitud = nuevo['latitud'] longitud = nuevo['longitud'] altura = nuevo['altura'] tipo_estacion_id = nuevo['tipo_estacion_id'] s = Estacion(nombre=nombre, descripcion=descripcion, latitud=latitud, longitud=longitud, altura=altura, tipo_estacion_id=tipo_estacion_id, campo_id=campo_id) session.add(s) session.flush() temp = {'temporal': temp_id, 'nuevo_id': s.id} array_nuevos.append(temp) if len(editados) != 0: for editado in editados: session.query(Estacion).filter_by( id=editado['id']).update(editado) if len(eliminados) != 0: for id in eliminados: session.query(Estacion).filter_by(id=id).delete() session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': ['Se ha registrado los cambios en las estaciones', array_nuevos] } except Exception as e: session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': ['Se ha producido un error en guardar las estaciones', str(e)] } return json.dumps(rpta)
def guardar(): status = 200 data = json.loads(request.forms.get('data')) editados = data['editados'] usuario_id = data['extra']['usuario_id'] array_nuevos = [] rpta = None session = session_db() try: if len(editados) != 0: for editado in editados: permiso_id = editado['id'] existe = editado['existe'] e = session.query(UsuarioPermiso).filter_by( permiso_id=permiso_id, usuario_id=usuario_id).first() if existe == 0: #borrar si existe if e != None: session.query(UsuarioPermiso).filter_by( permiso_id=permiso_id, usuario_id=usuario_id).delete() elif existe == 1: #crear si no existe if e == None: s = UsuarioPermiso( permiso_id=permiso_id, usuario_id=usuario_id, ) session.add(s) session.flush() session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha registrado la asociación de permisos al usuario', array_nuevos ] } except Exception as e: status = 500 session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en asociar los permisos al usuario', str(e) ] } return HTTPResponse(status=status, body=json.dumps(rpta))
def editar(): rpta = None try: data = json.loads(request.body.read().decode('UTF-8')) session = session_db() session.query(Estacion).filter_by(id=data['id']).update(data) session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': ['Se ha editado una estación'] } except Exception as e: session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': ['Se ha producido un error en editar una estación', str(e)] } return json.dumps(rpta)
def externo_validar(): status = 200 usuario = request.forms.get('usuario') contrasenia = request.forms.get('contrasenia') rpta = None session = session_db() try: rs = session.query(Usuario).filter_by(usuario=usuario, contrasenia=contrasenia).count() rpta = str(rs) session.commit() except Exception as e: status = 500 session.rollback() rpta = json.dumps({ 'tipo_mensaje': 'error', 'mensaje': ['Se ha producido un error en validar el usuario externo', str(e)] }) return HTTPResponse(status=status, body=rpta)
def guardar_usuario_correo(): rpta = None status = 200 try: data = json.loads(request.forms.get('usuario')) usuario_id = data['id'] correo = data['correo'] nombre_usuario = data['usuario'] estado_usuario_id = data['estado_usuario_id'] session = session_db() session.query(Usuario).filter_by(id=usuario_id).update({ 'usuario': nombre_usuario, 'correo': correo, 'estado_usuario_id': estado_usuario_id }) session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha registrado los cambios en los datos generales del usuario', ] } except Exception as e: print(e) rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en validar si la contraseña del usuario', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)
def contrasenia_repetida(): rpta = None status = 200 try: data = json.loads(request.forms.get('data')) usuario_id = data['id'] contrasenia = data['contrasenia'] n = session_db().query(Usuario).filter_by(contrasenia=contrasenia, id=usuario_id).count() rpta = str(n) except Exception as e: rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en validar si la contraseña del usuario', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)
def menu(): rpta = None status = 200 sistema_id = request.query.sistema_id modulo = request.query.modulo try: conn = engine.connect() rs = session_db().query(VWModuloSubtituloItem).filter_by( sistema_id=sistema_id, modulo=modulo) subtitulos = [] subtitulos_temp = [] items = [] for r in rs: subtitulo = r.subtitulo if (subtitulo in subtitulos) == False: subtitulos.append(subtitulo) i = {'subtitulo': r.subtitulo, 'items': []} items.append(i) t = {'subtitulo': r.subtitulo, 'item': r.item, 'url': r.url_item} subtitulos_temp.append(t) for subtitulo in subtitulos: for temp in subtitulos_temp: if (temp['subtitulo'] == subtitulo): i = {'item': temp['item'], 'url': temp['url']} for item in items: if subtitulo == item['subtitulo']: item['items'].append(i) rpta = items except Exception as e: rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en listar el menú de los items del módulo', str(e) ], } status = 500 return HTTPResponse(status=status, body=json.dumps(rpta))
def externo_validar(): status = 200 usuario = request.forms.get('usuario') sistema_id = request.forms.get('sistema_id') rpta = None session = session_db() try: rs = session.query(VWUsuarioSistema).filter_by(usuario=usuario, id=sistema_id).count() rpta = str(rs) session.commit() except Exception as e: status = 500 session.rollback() rpta = json.dumps({ 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en validar si el usuario tiene acceso a dicho sistema', str(e) ] }) return HTTPResponse(status=status, body=rpta)
def permiso(sistema_id, usuario_id): rpta = None status = 200 try: session = session_db() rs = session.execute( ''' SELECT T.id AS id, T.nombre AS nombre, (CASE WHEN (P.existe = 1) THEN 1 ELSE 0 END) AS existe, T.llave AS llave FROM ( SELECT id, nombre, llave, 0 AS existe FROM permisos WHERE sistema_id = :sistema_id ) T LEFT JOIN ( SELECT P.id, P.nombre, P.llave, 1 AS existe FROM permisos P INNER JOIN usuarios_permisos UP ON P.id = UP.permiso_id WHERE UP.usuario_id = :usuario_id ) P ON T.id = P.id''', { 'usuario_id': usuario_id, 'sistema_id': sistema_id }) rpta = [dict(r) for r in rs] session.commit() except Exception as e: print(e) rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error error en listar los permisos del usuario', str(e) ], } status = 500 rpta = json.dumps(rpta) return HTTPResponse(status=status, body=rpta)