#430: Multiproduct UI: Administration pages
---------------------------+------------------------------------
  Reporter:  matevzb       |      Owner:  matevzb
      Type:  defect        |     Status:  new
  Priority:  major         |  Milestone:  Release 6
 Component:  multiproduct  |    Version:
Resolution:                |   Keywords:  product admin bep-0003
---------------------------+------------------------------------
Changes (by olemis):

 * keywords:   => product admin bep-0003
 * status:  closed => new
 * resolution:  fixed =>


Comment:

 I'll reuse this ticket to suggest some enhancements in the administration
 area . They are mainly aimed at granting `PRODUCT_ADMIN` users with access
 to existing admin panels in product context . This works by the successive
 application of a whitelist (contributed by plugins) and a blacklist
 (overriding the former in configuration). In order to get all this done a
 new permissions context has been developed inspired in ''sudo'' command
 available in some ''GNU/Linux'' systems .

 Observations :

   - Patches plugin admin panel to forbid access in product scope.
   - `ProductAdminModule` belongs in `product_admin.py` or `web_ui.py` ?
     I chose the former.
   - Merge `DefaultProductAdminWhitelist` with `ProductAdminModule` ?
     I decided not to do so , mainly to let users to disable the former
     and enable another component contributing their a different set
     of product admin panels.
   - Match admin request with `handler is AdminModule(...)` or
     `AdminModule.match_request(req, ...)` or ... ?
     The former was used in the patch.
   - Proposed admin panels in default white list are :
     * general:basics
     * general:perm
     * accounts:notification
     * ticket:*
     * versioncontrol:repository
   - AFAICT we'll have to upgrade many of those listed above to make
     the GUI consistent with a multiproduct user experience and
     associated challenges (e.g. shared resources , security ,
     navigation paths, ...)
   - /me still thinking about whether to relax access to
     /admin/general/plugin ... and maybe that will change in the
     next few days.
   - Shall we include accounts:users in white list ?
     I'm hesitant on doing so , especially if users will span over
     multiple products (i.e. global resources)

 Patch order is as follows :

 {{{
 #!sh

 $ hg qapplied
 t430/t430_r1457691_product_plugin_admin.diff
 t430/t430_r1457691_product_admin_whitelist.diff
 t430/t430_r1458841_product_admin_defaults.diff

 $ hg log -r qparent --template="[{svnrev}] - {desc}\n"
 [1458841] - #325, added missing imports

 }}}

 Test report highlight these are ready for commit but work in this area is
 still in progress .

 {{{
 #!sh

 $ python setup.py test -m tests.admin.product_admin
 running test
 running egg_info
 writing BloodhoundMultiProduct.egg-info/PKG-INFO
 writing top-level names to BloodhoundMultiProduct.egg-info/top_level.txt
 writing dependency_links to BloodhoundMultiProduct.egg-
 info/dependency_links.txt
 writing entry points to BloodhoundMultiProduct.egg-info/entry_points.txt
 writing BloodhoundMultiProduct.egg-info/PKG-INFO
 writing top-level names to BloodhoundMultiProduct.egg-info/top_level.txt
 writing dependency_links to BloodhoundMultiProduct.egg-
 info/dependency_links.txt
 writing entry points to BloodhoundMultiProduct.egg-info/entry_points.txt
 reading manifest file 'BloodhoundMultiProduct.egg-info/SOURCES.txt'
 writing manifest file 'BloodhoundMultiProduct.egg-info/SOURCES.txt'
 running build_ext
 test_init_blacklist (tests.admin.product_admin.ProductAdminSetupTestCase)
 ... ok
 test_init_whitelist (tests.admin.product_admin.ProductAdminSetupTestCase)
 ... ok
 Test blacklisted admin panel with PRODUCT_ADMIN in product env ... ok
 Test unspecified admin panel with PRODUCT_ADMIN in product env ... ok
 Test whitelisted admin panel with PRODUCT_ADMIN in product env ... ok
 Plugin admin panel with PRODUCT_ADMIN in global env ... ok
 Test blacklisted admin panel with PRODUCT_ADMIN in product env ... ok
 Test unspecified admin panel with PRODUCT_ADMIN in product env ... ok
 Test whitelisted admin panel with PRODUCT_ADMIN in product env ... ok
 Plugin admin panel with PRODUCT_ADMIN in product env ... ok
 Test admin panel with TRAC_ADMIN in global env ... ok
 Plugin admin panel with TRAC_ADMIN in global env ... ok
 Test blacklisted admin panel with TRAC_ADMIN in product env ... ok
 Test whitelisted admin panel with TRAC_ADMIN in product env ... ok
 Plugin admin panel with TRAC_ADMIN in global env ... ok
 Test blacklisted admin panel without meta-perm in product env ... ok
 Test unspecified admin panel without meta-perm in product env ... ok
 Test whitelisted admin panel without meta-perm in product env ... ok
 Plugin admin panel without meta-perm in global env ... ok
 Test blacklisted admin panel without meta-perm in product env ... ok
 Test unspecified admin panel without meta-perm in product env ... ok
 Test whitelisted admin panel without meta-perm in product env ... ok
 Plugin admin panel without meta-perm in product env ... ok

 ----------------------------------------------------------------------
 Ran 23 tests in 2.220s

 OK

 }}}

-- 
Ticket URL: <https://issues.apache.org/bloodhound/ticket/430#comment:7>
Apache Bloodhound <https://issues.apache.org/bloodhound/>
The Apache Bloodhound (incubating) issue tracker

Reply via email to