def make_Usuario(self, data, **kwargs): from db import db usuario = Usuario(**data) from servicios.usuarioService import UsuarioService UsuarioService.hashPassword(usuario, usuario.password) db.session.add(usuario) db.session.commit()
def delete(self, id_usuario): if (id_usuario): try: UsuarioService.deshabilitarUsuario(id_usuario) return {'Status': 'Se deshabilitó el usuario.'}, 200 except Exception as err: return {'Error': err.args}, 400 return {'Error': 'Debe indicarse id_usuario'}, 400
def post(self): datos = request.get_json() if (datos): try: UsuarioService.nuevoUsuario(datos) return {'Status': 'Usuario creado.'}, 200 except Exception as err: return {'Error': err.args}, 400 return { 'Error': 'Deben suministrarse los datos para el alta de usuario.' }, 400
def put(self): datos = request.get_json() if (datos): try: UsuarioService.modificarUsuario(datos) return {'Status': 'Usuario modificado.'}, 200 except Exception as err: return {'Error': err.args}, 400 return { 'Error': 'Deben suministrarse los datos para modificar el usuario.' }, 400
def obtenerProyecto(cls, id_proyecto): proyecto = cls.find_by_id(id_proyecto) proyecto.participantes = cls.obtenerMiembrosProyecto(id_proyecto) from servicios.usuarioService import UsuarioService proyecto.idDirectorProyecto = UsuarioService.find_by_id( proyecto.idDirectorProyecto) return proyecto
def post(self): datos = request.get_json() if datos: try: return UsuarioService.loginUsuario(datos) except Exception as err: return {'Error': err.args}, 401 return {'Error': 'Deben enviarse datos para el login.'}, 400
def get(self, id_usuario): if (id_usuario): try: usuario = UsuarioService.find_by_id(id_usuario) return CommonService.json(usuario, UsuarioSchema) except Exception as err: return {'Error': err.args}, 400 return {'Error': 'Debe indicarse id_usuario'}, 400
def decorated_function(*args, **kwargs): token = None if 'Authorization' in request.headers: token = request.headers['Authorization'] else: return {'Error': 'Es necesario enviar un token.'}, 400 from app import app try: data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"]) except Exception as err: return {"Error": f"Token incorrecto. Mensaje del eror: {str(err)}"}, 400 except jwt.ExpiredSignatureError: return {"Error": f"Token vencido."}, 400 permisosUsuario = UsuarioService.find_by_email(data['email']).permisos for permiso in permisosUsuario: if permisoUsuario in permiso.descripcion: return f(*args, **kwargs) return {"Error": f"El usuario {data['email']} no tiene permisos suficientes para realizar esta petición."}, 400
def authenticate(username, password): user = UsuarioService.find_by_email(username) if user and check_password_hash(user.password, password): return user
def get(self): return CommonService.jsonMany(UsuarioService.usuariosSinElPermiso(4), UsuarioSchema)
def validarProyecto(cls, proyecto): from servicios.usuarioService import UsuarioService UsuarioService.busquedaUsuariosID(proyecto.participantes) from servicios.permisosService import PermisosService PermisosService.esJefeDeProyecto( UsuarioService.find_by_id(proyecto.idDirectorProyecto))
def obtenerMiembrosProyecto(cls, id_proyecto): from servicios.usuarioService import UsuarioService proyecto = cls.find_by_id(id_proyecto) return UsuarioService.busquedaUsuariosID(proyecto.participantes)
def get(self): return CommonService.jsonMany(UsuarioService.findUsuariosHabilitados(), UsuarioSchema)
def agregarDatosGrupo(cls,grupo): from servicios.usuarioService import UsuarioService grupo.jefeDeGrupo = UsuarioService.find_by_id(grupo.jefeDeGrupo) grupo.integrantes = UsuarioService.busquedaUsuariosID(grupo.integrantes)
def agregarDatosProyecto(cls, proyecto): proyecto.participantes = cls.obtenerMiembrosProyecto( proyecto.id_proyecto) from servicios.usuarioService import UsuarioService proyecto.idDirectorProyecto = UsuarioService.find_by_id( proyecto.idDirectorProyecto)
def asignarUsuario(cls,objeto): from servicios.usuarioService import UsuarioService objeto.id_usuario = UsuarioService.find_by_id_all(objeto.id_usuario) return objeto
def identity(payload): user_id = payload['identity'] return UsuarioService.find_by_id(user_id)
def validarJefe(cls, id_jefeDeGrupo,idGrupo): from servicios.usuarioService import UsuarioService UsuarioService.validarJefeDeGrupo(id_jefeDeGrupo,idGrupo)
def validarMiembros(cls, integrantes): from servicios.usuarioService import UsuarioService [UsuarioService.validaAsignacionGrupo(idIntegrante) for idIntegrante in integrantes]
def nombrarJefe(cls, idJefe, idGrupo): from servicios.usuarioService import UsuarioService UsuarioService.asignarGrupoAJefe(idJefe, idGrupo)
def asignarIdGrupoMiembros(cls, idIntegrantes, idGrupo): from servicios.usuarioService import UsuarioService [UsuarioService.cambiarIdGrupo(id, idGrupo) for id in idIntegrantes]