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)
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)
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)
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)
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'])
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)
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'])
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)
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)
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()