Exemplo n.º 1
0
def list_users():
    """
    Renders the list users page
    """
    page_num = int(request.args.get("page", 0))
    per_page = mainApp.config["NUM_ENTRIES_PER_PAGE"][0]
    user_db = UserDB()
    role_db = RoleDB()

    if current_user.is_authenticated() and current_user.is_active():
        is_admin = user_db.in_group(current_user, mainApp.config["ADMIN_GROUP"])
        all_activities = set()
        for m in role_db.get_roles(current_user):
            acts = role_db.get_activities(m.role_id)
            for act in acts:
                if acts[act]:
                    all_activities.add(act)

        can_edit_users = "edit_user" in all_activities

        if is_admin or "view_users" in all_activities:
            if request.method == "POST":
                if "new" in request.form:
                    return redirect(url_for("admin_user.new_user"))
                elif "delete" in request.form:
                    uids = request.form.getlist("select")
                    for uid in uids:
                        try:
                            user_db.delete(int(uid))
                            flash(_('User with ID "{0}" deleted.'.format(uid)))
                        except UserNotFound:
                            flash(_('"{0}" user id not found!'.format(uid)), "error")
                elif "update" in request.form:
                    uids = {int(i): True for i in request.form.getlist("active")}
                    if len(uids) > 0:
                        users = user_db.get_all_users()
                        for u in users:
                            if u.id in uids:
                                u.active = True
                            else:
                                u.active = False
                            user_db.update_user(u)
                # import ipdb; ipdb.set_trace()
            users = user_db.get_all_users()
            total_pages = 0
            if len(users) > per_page:
                total_pages = int(ceil(float(len(users)) / float(per_page)))

            return render_template(
                "list_users.html",
                users=users,
                state=get_state(),
                page_num=page_num,
                total_pages=total_pages,
                can_edit_users=can_edit_users,
                is_admin=is_admin,
                title=_("Users"),
                delete_button=_("Delete"),
                update_button=_("Update"),
                new_button=_("New User"),
                del_title=_("Delete User(s)"),
                cancel_button=_("Cancel"),
                del_warn=_("Deleting users is a permanent action. " "Are you sure?"),
            )
        else:
            return _not_auth()
    else:
        return _not_auth()
Exemplo n.º 2
0
import sqlite3
import sys

from noink.user_db import UserDB

if len(sys.argv) != 3:
    print("usage:")
    print("{0} /path/to/sqlite.db outfile".format(sys.argv[0]))
    sys.exit(1)

conn = sqlite3.connect(sys.argv[1])
c = conn.cursor()

userdb = UserDB()
users = userdb.get_all_users()

def display_users():
    print("ID\t:User")
    print("--\t:----")
    for u in users:
        print("{0}\t:{1}".format(u.id, u.name))

with open(sys.argv[2], 'w') as outfile:
    for row in c.execute("select * from users"):
        display_users()
        print("\nUser ID: {0}".format(row[0]))
        print("Username: {0}".format(row[1]))
        uid = input("Enter a user mapping or -1 for no map: ")
        print("--------------------")
        if uid >= 0: