示例#1
0
文件: routes.py 项目: TMust98/Agency
def account():
    if current_user.idTypeAccountOne == 1:
        form = ChangeAccountTypeForm()
    else:
        form = ChangeAccountPriceForm()
    if current_user.idFirm != 1 and current_user.idTypeAccountTwo == 2:
        cursor.execute('select * from firm where id = %s;',
                       (current_user.idFirm, ))
        firm = cursor.fetchone()
    else:
        firm = None
    if form.validate_on_submit():
        if current_user.idTypeAccountOne == 1:
            cursor.execute(
                'update account set idTypeAccountOne = %s where id = %s;',
                (form.typeAccountOne.data, current_user.id))
            conn.commit()
            login_user(load_user(current_user.id))
            flash('Тип учетной записи записан.')
            return redirect(url_for('account'))
        else:
            cursor.execute(
                'update account set servicePrice = %s where id = %s;',
                (form.servicePrice.data, current_user.id))
            conn.commit()
            login_user(load_user(current_user.id))
            flash('Цена за услуги изменена.')
            return redirect(url_for('account'))
    return render_template('account.html',
                           title='Личный кабинет',
                           form=form,
                           firm=firm)
示例#2
0
def appedit(id):
    global next_page

    form = AppForm()
    if request.method == "POST" and form.validate_on_submit():
        data = App.query.filter_by(id=id).first_or_404()
        before = str(data.to_dict())
        data.name = request.form['name']
        data.desc = request.form['desc']
        data.is_active = 'is_active' in request.form

        after = str(data.to_dict())
        var = ParentAudit(parent_id=data.id,
                          a_datetime=datetime.now(),
                          a_user_id=current_user.id,
                          a_username=load_user(current_user.id).username,
                          action="change",
                          before=before,
                          after=after
                          )

        db.session.add(var)
        db.session.commit()
        return redirect(next_page)

    if request.method == 'GET':
        next_page = request.referrer
        appsingle = App.query.filter_by(id=id).first_or_404()
        form.load(appsingle)
    return render_template('appedit.html', form=form, next=request.referrer)
示例#3
0
def index():
    form = PostForm()
    if form.validate_on_submit():
        res = mysql.Add("post", [
            'NULL',
            "'%s'" % form.post.data,
            "'%s'" % current_user.id,
            "'%s'" % now()
        ])
        if res == 1:
            flash('Your post is now live!')
            return redirect(url_for('index'))
    page = request.args.get('page', 1, type=int)
    all_posts = current_user.followed_posts()
    post_per_page = app.config['POSTS_PER_PAGE']
    posts = all_posts[(page - 1) * post_per_page:page *
                      post_per_page if len(all_posts) >= page *
                      post_per_page else len(all_posts)]
    next_url = url_for('explore', page=page + 1) \
        if len(all_posts) > page * post_per_page else None
    prev_url = url_for('explore', page=page - 1) \
        if (page > 1 and len(all_posts) > page * post_per_page) else None
    usernames = []
    for i in posts:
        usernames.append(load_user(i[2]))
    return render_template('index.html',
                           title='Home',
                           form=form,
                           posts=posts,
                           next_url=next_url,
                           prev_url=prev_url,
                           usernames=usernames,
                           izip=izip,
                           avatars=avatar,
                           dt=datetime.strptime)
示例#4
0
def on_user_left(json):
    log('c_user_left', json)
    tower_id = json['tower_id']
    tower = towers[tower_id]

    # We need to custom-load the user based on the jwt token passed up
    user = None
    if not json['anonymous_user']:
        try:
            user_id = jwt.decode(json['user_token'],
                                 app.config['SECRET_KEY'],
                                 algorithms=['HS256'])['id']
            user = load_user(user_id)
        except:
            user_id = session['user_id']
            pass  # leave user set to None

    if not user:
        tower.remove_observer(user_id)
        emit('s_set_observers', {'observers': tower.observers},
             broadcast=True,
             include_self=False,
             room=tower_id)
        return

    tower.remove_user(user_id)
    emit('s_user_left', {'user_name': user.username},
         broadcast=True,
         include_self=True,
         room=tower_id)

    send_assignments(tower_id)
