Warning
This document is for an in-development version 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.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)
trans.sa_session.flush()
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