Author: sebb
Date: Wed Jun 18 23:28:54 2025
New Revision: 1926562

URL: http://svn.apache.org/viewvc?rev=1926562&view=rev
Log:
Ensure committee is valid

Modified:
    comdev/reporter.apache.org/trunk/scripts/ldap_info.py
    comdev/reporter.apache.org/trunk/site/addrelease.py

Modified: comdev/reporter.apache.org/trunk/scripts/ldap_info.py
URL: 
http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/scripts/ldap_info.py?rev=1926562&r1=1926561&r2=1926562&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/scripts/ldap_info.py (original)
+++ comdev/reporter.apache.org/trunk/scripts/ldap_info.py Wed Jun 18 23:28:54 
2025
@@ -45,8 +45,14 @@ def isMember(uid):
     """Determine if the uid is in the member Unix group"""
     return uid in loadJson(GROUPS)['groups']['member']['roster']
 
+def isValidPMC(pmcid):
+    """Determine if an id is a valid PMC (and not incubator)"""
+    projects = loadJson(PROJECTS)['projects']
+    return pmcid != 'incubator' and pmcid in projects and 'pmc' in 
projects[pmcid]
+    
 if __name__ == '__main__':
     import sys
     for arg in sys.argv[1:]:
         print("%s isMember: %s" % (arg, isMember(arg)))
         print("%s PMCownership: %s" % (arg, getPMCownership(arg)))
+        print("%s isValidPMC: %s" % (arg, isValidPMC(arg)))

Modified: comdev/reporter.apache.org/trunk/site/addrelease.py
URL: 
http://svn.apache.org/viewvc/comdev/reporter.apache.org/trunk/site/addrelease.py?rev=1926562&r1=1926561&r2=1926562&view=diff
==============================================================================
--- comdev/reporter.apache.org/trunk/site/addrelease.py (original)
+++ comdev/reporter.apache.org/trunk/site/addrelease.py Wed Jun 18 23:28:54 2025
@@ -24,7 +24,9 @@ def getReleaseData(committee):
 saved = False
 err = None
 if date != None and version and committee:
-    if committee in ldap_info.getPMCownership(user) or 
ldap_info.isMember(user):
+    if not ldap_info.isValidPMC(committee):
+      err = "Please specify a valid PMC (not incubator)"  
+    elif committee in ldap_info.getPMCownership(user) or 
ldap_info.isMember(user):
         rdata = getReleaseData(committee)
         if date >= 86400: # allow for local time just in case
             rdata[version] = date


Reply via email to