示例#5
0
文件: routes.py 项目: TMust98/Agency
def createAccount():
    if current_user.is_authenticated:
        flash('Для регистрации нового аккаунта выйдите из существующего')
        return redirect(url_for('account'))
    form = CreateAccountForm()
    if form.validate_on_submit():
        cursor.execute('select * from account where login = %s;',
                       (form.login.data, ))
        user = cursor.fetchone()
        if user:
            flash('Учетная запись с таким логином уже существует!')
            return redirect(url_for('createAccount'))
        if form.passwordOne.data == form.passwordTwo.data:
            cursor.execute(
                'insert into account (login, passwordHash, idTypeAccountOne, idTypeAccountTwo, idFirm) values (%s, %s, 1, 1, 1);',
                (
                    form.login.data,
                    generate_password_hash(form.passwordOne.data),
                ))
            conn.commit()
            cursor.execute('select id from account where login = %s;',
                           (form.login.data, ))
            user = cursor.fetchone()
            login_user(load_user(user[0]), remember=0)
            flash('Учетная запись создана успешно. Заполните данные профиля.')
            return redirect(url_for('fillAccount'))
        else:
            flash('Пароли не совпадают.')
            return redirect(url_for('createAccount'))
    return render_template('createAccount.html',
                           title='Создание аккаунта',
                           form=form)
示例#6
0
def table_data():
    data = {}
    if request.method == 'GET':
        return jsonify(data)

    user = load_user(current_user.get_id())
    filters = request.json['filter'] if request.json['filter'] else [
        "任务名", "创建人", "任务状态", "Bladed版本"
    ]
    search_key = request.json['search_key']
    if search_key:
        sql_ele = eval(search_by(filters, search_key))
        if not isinstance(sql_ele, tuple):
            sql_ele = tuple([sql_ele])
        if request.json['filter']:
            all_tasks = Task.query.filter(and_(*sql_ele))
            user_tasks = Task.query.filter(
                and_(Task.user_id.is_(user.id), and_(*sql_ele)))
        else:
            all_tasks = Task.query.filter(or_(*sql_ele))
            user_tasks = Task.query.filter(
                and_(Task.user_id.is_(user.id), or_(*sql_ele)))
    else:
        all_tasks = Task.query.all()
        user_tasks = Task.query.filter_by(user_id=user.id)

    data['all'] = [tsk.to_json(i + 1) for i, tsk in enumerate(all_tasks[::-1])]
    data['user'] = [
        tsk.to_json(i + 1) for i, tsk in enumerate(user_tasks[::-1])
    ]

    return jsonify(data)
示例#7
0
def index():
    user = load_user(current_user.get_id())
    tasks_amount = len(Task.query.filter_by(user_id=user.id).all())

    # delete 必须写在前面,避免select的影响
    delete_task_form = DeleteTaskForm()
    if delete_task_form.delete_submit.data and delete_task_form.validate():
        delete_task(user, delete_task_form)
        logging.log(
            logging.INFO, f"Deleted {delete_task_form.taskname.data} by {user.realname}")
        return redirect(url_for('main.index'))

    controller_tree = get_controller_tree()
    new_task_form = NewTaskForm()
    set_choices(new_task_form, request, controller_tree)
    if new_task_form.create_submit.data and new_task_form.validate():
        create_new_task(user, new_task_form)
        logging.log(
            logging.INFO, f"Created {new_task_form.taskname.data} by {user.realname}")
        return redirect(url_for('main.index'))

    edit_task_form = EditTaskForm()
    set_choices(edit_task_form, request, controller_tree)
    if edit_task_form.modify_submit.data and edit_task_form.validate():
        update_task(user, edit_task_form)
        logging.log(
            logging.INFO, f"Updated {edit_task_form.taskname.data} by {user.realname}")
        return redirect(url_for('main.index'))

    return render_template('index.html', title='主页', user=user, tasks_amount=tasks_amount,
                           new_task_form=new_task_form,
                           edit_task_form=edit_task_form,
                           delete_task_form=delete_task_form,
                           controller_tree=controller_tree
                           )
