def initial_insert(): rol_1 = Rol(id=1, nombre="Monitor") rol_2 = Rol(id=2, nombre="Asistente") rol_3 = Rol(id=3, nombre="Profesor") rol_4 = Rol(id=4, nombre="Administrador") db.session.add(rol_1) db.session.add(rol_2) db.session.add(rol_3) db.session.add(rol_4) hashed_password = bcrypt.generate_password_hash("admin1").decode("utf-8") user = Usuario(login="******", password=hashed_password, rol_id=4, nombres="Admin", apellidos="Admin", activado=True) db.session.add(user) curso = Curso(nombre="Opti") db.session.add(curso) semestre = Semestre(nombre="201920") db.session.add(semestre) db.session.commit()
def crearProfesor(curso_id, semestre_id): user_id = current_user.get_id() user = Usuario.query.filter_by(id=user_id).first() if user.rol_id == 1: abort(403) form = CrearMonitorForm() password = randomString(10) if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash(password).decode( "utf-8") user = Usuario(login=form.login.data, password=hashed_password, rol_id=3, activado=False) db.session.add(user) db.session.commit() usuario = Usuario.query.filter_by(login=form.login.data).first() usuario_creado_email(usuario) flash( f"Profesor creado exitosamente. Es necesario que este usuario establezca su propia contraseña.", "success") return redirect( url_for("usuarios.verMonitores", curso_id=curso_id, semestre_id=semestre_id)) return render_template("usuarios/crear_monitor.html", title="Crear profesor", form=form, legend="Profesor")
def register(): user_id = current_user.get_id() user = Usuario.query.filter_by(id=user_id).first() if user.rol_id != 4: abort(403) roles = [(r.id, r.nombre) for r in Rol.query.all()] form = RegistrationForm(request.form) form.rol.choices = roles password = randomString(10) if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash(password).decode( "utf-8") user = Usuario(login=form.login.data, password=hashed_password, rol_id=form.rol.data, activado=False) db.session.add(user) db.session.commit() usuario = Usuario.query.filter_by(login=form.login.data).first() usuario_creado_email(usuario) flash( f"Usuario creado exitosamente. Es necesario que este usuario establezca su propia contraseña.", "success") return redirect(url_for("usuarios.get_usuarios")) return render_template("usuarios/crear_usuario.html", title="Crear usuario", form=form)
def cambiar_contrasena(usuario_id): user = Usuario.query.get_or_404(usuario_id) form = EstablecerContraseñaForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user.password = hashed_password db.session.commit() flash('La constreña ha sido definida', 'success') return redirect(url_for('cursos.get_cursos')) return render_template('usuarios/establecerContrasena.html', title='Cambiar contraseña', form=form)
def reset_password(token): if current_user.is_authenticated: return redirect(url_for('main.home')) user = Usuario.verify_token_password(token) if user is None: flash( 'El link de cambio de contraseña ha expirado. Necesitas crear uno nuevo de la misma manera en que creaste el anterior', 'warning') return redirect(url_for('main.home')) form = EstablecerContraseñaForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user.password = hashed_password db.session.commit() flash('La constreña ha sido definida. Ya puedes iniciar sesión.', 'success') return redirect(url_for('usuarios.login')) return render_template('usuarios/establecerContrasena.html', title='Cambiar contraseña', form=form)