def modificarUsuario(ID): if "ID" in session and session['Tipo'] in [1,2,5] and str(ID) != str(session['ID']): objEmp = Empresa() objDep = Departamento() objEnc = Encriptador() objEmpDep = EmpresaDepartamento() objUsuario = Usuario() try: ID = int(ID) except: return redirect(url_for('inicio.index')) objUsuario.setID(ID) usuario = objUsuario.getInfoUsuario() empresas = objEmp.ListarEmpresasXEstado(1) if request.method == "GET": if len(usuario) > 0: deps = objEmpDep.ListarDepartamentosEmp(int(usuario[0].IdEmpresa)) contra = objEnc.Desencriptar(str(usuario[0].Password)) return render_template('modificarUsuario.html',usuario=usuario[0], contra=contra, empresas=empresas, departamentos=deps, usuarioActual=session['Tipo']) elif request.method == "POST": boolImg = True imagen = "" if request.files: imagen = request.files["avatar"] if not imagenPermitida(imagen.filename): boolImg = False else: print(imagen.filename) if str(usuario[0].Avatar) != "default-user.jpg": os.remove(os.path.join(app.config['IMAGE_UPLOADS'],str(usuario[0].Avatar))) ext = imagen.filename.rsplit(".",1)[1] nombreArchivo = str(uuid.uuid4().hex+"."+ext) objUsuario.setAvatar(str(nombreArchivo)) if boolImg: idEmp = request.form['empresa'].rsplit('-')[0] idDep = request.form['departamento'] if request.form['departamento'] != 'null' else 0 tipo = int(request.form['tipo']) objUsuario.setNombre(request.form['nombre']) objUsuario.setCedula(request.form['cedula']) objUsuario.setEmail(request.form['email']) url = request.form['url'] if int(session['Tipo']) == 2: if tipo in[1,2,5,6]: return "Error" elif int(session['Tipo']) == 5: if tipo in [1,2,3,4,5]: return "Error" elif int(session['Tipo']) in [3,4,6]: return "Error" objUsuario.setTipo(tipo) objUsuario.setIdDep(int(idDep)) objUsuario.setIDEmpresa(int(idEmp)) objUsuario.setID(int(request.form['id'])) if tipo == 2 and objUsuario.existeTipoUsuario(): return "Gerente Existe" elif tipo == 5 and objUsuario.existeTipoUsuario(): return "ClienteM Existe" objUsuario.setContra(objEnc.Encriptar(str(request.form['contra']))) objEmp.setID(idEmp) objDep.setID(idDep) depDestino = objDep.consultarID() if len(objDep.consultarID()) > 0 else 0 empDestino = objEmp.consultarID() if len(objEmp.consultarID()) > 0 else 0 depActivo = True empActiva = True if depDestino != 0: if depDestino[0].Activo == 0: depActivo = False if empDestino != 0: if empDestino[0].Activo == 0: empActiva = False if depActivo and empActiva: if objUsuario.modificarPerfil(): if imagen != "": imagen.save(os.path.join(app.config['IMAGE_UPLOADS'],nombreArchivo)) return "Exito" else: return "Error" else: return "inactivo" return redirect(url_for('inicio.index'))
def agregarUsuario(): if request.method == 'POST' and "ID" in session: objUsuario = Usuario() objEnc = Encriptador() boolImg = True imagen = "" nombre = request.form['nombre'] cedula = request.form['cedula'] email = request.form['email'] contra = objEnc.Encriptar(str(request.form['contra'])) if session['Tipo'] == 1: tipo = int(request.form['tipo']) tipoEmp = int(request.form['tipoEmp']) empresa = request.form['empresa'] dep = int(request.form['departamento']) if int(request.form['departamento'] != 0) else 0 elif session['Tipo'] == 5: empresa = int(session['Empresa']) dep = 0 tipo = 6 elif session['Tipo'] == 2: tipo = int(request.form['tipo']) empresa = int(session['Empresa']) dep = int(session['Departamento']) if int(session['Tipo']) == 2: if tipo not in[3,4]: return "Error" elif int(session['Tipo']) == 5: if tipo != 6: return "Error" if tipo in [2,3,4] and dep == 0: return "Error" if request.files: imagen = request.files["avatar"] if not imagenPermitida(imagen.filename): boolImg = False else: ext = imagen.filename.rsplit(".",1)[1] nombreArchivo = str(uuid.uuid4().hex+"."+ext) objUsuario.setAvatar(str(nombreArchivo)) if boolImg: if session['Tipo'] == 1: if tipoEmp == 2 and (tipo != 5 and tipo != 6): return "Error" elif tipoEmp == 1 and (tipo == 5 or tipo == 6): return "Error" objUsuario.setUsuario(nombre,cedula,email,contra,tipo,empresa,dep) if tipo == 2 and objUsuario.existeTipoUsuario(): return "Gerente Existe" elif tipo == 5 and objUsuario.existeTipoUsuario(): return "ClienteM Existe" if objUsuario.AgregarUsuario(): if imagen != "": imagen.save(os.path.join(app.config['IMAGE_UPLOADS'],nombreArchivo)) return "Exito" else: return "Error" else: return "Error" else: return redirect(url_for('inicio.index'))