示例#8
0
def prise():
    form = PriseForm()
    user_id = session.get('user_id', None)
    user = models.load_user(user_id)
    v = models.Vacances.query.filter(models.Vacances.user_id == user_id,
                                     models.Vacances.status == 1).all()
    w = models.Vacances.query.filter(models.Vacances.user_id == user_id,
                                     models.Vacances.status == 0).all()

    solde_vacances = 0
    if len(v) > 0:
        for i in v:
            solde_vacances = solde_vacances + i.nb_jour

    solde_vacances_validation = solde_vacances
    if len(w) > 0:
        for j in w:
            solde_vacances_validation = solde_vacances_validation + j.nb_jour

    if form.validate_on_submit():
        DbMethods.prise_vacances(user_id, form.priseDateDebut.data,
                                 form.priseDateFin.data,
                                 form.priseNbJours.data)
        Mail.vacation_notification(
            user, [form.priseDateDebut.data, form.priseDateFin.data],
            Mail.notification_type.remove_vacation)
        return redirect('/index')
    return render_template('prise.html',
                           title='Vacances - Prise',
                           solde_vacances=solde_vacances,
                           solde_vacances_validation=solde_vacances_validation,
                           form=form)
示例#9
0
def keyvaledit(id):
    global next_page

    form = KeyvalForm()
    if request.method == "POST" and form.validate_on_submit():
        data = Parent.query.filter_by(id=id).first_or_404()
        before = str(data.to_dict())
        data.name = request.form['name']
        data.email = request.form['email']
        data.sex = int(request.form['sex'])
        data.dob = datetime.strptime(str(dateutil.parser.parse(request.form['dob'])).split(" ", 1)[0], '%Y-%m-%d')
        data.is_active = 'is_active' in request.form
        data.income_amount = request.form['income_amount']

        after = str(data.to_dict())
        var = ParentAudit(parent_id=data.id,
                          a_datetime=datetime.now(),
                          a_user_id=current_user.id,
                          a_username=load_user(current_user.id).username,
                          action="change",
                          before=before,
                          after=after
                          )

        db.session.add(var)
        db.session.commit()
        return redirect(next_page)

    if request.method == 'GET':
        next_page = request.referrer
        keyvalsingle = Parent.query.filter_by(id=id).first_or_404()
        form.load(keyvalsingle)
    return render_template('keyvaledit.html', form=form, next=request.referrer)
示例#10
0
def user(username):
    if re.match("^[a-zA-Z0-9_]+$", username) == None:
        return render_template('500.html'), 500
    user = load_user_by_username(username)
    if user == -1:
        flash('Something error!')
        return render_template('500.html'), 500
    if user == 0:
        flash('User is not exists')
        return redirect(url_for('index'))
    page = request.args.get('page', 1, type=int)
    page = page if page > 0 else 1
    all_posts = current_user.followed_posts()
    post_per_page = app.config['POSTS_PER_PAGE']
    posts = all_posts[(page - 1) * post_per_page:page *
                      post_per_page if len(all_posts) >= page *
                      post_per_page else len(all_posts)]
    next_url = url_for('user', username=user.username, page=page + 1) \
        if len(all_posts) > page * post_per_page else None
    prev_url = url_for('user', username=user.username, page=page - 1) \
        if (page > 1 and len(all_posts) > (page - 1) * post_per_page) else None
    usernames = []
    for i in posts:
        usernames.append(load_user(i[2]))
    return render_template('user.html',
                           user=user,
                           posts=posts,
                           usernames=usernames,
                           next_url=next_url,
                           prev_url=prev_url,
                           izip=izip,
                           avatars=avatar,
                           dt=datetime.strptime)
