def users(user_id=None): """Manage users of PYBOSSA.""" form = SearchForm(request.body) users = [ user for user in user_repo.filter_by(admin=True) if user.id != current_user.id ] if request.method == 'POST' and form.user.data: query = form.user.data found = [ user for user in user_repo.search_by_name(query) if user.id != current_user.id ] [ensure_authorized_to('update', found_user) for found_user in found] if not found: flash("<strong>Ooops!</strong> We didn't find a user " "matching your query: <strong>%s</strong>" % form.user.data) response = dict(template='/admin/users.html', found=found, users=users, title=gettext("Manage Admin Users"), form=form) return handle_content_type(response) response = dict(template='/admin/users.html', found=[], users=users, title=gettext("Manage Admin Users"), form=form) return handle_content_type(response)
def users(user_id=None): """Manage users of PyBossa""" try: form = SearchForm(request.form) users = [ user for user in user_repo.filter_by(admin=True) if user.id != current_user.id ] if request.method == 'POST' and form.user.data: query = form.user.data found = [ user for user in user_repo.search_by_name(query) if user.id != current_user.id ] require.user.update(found) if not found: flash("<strong>Ooops!</strong> We didn't find a user " "matching your query: <strong>%s</strong>" % form.user.data) return render_template('/admin/users.html', found=found, users=users, title=gettext("Manage Admin Users"), form=form) return render_template('/admin/users.html', found=[], users=users, title=gettext("Manage Admin Users"), form=form) except Exception as e: # pragma: no cover current_app.logger.error(e) return abort(500)
def subadminusers(user_id=None): """Manage subadminusers of PyBossa.""" form = SearchForm(request.form) users = [ user for user in user_repo.filter_by(subadmin=True) if user.id != current_user.id ] if request.method == 'POST' and form.user.data: query = form.user.data found = [ user for user in user_repo.search_by_name(query) if user.id != current_user.id ] [ensure_authorized_to('update', found_user) for found_user in found] if not found: flash("<strong>Ooops!</strong> We didn't find a user " "matching your query: <strong>%s</strong>" % form.user.data) return render_template('/admin/subadminusers.html', found=found, users=users, title=gettext("Manage Subadmin Users"), form=form) return render_template('/admin/subadminusers.html', found=[], users=users, title=gettext("Manage Subadmin Users"), form=form)
def subadminusers(): """Manage subadminusers of PyBossa.""" form = SearchForm(request.form) users = [ user for user in user_repo.filter_by(subadmin=True) if user.id != current_user.id ] if request.method == 'POST' and form.user.data: query = form.user.data found = [ user for user in user_repo.search_by_name(query) if user.id != current_user.id ] [ensure_authorized_to('update', found_user) for found_user in found] if not found: markup = Markup('<strong>{}</strong> {} <strong>{}</strong>') flash( markup.format( gettext('Ooops!'), gettext("We didn't find a user matching your query:"), form.user.data)) return render_template('/admin/subadminusers.html', found=found, users=users, title=gettext("Manage Subadmin Users"), form=form) return render_template('/admin/subadminusers.html', found=[], users=users, title=gettext("Manage Subadmin Users"), form=form)
def users(user_id=None): """Manage users of PyBossa.""" form = SearchForm(request.form) users = [user for user in user_repo.filter_by(admin=True) if user.id != current_user.id] if request.method == 'POST' and form.user.data: query = form.user.data found = [user for user in user_repo.search_by_name(query) if user.id != current_user.id] [ensure_authorized_to('update', found_user) for found_user in found] if not found: flash("<strong>Ooops!</strong> We didn't find a user " "matching your query: <strong>%s</strong>" % form.user.data) return render_template('/admin/users.html', found=found, users=users, title=gettext("Manage Admin Users"), form=form) return render_template('/admin/users.html', found=[], users=users, title=gettext("Manage Admin Users"), form=form)
def users(user_id=None): """Manage users of PyBossa""" try: form = SearchForm(request.form) users = [user for user in user_repo.filter_by(admin=True) if user.id != current_user.id] if request.method == 'POST' and form.user.data: query = form.user.data found = [user for user in user_repo.search_by_name(query) if user.id != current_user.id] require.user.update(found) if not found: flash("<strong>Ooops!</strong> We didn't find a user " "matching your query: <strong>%s</strong>" % form.user.data) return render_template('/admin/users.html', found=found, users=users, title=gettext("Manage Admin Users"), form=form) return render_template('/admin/users.html', found=[], users=users, title=gettext("Manage Admin Users"), form=form) except Exception as e: # pragma: no cover current_app.logger.error(e) return abort(500)
def users(user_id=None): """Manage users of PYBOSSA.""" form = SearchForm(request.body) users = [user for user in user_repo.filter_by(admin=True) if user.id != current_user.id] if request.method == 'POST' and form.user.data: query = form.user.data found = [user for user in user_repo.search_by_name(query) if user.id != current_user.id] [ensure_authorized_to('update', found_user) for found_user in found] if not found: markup = Markup('<strong>{}</strong> {} <strong>{}</strong>') flash(markup.format(gettext("Ooops!"), gettext("We didn't find a user matching your query:"), form.user.data)) response = dict(template='/admin/users.html', found=found, users=users, title=gettext("Manage Admin Users"), form=form) return handle_content_type(response) response = dict(template='/admin/users.html', found=[], users=users, title=gettext("Manage Admin Users"), form=form) return handle_content_type(response)
def manageusers(): """Enable/disable users of PyBossa.""" found = [] locs = langs = utypes = timezone = [('', '')] if app_settings.upref_mdata: locs = app_settings.upref_mdata.upref_locations() langs = app_settings.upref_mdata.upref_languages() utypes = app_settings.upref_mdata.mdata_user_types() timezone = app_settings.upref_mdata.mdata_timezones() args = request.args form = SearchForm(request.form) efilters = dict(enabled=True) dfilters = dict(enabled=False) if not current_user.admin: efilters.update(admin=False, subadmin=False) dfilters.update(admin=False, subadmin=False) users = [ user for user in user_repo.filter_deleted_users(**efilters) if user.id != current_user.id ] disabledusers = [ user for user in user_repo.filter_deleted_users(**dfilters) if user.id != current_user.id ] columns = user_repo.get_info_columns() if args.get('filter_by_field'): search_criteria = [] params = {} smart_search_input = helper._get_field_filters(args['filter_by_field']) for field, _, value in smart_search_input: if field in columns: if field == 'languages' or field == 'locations': search_criteria.append( "user_pref -> '{}' @> :data".format(field)) params['data'] = '["{}"]'.format(value) elif field == 'additional_comments': search_criteria.append( "info::json -> 'metadata' ->> 'review' iLike :review") params['review'] = '%{}%'.format(value) else: search_criteria.append( "info::json -> 'metadata' ->> '{}' iLike :info".format( field)) params['info'] = value if search_criteria: criteria = ' AND '.join(search_criteria) found = user_repo.smart_search(current_user.admin, criteria, params) if not found: flash('No user found matching your query') if request.method == 'POST' and form.user.data: query = form.user.data found = [ user for user in user_repo.search_by_name(query) if user.id != current_user.id and can_update_user_info(current_user, user)[0] ] if not found: flash('No user found matching your query: {}'.format( form.user.data)) return render_template('/admin/manageusers.html', found=found, users=users, disabledusers=disabledusers, title=gettext("Enable/Disable Users"), form=form, filter_columns=columns, filter_data=[], locations=locs, languages=langs, user_types=utypes, timezones=timezone)