Source code for galaxy.webapps.galaxy.controllers.userskeys

"""
Contains the user interface in the Universe class
"""

from sqlalchemy import false

from galaxy import (
    util,
    web,
)
from galaxy.model.base import transaction
from galaxy.webapps.base.controller import (
    BaseUIController,
    UsesFormDefinitionsMixin,
)


[docs]class User(BaseUIController, UsesFormDefinitionsMixin):
[docs] @web.expose @web.require_login() @web.require_admin def index(self, trans, cntrller, **kwd): return self.get_all_users(trans)
[docs] @web.expose @web.require_login() @web.require_admin def admin_api_keys(self, trans, uid, **kwd): params = util.Params(kwd) uid = params.get("uid", uid) new_key = trans.app.model.APIKeys() new_key.user_id = trans.security.decode_id(uid) new_key.key = trans.app.security.get_new_guid() trans.sa_session.add(new_key) with transaction(trans.sa_session): trans.sa_session.commit() return self.get_all_users(trans)
[docs] @web.expose @web.require_login() @web.require_admin def all_users(self, trans, **kwd): return self.get_all_users(trans)
[docs] @web.json def get_all_users(self, trans): users = [] for user in ( trans.sa_session.query(trans.app.model.User) .filter(trans.app.model.User.table.c.deleted == false()) .order_by(trans.app.model.User.table.c.email) ): uid = int(user.id) userkey = "" for api_user in trans.sa_session.query(trans.app.model.APIKeys).filter( trans.app.model.APIKeys.user_id == uid ): userkey = api_user.key users.append({"uid": trans.security.encode_id(uid), "email": user.email, "key": userkey}) return users