示例#11
0
def edit_utente_profile(user_id, email):
    user = load_user(user_id)
    utente = load_utente(email)
    form = EscalaoPrecoForm(obj=utente)

    lista_escaloes_tuplos = list(map\
                                (lambda dict_escalao:\
                                 tuple(dict_escalao.values()),\
                                 lista_escaloes()))
    form.esc_de_preco.choices = lista_escaloes_tuplos

    with g.db.cursor() as cursor:
        if request.method == "POST":
            morada = request.form.get("morada")
            telemovel = request.form.get("telemovel")
            email = request.form.get("email")
            esc_de_preco = request.form.get("esc_de_preco")
            med_fam_apoio = request.form.get("med_fam_apoio")
            alergias = request.form.get("alergias")
            doencas = request.form.get("doencas")
            nome_a_contactar = request.form.get("nome_a_contactar")
            num_a_contactar = request.form.get("num_a_contactar")

            cursor.execute(sql_utente_telemovel, (telemovel))
            cursor_telemovel = cursor.fetchone()

            cursor.execute(sql_utente_email, (email))
            cursor_email = cursor.fetchone()

            if cursor_telemovel is not None and str(utente.telemovel) !=\
               str(telemovel):
                flash("Nº já existe. Introduza outro.")
                return redirect(url_for('utente.edit_utente_profile',\
                                        user_id=user_id,email=email))
            if cursor_email is not None and utente.email != email:
                flash("Email já existe. Introduza outro.")
                return redirect(url_for('utente.edit_utente_profile',\
                                        user_id=user_id,email=email))
            else:
                if nome_a_contactar == "" or num_a_contactar == "":
                    nome_a_contactar = None
                    num_a_contactar = None

                cursor.execute(sql_utente_update, (telemovel, email, morada,\
                                                   nome_a_contactar,\
                                                   num_a_contactar,\
                                                   esc_de_preco,\
                                                   med_fam_apoio,\
                                                   alergias, doencas,\
                                                   utente.email))
                g.db.commit()
                flash('Alterações guardadas!')
                return redirect(url_for('utente.utente', user_id=user_id,\
                                        email=email))
    return render_template('utente/edit_utente_profile.html',\
                           title='Editar perfil do utente',\
                           utente=utente,form=form, user=user)
示例#12
0
文件: views.py 项目: shashi1996/GTMS
def login():
	data = request.get_json()
	username = data['username']
	password = data['password']
	#verify user
	if Database.login(username, password):
		user = load_user(username)
		login_user(user)
		return redirect("/user/"+username)
	else:
		return "Incorrect credentials. Please try again.",401
示例#13
0
文件: routes.py 项目: TMust98/Agency
def firms():
    cursor.execute('select * from firm where id != 1;')
    firms = cursor.fetchall()
    form = ChoiceFirmForm()
    if form.validate_on_submit():
        cursor.execute('update account set idFirm = %s where id = %s;', (
            form.idFirm.data,
            current_user.id,
        ))
        conn.commit()
        login_user(load_user(current_user.id))
        flash('Вы успешно выбрали фирму.')
    return render_template('firms.html', title='Фирмы', firms=firms, form=form)
示例#14
0
def reset():
    form = ResetPassWordForm()
    next_state = "返回"
    if form.validate_on_submit():
        user_id = current_user.get_id()
        user = load_user(user_id)
        if user.check_password(form.old_password.data):
            user.password = form.new_password.data
            logout_user()
            next_state = "重新登录"
            flash("密码修改成功!")
        else:
            flash("密码错误!")
    return render_template('resetpw.html', form=form, next=next_state, title='修改密码', cold=False)
示例#15
0
def auditaddtest():
    addcount = request.args.get('addcount', 20, type=int)
    parentid = request.args.get('parentid', 1, type=int)
    for addone in range(addcount):
        var = ParentAudit(parent_id=parentid,
                          a_datetime=datetime.now(),
                          a_user_id=current_user.id,
                          a_username=load_user(current_user.id).username,
                          action="change",
                          before="snapshot of parent before",
                          after="snapshot of parent after")
        db.session.add(var)
    db.session.commit()
    return redirect('/list')
示例#16
0
def on_toggle_bookmark(json):

    # We need to custom-load the user based on the jwt token passed up
    user = None
    try:
        user_id = jwt.decode(json['user_token'],
                             app.config['SECRET_KEY'],
                             algorithms=['HS256'])['id']
        user = load_user(user_id)
    except:
        pass  # leave user set to None

    log('c_toggle_bookmark', current_user, json['tower_id'])
    tower = towers[json['tower_id']]
    user.toggle_bookmark(tower)
示例#17
0
def utente(user_id, email):
    user = load_user(user_id)
    utente = load_utente(email)
    with g.db.cursor() as cursor:
        if request.method == "POST":
            comentarios = request.form.get("comentarios")
            cursor.execute(sql_utente_comentarios, (comentarios,\
                                                    utente.email))
            g.db.commit()
            flash('Guardado!')
            return redirect(url_for('utente.utente', user_id=user_id,\
                                    email=email))
    return render_template('utente/utente.html', utente=utente,\
                           title='Perfil do utente', user_equipas =\
                           equipas_do_user(user.username), user=user)
