Exemplo n.º 1
0
def rule_admins():
    if user_role() < 1:
        abort(404)
    vuses = VUS.query.all()
    admins = User.query.filter(User.role > 0).filter(
        User.role != USER_STATES['ROLE_SUPER_ADMIN'])
    return render_template(
        'rule_admins.html',
        title=u'Управление администраторами',
        tab_active=7,
        is_super_admin=user_role() == USER_STATES['ROLE_SUPER_ADMIN'],
        admins=admins,
        vuses=vuses)
Exemplo n.º 2
0
def profile():
    if user_role() > 0:
        return redirect('ready')

    processing_consent = current_user.processing_consent
    sections_arr = get_sections_data_by_id(current_user.id, get_user_tables())
    section_statuses = get_section_statuses(current_user.id)
    is_approved = current_user.approved
    quiz_status = get_quiz_state(current_user.id)
    comments = get_section_comments(current_user.id)
    if processing_consent:
        return render_template('user.html',
                               title=u'Данные',
                               sections=sections_arr,
                               table_states=TABLE_STATES,
                               section_statuses=section_statuses,
                               is_approved=is_approved,
                               quiz_status=quiz_status,
                               quiz_states=QUIZ_STATES,
                               user_id=current_user.id,
                               comments=comments,
                               navprivate=True)
    else:
        return render_template('processing_consent.html',
                               title=u'Согласие на обработку',
                               navprivate=True)
Exemplo n.º 3
0
def search():
    if user_role() < 1:
        abort(404)
    vuses = []
    if user_role() == USER_STATES['ROLE_ADMIN']:
        admin_vuses = Admins_vuses.query.filter_by(user_id=current_user.id)
        vus_ids = [x.vus_id for x in admin_vuses]
        vuses = VUS.query.filter(db.or_(
            VUS.id == v for v in vus_ids)).filter(VUS.is_active == True)
    else:
        vuses = VUS.query.filter_by(is_active=True)

    return render_template('search.html',
                           title=u'Поиск',
                           tab_active=5,
                           vuses=vuses)
Exemplo n.º 4
0
def to_page_approve_user(user_id):
    if user_role() < 1:
        abort(404)

    user = User.query.get(user_id)
    (is_readonly,
     is_forbidden) = get_admin_rights_for_vus(current_user.id, user.vus_id)
    sections_arr = get_sections_data_by_id(
        user_id,
        get_admin_tables() + get_user_tables())
    admin_sections = set(get_admin_tables())

    section_statuses = get_section_statuses(user_id)
    comments = get_section_comments(user_id)
    status = get_quiz_state(user_id)

    return render_template('user-admin.html',
                           title=u'Одобрение аккаунта',
                           sections=sections_arr,
                           table_states=TABLE_STATES,
                           quiz_status=status,
                           section_statuses=section_statuses,
                           user_id=user_id,
                           navprivate=True,
                           quiz_states=QUIZ_STATES,
                           comments=comments,
                           is_readonly=is_readonly,
                           is_forbidden=is_forbidden,
                           admin_sections=admin_sections)
Exemplo n.º 5
0
def vuses():
    if user_role() < 1:
        abort(404)

    s = VUS()
    fields = get_fields('VUS')
    fields = [
        InputValue(x[0], s.get_russian_name(x[0]), x[1], s.placeholder(x[0]))
        for x in fields
    ]
    fields = filter(lambda x: x.valid, fields)
    vuses = VUS.query.all()
    return render_template(
        'vuses.html',
        fields=fields,
        vuses=vuses,
        is_super_admin=user_role() == USER_STATES['ROLE_SUPER_ADMIN'])
