accounts2/fas/fas controllers.py,1.2,1.3 fasLDAP.py,1.2,1.3

Michael Patrick McGrath (mmcgrath) fedora-extras-commits at redhat.com
Mon Mar 26 18:52:09 UTC 2007


Author: mmcgrath

Update of /cvs/fedora/accounts2/fas/fas
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15410

Modified Files:
	controllers.py fasLDAP.py 
Log Message:
added better group handling, as well as not including unapproved members by default


Index: controllers.py
===================================================================
RCS file: /cvs/fedora/accounts2/fas/fas/controllers.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- controllers.py	26 Mar 2007 16:29:37 -0000	1.2
+++ controllers.py	26 Mar 2007 18:52:07 -0000	1.3
@@ -64,8 +64,9 @@
             userName = turbogears.identity.current.user_name
         user = Person.byUserName(userName)
         groups = Groups.byUserName(userName)
+        groupsPending = Groups.byUserName(userName, unapprovedOnly=True)
         # log.debug("Happy TurboGears Controller Responding For Duty")
-        return dict(user=user, groups=groups)
+        return dict(user=user, groups=groups, groupsPending=groupsPending)
 
     @expose(template="fas.templates.editGroup")
 #    @identity.require(identity.not_anonymous())
@@ -78,12 +79,14 @@
 #    @identity.require(identity.not_anonymous())
     def groupList(self, search='*'):
         groups = Groups.groups(search)
+        userName = turbogears.identity.current.user_name
+        myGroups = Groups.byUserName(userName)    
         try:
             groups[0]
         except:
             turbogears.flash("No Groups found matching '%s'" % search)
             groups = []
-        return dict(printList=groups, search=search)
+        return dict(printList=groups, search=search, myGroups=myGroups)
 
     @expose(template="fas.templates.userList")
 #    @identity.require(identity.not_anonymous())


Index: fasLDAP.py
===================================================================
RCS file: /cvs/fedora/accounts2/fas/fas/fasLDAP.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- fasLDAP.py	26 Mar 2007 16:29:37 -0000	1.2
+++ fasLDAP.py	26 Mar 2007 18:52:07 -0000	1.3
@@ -24,10 +24,17 @@
     __userName = None
 
     @classmethod
-    def byUserName(self, cn):
+    def byUserName(self, cn, includeUnapproved=None, unapprovedOnly=None):
+        ''' Return list of groups a certain user is in.  Excludes all non-approved groups'''
         server = Server()
         groups = {}
-        filter = 'objectClass=FedoraRole'
+        if includeUnapproved:
+            filter = 'objectClass=FedoraRole'
+        elif unapprovedOnly:
+            filter = '(&(!(fedoraRoleStatus=approved)) (objectClass=fedoraRole))'
+        else:
+            filter = '(&(fedoraRoleStatus=approved)(objectClass=FedoraRole))'
+
         base = 'ou=Roles,cn=%s,ou=People,dc=fedoraproject,dc=org' % cn
         groupsDict = search(base, filter)
         for group in groupsDict:
@@ -107,11 +114,16 @@
 
 
     @classmethod
-    def byGroupName(cls, cn):
+    def byGroupName(cls, cn, includeUnapproved=None, unapprovedOnly=None):
         self = cls()
         server = Server()
         users = {}
-        filter = 'cn=%s' % cn
+        if includeUnapproved:
+            filter = 'cn=%s' % cn
+        elif unapprovedOnly:
+            filter = '(&(cn=%s) (objectClass=fedoraRole) (!(fedoraRoleStatus=approved)))' % cn
+        else:
+            filter = '(&(cn=%s) (objectClass=fedoraRole)  (fedoraRoleStatus=approved))' % cn
         base = 'ou=People,dc=fedoraproject,dc=org'
         self.__attributes = ['cn']
         attributes = ['cn']




More information about the fedora-extras-commits mailing list