示例#18
0
文件: routes.py 项目: ronjohn4/bkv
def writeaudit(parent_id, before, after):
    if before:
        change = "change"
    else:
        change = "add"
    var = Audit(model='keyval',
                parent_id=parent_id,
                a_datetime=datetime.now(),
                a_user_id=current_user.id,
                a_username=load_user(current_user.id).username,
                action=change,
                before=before,
                after=after)

    db.session.add(var)
示例#19
0
def on_user_left(json):
    log('c_user_left', json)
    tower_id = json['tower_id']
    tower = towers[tower_id]

    # We need to custom-load the user based on the jwt token passed up
    user = None
    if not json['anonymous_user']:
        try:
            user_id = jwt.decode(json['user_token'],
                                 app.config['SECRET_KEY'],
                                 algorithms=['HS256'])['id']
            user = load_user(user_id)
        except:
            user_id = session.get('user_id')
            pass  # leave user set to None
    else:
        user_id = session.get('user_id')
        pass  # leave user set to None

    if user_id is None:
        return

    if not user:
        tower.remove_observer(user_id)
        emit('s_set_observers', {'observers': tower.observers},
             broadcast=True,
             include_self=False,
             room=tower_id)
        return

    tower.remove_user(user_id)
    emit('s_user_left', {'user_name': user.username},
         broadcast=True,
         include_self=True,
         room=tower_id)

    # Now that the user is gone, check if there are any hosts left. If not, make sure
    # the tower is not in host mode.
    if not tower.host_present():
        tower.host_mode = False
        emit('s_host_mode', {
            'tower_id': tower_id,
            'new_mode': False
        },
             broadcast=True,
             include_self=True,
             room=tower_id)
示例#20
0
文件: routes.py 项目: kankanhua/CTFS
def explore():
    page = request.args.get('page', 1, type=int)
    page = page if page > 0 else 1
    all_posts = mysql.All("post", order=["id desc"])
    post_per_page = app.config['POSTS_PER_PAGE']
    posts = all_posts[
        (page - 1) * post_per_page:page * post_per_page if len(all_posts) >= page * post_per_page else len(
            all_posts)]
    next_url = url_for('explore', page=page + 1) \
        if len(all_posts) > page * post_per_page else None
    prev_url = url_for('explore', page=page - 1) \
        if (page > 1 and len(all_posts) > (page - 1) * post_per_page) else None
    usernames = []
    for i in posts:
        usernames.append(load_user(i[2]))
    return render_template('index.html', title='Home',
                           posts=posts, usernames=usernames, next_url=next_url,
                           prev_url=prev_url, izip=izip, avatars=avatar, dt=datetime.strptime)
示例#21
0
def login():
    if current_user.is_authenticated:
        flash('Вы уже авторизированны!')
        return redirect(url_for('cart'))
    form = LoginForm()
    if form.validate_on_submit():
        cursor.execute(
            'select id, password_hash from account where login = %s;',
            (form.login.data, ))
        user = cursor.fetchone()
        if user is None or not check_password_hash(user[1],
                                                   form.password.data):
            flash('Неверный логин или пароль!')
            return redirect(url_for('login'))
        login_user(load_user(user[0]), remember=form.remember_me.data)
        flash('Вы успешно авторизировались.')
        return redirect(url_for('cart'))
    return render_template('login.html', title='Вход', form=form)
