From 80688532dbd3c4d207a3808941017dd142199c47 Mon Sep 17 00:00:00 2001 From: tobes Date: Wed, 3 Oct 2012 15:47:45 +0100 Subject: [PATCH] [#2939] Fix for admin controller --- ckan/controllers/admin.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ckan/controllers/admin.py b/ckan/controllers/admin.py index 5246e238553..78eb14505de 100644 --- a/ckan/controllers/admin.py +++ b/ckan/controllers/admin.py @@ -6,6 +6,7 @@ import ckan.authz import ckan.lib.authztool import ckan.model as model +import ckan.logic from ckan.model.authz import Role roles = Role.get_all() @@ -17,14 +18,16 @@ _ = base._ def get_sysadmins(): - q = model.Session.query(model.SystemRole).filter_by(role=model.Role.ADMIN) - return [uor.user for uor in q.all() if uor.user] + q = model.Session.query(model.User).filter(model.User.sysadmin==True) + return q.all() class AdminController(base.BaseController): def __before__(self, action, **params): super(AdminController, self).__before__(action, **params) - if not ckan.authz.Authorizer().is_sysadmin(unicode(c.user)): + context = {'model': model, + 'user': c.user} + if not ckan.logic.check_access('sysadmin', context, {}): base.abort(401, _('Need to be system administrator to administer')) c.revision_change_state_allowed = ( c.user and self.authorizer.is_authorized(c.user,