Exemplo n.º 6
0
def ready():
    if user_role() < 1:
        return redirect(url_for('profile'))
    vuses = []
    if user_role() == USER_STATES['ROLE_ADMIN']:
        admin_vuses = Admins_vuses.query.filter_by(user_id=current_user.id)
        vus_ids = [x.vus_id for x in admin_vuses if x.is_write]
        vuses = VUS.query.filter(db.or_(VUS.id == v for v in vus_ids))\
        .filter(VUS.is_active==True)
        users = db.session.query(User).filter_by(role = 0, approved = True)\
        .filter(db.or_(User.vus_id == v for v in vus_ids)).order_by(desc(User.entrance_year))\
        .order_by(User.vus_id)
    else:
        vuses = VUS.query.filter_by(is_active=True)
        users = db.session.query(User).filter_by(role = 0, approved = True)\
        .order_by(desc(User.entrance_year)).order_by(User.vus_id)

    documents = Document.query.all()

    userInfo = []
    for user in users:
        vusString = ''
        for vus in vuses:
            if vus.id == user.vus_id:
                vusString = vus.to_string()
                break

        userInfo.append({
            'id': user.id,
            'lastName': user.students_info.basic_information.last_name,
            'firstName': user.students_info.basic_information.first_name,
            'middleName': user.students_info.basic_information.middle_name,
            'year': user.login[-4:],
            'vus': vusString
        })

    docs = []
    for document in documents:
        docs.append({'id': document.id, 'name': document.name})

    return render_template('ready.html',
                           title=u'Готовые',
                           tab_active=1,
                           users=userInfo,
                           docs=docs,
                           vuses=vuses)
Exemplo n.º 7
0
def account_creator():
    if user_role() < 1:
        abort(404)
    vuses = []
    if user_role() == USER_STATES['ROLE_ADMIN']:
        admin_vuses = Admins_vuses.query.filter_by(user_id=current_user.id)
        vus_ids = [x.vus_id for x in admin_vuses if x.is_write]
        vuses = VUS.query.filter(db.or_(VUS.id == v for v in vus_ids))\
        .filter(VUS.is_active==True)
    else:
        vuses = VUS.query.filter_by(is_active=True)

    return render_template(
        'account_creator.html',
        title=u'Создание аккаунтов',
        tab_active=4,
        vuses=vuses,
        is_super_admin=current_user.role == USER_STATES['ROLE_SUPER_ADMIN'])
Exemplo n.º 8
0
def documents():
    if user_role() < 1:
        abort(404)
    vuses = []
    if user_role() == USER_STATES['ROLE_ADMIN']:
        admin_vuses = Admins_vuses.query.filter_by(user_id=current_user.id)
        vus_ids = [x.vus_id for x in admin_vuses if x.is_write]
        vuses = VUS.query.filter(db.or_(VUS.id == v for v in vus_ids))\
        .filter(VUS.is_active==True)
        docs = Document.query.filter(
            db.or_(Document.vus_id == v for v in vus_ids))
    else:
        vuses = VUS.query.filter_by(is_active=True)
        docs = Document.query.all()

    vuses_name_by_id = {vus.id: vus.to_string() for vus in vuses}
    return render_template('documents.html',
                           title=u'Документы',
                           tab_active=3,
                           vuses=vuses,
                           vuses_name_by_id=vuses_name_by_id,
                           docs=docs)
Exemplo n.º 9
0
def inprocess():
    role = user_role()
    if role < 1:
        abort(404)
    vuses = []
    if user_role() == USER_STATES['ROLE_ADMIN']:
        admin_vuses = Admins_vuses.query.filter_by(user_id=current_user.id)
        vus_ids = [x.vus_id for x in admin_vuses if x.is_write]
        vuses = VUS.query.filter(db.or_(
            VUS.id == v for v in vus_ids)).filter(VUS.is_active == True)
        users = db.session.query(User).filter_by(role = 0, approved = False)\
        .filter(db.or_(User.vus_id == v for v in vus_ids)).order_by(desc(User.entrance_year))\
        .order_by(User.vus_id)
    else:
        vuses = VUS.query.filter_by(is_active=True)
        users = db.session.query(User).filter_by(role = 0, approved = False)\
        .order_by(desc(User.entrance_year)).order_by(User.vus_id)
    vuses = {vus.id: vus for vus in vuses}
    return render_template('inprocess.html',
                           title=u'В процессе',
                           tab_active=2,
                           users=users,
                           vuses=vuses)
Exemplo n.º 10
0
def login():
    if request.method == 'GET':
        role = user_role()
        if role < 0:
            return render_template('login.html',
                                   navprivate=True,
                                   title=u'Вход')
        elif role == 0:
            return redirect(url_for('profile'))
        else:
            return redirect(url_for('ready'))

    data = json.loads(request.data)
    login = data['login']
    password = data['password']
    registered_user = User.query.filter_by(login=login).first()

    if registered_user is None or not check_password_hash(
            registered_user.password, password):
        return gen_error(u'Неправильная пара ЛОГИН-ПАРОЛЬ')
    login_user(registered_user)
    return gen_success()