示例#22
0
文件: routes.py 项目: TMust98/Agency
def changeAccount():
    form = ChangeAccountForm()
    if form.validate_on_submit():
        cursor.execute(
            'select id from account where (email = %s or phone = %s ) and id != %s;',
            (
                form.email.data,
                form.phone.data,
                current_user.id,
            ))
        user = cursor.fetchone()
        if user:
            flash('Учетная запись с таким email или телефоном уже существует!')
            return redirect(url_for('changeAccount'))
        cursor.execute(
            'update account set name = %s, email = %s, phone = %s, idTypeAccountTwo = %s where id = %s;',
            (
                form.name.data,
                form.email.data,
                form.phone.data,
                form.typeAccountTwo.data,
                current_user.id,
            ))
        conn.commit()
        login_user(load_user(current_user.id))
        flash('Данные изменены.')
        return redirect(url_for('account'))
    elif request.method == 'GET':
        cursor.execute(
            'select name, email, phone, idTypeAccountTwo from account where id = %s;',
            (current_user.id, ))
        user = cursor.fetchone()
        if user[0]:
            form.name.data = user[0]
        if user[1]:
            form.email.data = user[1]
        if user[2]:
            form.phone.data = user[2]
        if user[3]:
            form.typeAccountTwo.data = user[3]
    return render_template('changeAccount.html',
                           title='Изменение данных профиля',
                           form=form)
示例#23
0
def login():
    if current_user.is_authenticated:  # проверка пользователя на авторизированость
        return redirect(url_for('main.index'))
    form = LoginForm()
    if form.validate_on_submit(
    ):  # проверка на нажатие пользователем кнопки Submit
        cursor = conn.cursor()
        cursor.execute(
            'select password,login,iduser from Uzer where login = %s',
            [form.login.data])
        user = cursor.fetchone()
        conn.commit()
        parol = form.password.data
        if user is None or not check_password_hash(user[0], parol):
            flash(_('Invalid username or password'))
            return redirect(url_for('auth.login'))
        user = load_user(user[2])
        login_user(user, remember=form.remember_me.data,
                   force=True)  # создание пользователя как обьекта
        return redirect(url_for('main.user', id=current_user.id))
    return render_template('auth/login.html', title=_('Sign In'), form=form)
示例#24
0
def index():
    user = load_user(current_user.id)
    if user.is_parent_user:
        children = User.query.filter_by(parent_id=current_user.id).all()

        account_info = []
        for child in children:
            account_name = "No account"
            account_id = 0
            if len(child.accounts.all()) > 0:
                account_name = child.accounts[0].name
                account_id = child.accounts[0].id
                account_balance = child.accounts[0].balance

            account_info.append({
                "name": child.username,
                "account_balance": account_balance,
                "account_name": account_name,
                "account_id": account_id
            })

    else:
        account_info = []
        account_name = "No account"
        account_id = 0
        if len(user.accounts.all()) > 0:
            account_name = user.accounts[0].name
            account_id = user.accounts[0].id
            account_balance = user.accounts[0].balance

        account_info.append({
            "name": user.username,
            "account_balance": account_balance,
            "account_name": account_name,
            "account_id": account_id
        })

    return render_template('index.html',
                           title="Home",
                           account_info=account_info)
示例#25
0
def user(id):
    user = load_user(id)
    form = CategoriaForm(obj=user)
    lista_categorias_user_tuplos = list(map(lambda dict_categoria_user:\
                                 tuple(dict_categoria_user.values()),\
                                 lista_categorias_user()))
    form.categoria.choices = lista_categorias_user_tuplos

    with g.db.cursor() as cursor:
        if request.method == "POST":
            telemovel = request.form.get("telemovel")
            email = request.form.get("email")
            categoria = request.form.get("categoria")

            cursor.execute(sql_user_telemovel, (telemovel))
            cursor_telemovel = cursor.fetchone()

            cursor.execute(sql_user_email, (email))
            cursor_email = cursor.fetchone()

            if cursor_telemovel is not None and str(user.telemovel)\
               != str(telemovel):
                flash("Nº de telemóvel já existe. Introduza outro.")
                return redirect(url_for('main.user', id=id))

            if cursor_email is not None and user.email !=\
               email:
                flash("Email já existe. Introduza outro.")
                return redirect(url_for('main.user', id=id))
            else:
                cursor.execute(sql_user_update,\
                               (telemovel, email,\
                                categoria, user.email))
                g.db.commit()
                flash('Alterações guardadas!')
                return redirect(url_for('main.user', id=id))
    return render_template('user/user.html', user=user, user_equipas =\
                           equipas_do_user(user.username), form = form,\
                           title='Utilizador: ' + user.username)
