Author: tmckay
Date: 2012-03-23 00:06:59 +0000 (Fri, 23 Mar 2012)
New Revision: 5268
Modified:
branches/roles/cumin/python/cumin/admin.py
branches/roles/cumin/python/cumin/widgets.py
Log:
Move the logging for getting roles for a user into admin.py
Modified: branches/roles/cumin/python/cumin/admin.py
===================================================================
--- branches/roles/cumin/python/cumin/admin.py 2012-03-22 20:32:50 UTC (rev 5267)
+++ branches/roles/cumin/python/cumin/admin.py 2012-03-23 00:06:59 UTC (rev 5268)
@@ -1,6 +1,8 @@
from StringIO import StringIO
from util import *
+from rosemary.sqlquery import SqlQuery, SqlInnerJoin
+from rosemary.sqlfilter import SqlComparisonFilter
from psycopg2 import IntegrityError, ProgrammingError
log = logging.getLogger("cumin.admin")
@@ -135,3 +137,26 @@
return mapping
+ def get_roles_for_user(self, cursor, user):
+ user_cls = self.app.model.com_redhat_cumin.User
+ role_cls = self.app.model.com_redhat_cumin.Role
+ mapping_cls = self.app.model.com_redhat_cumin.UserRoleMapping
+
+ query = SqlQuery(role_cls.sql_table)
+
+ SqlInnerJoin(query,
+ mapping_cls.sql_table,
+ mapping_cls.role.sql_column,
+ role_cls._id.sql_column)
+
+ SqlInnerJoin(query,
+ user_cls.sql_table,
+ user_cls._id.sql_column,
+ mapping_cls.user.sql_column)
+ #TODO: one column ?
+ cols = [ role_cls.name.sql_column ]
+ filt = SqlComparisonFilter(user_cls._id.sql_column, user._id, '=')
+ query.add_filter(filt)
+ sql = query.emit(cols)
+ cursor.execute(sql)
+ return [x[0] for x in cursor.fetchall()]
Modified: branches/roles/cumin/python/cumin/widgets.py
===================================================================
--- branches/roles/cumin/python/cumin/widgets.py 2012-03-22 20:32:50 UTC (rev 5267)
+++ branches/roles/cumin/python/cumin/widgets.py 2012-03-23 00:06:59 UTC (rev 5268)
@@ -1180,37 +1180,11 @@
def __init__(self, app, user):
self.app = app
self.user = user
-
- self.group = []
+
conn = self.app.database.get_connection()
cursor = conn.cursor()
- user_cls = app.model.com_redhat_cumin.User
- role_cls = app.model.com_redhat_cumin.Role
- mapping_cls = app.model.com_redhat_cumin.UserRoleMapping
+ self.group = self.app.admin.get_roles_for_user(cursor, user)
- query = SqlQuery(role_cls.sql_table)
-
- SqlInnerJoin(query,
- mapping_cls.sql_table,
- mapping_cls.role.sql_column,
- role_cls._id.sql_column)
-
- SqlInnerJoin(query,
- user_cls.sql_table,
- user_cls._id.sql_column,
- mapping_cls.user.sql_column)
- #TODO: one column ?
- cols = [ role_cls.name.sql_column ]
-
- filt = SqlComparisonFilter(user_cls._id.sql_column,user._id,'=')
- query.add_filter(filt)
- sql = query.emit(cols)
- log.debug("%s",sql)
- cursor.execute(sql)
-
- for gname in cursor.fetchall():
- self.group.append(gname[0])
-
self.created = datetime.now()
self.notifications = list()
Show replies by date