Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
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