示例#26
0
def create_account():
    if current_user.is_authenticated:
        flash('У вас уже есть аккаунт!')
        return redirect(url_for('cart'))
    form = NewAccountForm()
    if form.validate_on_submit():
        cursor.execute('select * from account where login = %s or email = %s;',
                       (
                           form.login.data,
                           form.email.data,
                       ))
        user = cursor.fetchone()
        if user:
            flash('Аккаунт с таким логином или email уже существует!')
            return redirect(url_for('create_account'))
        if form.password.data == form.password_replay.data:
            cursor.execute(
                'insert into account (email, login, password_hash, fio) values (%s, %s, %s, %s);',
                (
                    form.email.data,
                    form.login.data,
                    generate_password_hash(form.password.data),
                    form.fio.data,
                ))
            conn.commit()
        else:
            flash('Пароли не совпадают!')
            return redirect(url_for('create_account'))
        cursor.execute('select id from account where login = %s;',
                       (form.login.data, ))
        user_id = cursor.fetchone()
        if user_id:
            login_user(load_user(user_id[0]))
            flash('Вы успешно зарегистрировали новый аккаунт!')
            return redirect(url_for('cart'))
    return render_template('create_account.html',
                           title='Регистрация',
                           form=form)
示例#27
0
文件: routes.py 项目: TMust98/Agency
def fillAccount():
    form = ChangeAccountForm()
    if form.validate_on_submit():
        cursor.execute(
            'select id from account where email = %s or phone = %s;', (
                form.email.data,
                form.phone.data,
            ))
        user = cursor.fetchone()
        if user:
            flash('Учетная запись с таким email или телефоном уже существует!')
            return redirect(url_for('fillAccount'))
        cursor.execute(
            'update account set name = %s, email = %s, phone = %s, idTypeAccountTwo = %s where id = %s;',
            (form.name.data, form.email.data, form.phone.data,
             form.typeAccountTwo.data, current_user.id))
        conn.commit()
        login_user(load_user(current_user.id), remember=0)
        flash('Спасибо за заполнение данных.')
        return redirect(url_for('account'))
    return render_template('changeAccount.html',
                           title='Заполнение данных профиля',
                           form=form)
示例#28
0
 def test_user_loader(self):
     db.create_all()
     u = User(login='******', password='******')
     db.session.add(u)
     db.session.commit()
     self.assertTrue(load_user(u.id) == u)
示例#29
0
def on_join(json):
    log('c_join', json)

    # First, get the tower_id & tower from the client and find the tower
    tower_id = json['tower_id']
    tower = towers[tower_id]

    # Next, join the tower
    join_room(tower_id)
    log('SETUP Joined tower:', tower_id)

    # We need to custom-load the user based on the jwt token passed up
    user = None
    if not json['anonymous_user']:
        try:
            user_id = jwt.decode(json['user_token'],
                                 app.config['SECRET_KEY'],
                                 algorithms=['HS256'])['id']
            user = load_user(user_id)
        except:
            pass  # leave user set to None

    # Whether the user is anonymous or not, send them the list of current users
    emit('s_set_userlist', {'user_list': tower.user_names})

    # If the user is anonymous, mark them as an observer and set some cookies
    if not user:
        # Check they're not already in the room
        if 'user_id' in session.keys():
            tower.remove_observer(session['user_id'])
        session['user_id'] = assign_user_id()
        tower.add_observer(session['user_id'])
        log('SETUP Observer joined tower:', tower_id)
        emit('s_set_observers', {'observers': tower.observers},
             broadcast=True,
             include_self=True,
             room=tower_id)
        log('SETUP observer s_set_observers', tower.observers)
    else:
        # The user is logged in. Add this as a recent tower
        user.add_recent_tower(tower)
        # If the user is logged in, but is already in the room: Remove them (in
        # preparation for adding them again)
        if user.username in tower.users.keys():
            log('SETUP User already present')
            tower.remove_user(user.id)
            emit('s_user_left', {'user_name': user.username},
                 broadcast=True,
                 include_self=True,
                 room=tower_id)
        # For now: Keeping the "id/username" split in the tower model
        # Eventually, this will allow us to have display names different
        # from the username
        tower.add_user(user.id, user.username)

        # Hack to fix a bug with the multiserver setup
        emit('s_size_change', {'size': tower.n_bells})
        emit('s_audio_change', {'new_audio': tower.audio})

        emit('s_user_entered', {'user_name': user.username},
             broadcast=True,
             include_self=True,
             room=json['tower_id'])

    # Store the tower in case of accidental disconnect
    # We need to do it under the SocketIO SID, otherwise a refresh might kick us out of the room
    if not 'tower_ids' in session.keys():
        session['tower_ids'] = {}
    session['tower_ids'][request.sid] = json['tower_id']
    session.modified = True
