Author: matevz
Date: Mon Feb 25 09:59:54 2013
New Revision: 1449636

URL: http://svn.apache.org/r1449636
Log:
#404 - Populate default schema on product addition (copy TRAC_ADMIN from 
globals to newly created product)

Modified:
    
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/util.py

Modified: 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/util.py
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/util.py?rev=1449636&r1=1449635&r2=1449636&view=diff
==============================================================================
--- 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/util.py
 (original)
+++ 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/util.py
 Mon Feb 25 09:59:54 2013
@@ -30,6 +30,7 @@ class ProductDelegate(object):
 
         env.log.debug("Adding product info (%s) to tables:" % product.prefix)
         with env.db_direct_transaction as db:
+            # create the default entries for this Product from defaults
             for table in db_default.get_data(db):
                 if not table[0] in MultiProductSystem.MIGRATE_TABLES:
                     continue
@@ -42,3 +43,12 @@ class ProductDelegate(object):
                     (table[0], ','.join(cols), ','.join(['%s' for c in cols])),
                     rows)
 
+            # in addition copy global admin permissions (they are
+            # not part of the default permission table)
+            rows = db("""SELECT username FROM permission WHERE 
action='TRAC_ADMIN'
+                         AND product=''""")
+            rows = [(r[0], 'TRAC_ADMIN', product.prefix) for r in rows]
+            cols = ('username', 'action', 'product')
+            db.executemany("INSERT INTO permission (%s) VALUES (%s)" %
+                (','.join(cols), ','.join(['%s' for c in cols])), rows)
+


Reply via email to