示例#30
0
def submission():

    user = load_user(current_user.id)
    query_seq = Post(author=user).query.order_by(Post.timestamp.desc()).first()

    query_seq = query_seq.body

    hasher = hashlib.md5(query_seq.encode('ASCII'))
    hasher = hasher.hexdigest()[:50]
    hasher = hasher + str(random.randint(1, 10000))

    sequence = '/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/backend/Sequences_for_prediction.fa'

    with open(sequence, 'w') as outfile:
        outfile.write(str(query_seq))

    with open(sequence, 'a') as outfile:
        with open(sequence, 'r') as fin:
            lines = fin.readlines()
            # flash(lines[-1])
            if lines[-1] != '>':
                outfile.write('\n>\n')

    sequences = []
    with open(sequence, 'r') as fin:
        in_sequence = ''
        for line in fin:
            if line.startswith('>'):
                sequences.append(in_sequence)
                in_sequence = ''
            else:
                in_sequence += line.strip()

    # flash(sequences)

    sequences = list(filter(None, sequences))

    # flash(sequences)
    # flash(query_seq)
    prediction_sets = []
    title_set = []
    dummy_email_list = [
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**', '*****@*****.**',
        '*****@*****.**'
    ]

    for seq, dummy_email in zip(sequences, itertools.cycle(dummy_email_list)):
        DNA, RNA, protein, protein_length, Hermes_final_solution = Launcher(
            dummy_email, seq)
        prediction_sets.append(
            [DNA, RNA, protein, protein_length, Hermes_final_solution])
        title_set.append([
            'DNA sequence: ', 'RNA sequence: ', 'Amino acid sequence: ',
            'Length of the protein: ', 'Final Hermes_Prediction Solution: '
        ])
        if Hermes_final_solution == "":
            flash(
                "Unfortunately there is an issue with a protein layer server and an optimal result is unattainable at this momment, please try again later"
            )

    count = 1
    message = ""
    with open(
            "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/solved_prediction_set.txt",
            'w') as prediction_file:
        for pred_set, t_set in zip(prediction_sets, title_set):
            prediction_file.write("Submission " + str(count) + '\n')
            message += "Submission " + str(count) + '\n'
            message += '\n'
            for element1, element2 in zip(pred_set, t_set):
                prediction_file.write(str(element2))
                prediction_file.write(str(element1) + '\n')
                message += '\n'
                message += str(element2)
                message += str(element1) + '\n'
            count += 1

    with open(
            "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/base_prediction.html",
            'r') as base_file:
        with open(
                "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/prediction.html",
                "w") as final_file:
            lines = base_file.readlines()
            for line in lines:
                final_file.write(line)

    with open(
            "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/solved_prediction_set.txt",
            "r") as contents:
        with open(
                "/Users/LarryBliss/Documents/Viper 2/Hermes_Prediction/app/templates/prediction.html",
                "a") as e:
            for lines in contents.readlines():
                if lines != '\n' or lines != None:
                    e.write('<pre style="font-size:18px">' + lines +
                            "</pre> <br>\n")
            e.write("{% endblock %}")

    send_email(user.email, message)
    return redirect(url_for('main.specific_submission', hasher=hasher))
示例#31
0
 def test_user_loader(self):
     db.create_all()
     u = User(login='******', password='******')
     db.session.add(u)
     db.session.commit()
     self.assertTrue(load_user(u.id) == u)
 def test_user_loader(self):
     db.create_all()
     u = User(email='*****@*****.**', username='******', password='******')
     db.session.add(u)
     db.session.commit()
     self.assertTrue(load_user(u.id) == u)
示例#33
0
 def test_user_loader(self):
     db.create_all()
     u = User(email='*****@*****.**', username='******', password='******')
     db.session.add(u)
     db.session.commit()
     self.assertTrue(load_user(u.id) == u)