Forums / Setup & design / User groups of groups management

User groups of groups management

Author Message

Alexandre Abric

Tuesday 22 November 2005 6:51:34 am

Hi,

I am currently designing the security model of a new Internet web site and we need to manage groups of groups.

For instance, let's say a user John Smith works for the company MacDonalds. MacDonalds has purchased the products : Foo and Bar.

Our user accounts administration page looks like this :
- Companies (user group)
- - MacDonalds (user group)
- - - John Smith (user)
- Products (user group)
- - Foo (user group)
- - Bar (user group)

The goal is to grant access to the support pages of the product Foo (that belongs to the section "Foo" of the web site) and the product Bar (that belongs to the section "Bar" of the web site) for John Smith. "Foo" section is accessible for users that belong to user group "Foo" (same for Bar).

In a "eZ-perfect world", I would click "add location" on teh MacDonalds node and add a location bellow teh nodes "Foo" and "Bar" => Users that are in "MacDonalds" user group would also be added to Foo and Bar.

- Companies (user group)
- - MacDonalds (user group)
- - - John Smith (user)
- Products (user group)
- - Foo (user group)
- - - MacDonalds (user group)
- - - - John Smith (user)
- - Bar (user group)
- - - MacDonalds (user group)
- - - - John Smith (user)

<b>In other words, we need a groups of groups functionnality in eZ Publish => is this planned in future releases ?</b>

Now the two possible workarounds I have found :

- Develop a workflow that automatically adds the user to the "MacDonalds" user group, and then adds him to the groups "Foo" and "Bar". (I have already developped such a workflow, but the assignments are statically configured in INI files, so this is not very flexible. I would develop a dynamic assignment workflow this time)

- Use reverse related objects attributes in custom user groups. And then develop a custom Admin interface to recursively fetch reverse related objects.

<b>What do you think of this design ? How do you usually manage this ?</b>

Arran Price

Tuesday 22 November 2005 12:58:06 pm

Hi Alexandre,
I may not have quite understood your situation, but can you not do what you need with roles?
if you have roles (probably as well as groups) for MacDonalds, Foo and Bar
you can assign the group MacDonalds to the the appropriate roles (which in this case would be all 3 roles MacDonalds, Foo and Bar). As ultimately roles define access.

Does that make sense?
In that way, all new members of the group, automatically pick up the correct permissions due to the group being assigned permissions as part of the role definition.

Hope thats of help

Arran

eZ debug

Timing: Jan 18 2025 10:58:02
Script start
Timing: Jan 18 2025 10:58:02
Module start 'content'
Timing: Jan 18 2025 10:58:04
Module end 'content'
Timing: Jan 18 2025 10:58:04
Script end

Main resources:

Total runtime2.1208 sec
Peak memory usage4,096.0000 KB
Database Queries191

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0139 589.1641180.8281
Module start 'content' 0.01401.9531 769.9922471.1406
Module end 'content' 1.96710.1537 1,241.1328333.5000
Script end 2.1208  1,574.6328 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00410.1953210.0002
Check MTime0.00150.0727210.0001
Mysql Total
Database connection0.00100.049410.0010
Mysqli_queries2.042796.31791910.0107
Looping result0.00240.11471890.0000
Template Total2.055596.921.0277
Template load0.00230.107120.0011
Template processing2.053296.812321.0266
Template load and register function0.00020.010510.0002
states
state_id_array0.00290.137110.0029
state_identifier_array0.00180.085120.0009
Override
Cache load0.00200.0922390.0001
Sytem overhead
Fetch class attribute can translate value0.00130.063530.0004
Fetch class attribute name0.00220.103520.0011
XML
Image XML parsing0.00050.023830.0002
class_abstraction
Instantiating content class attribute0.00000.000420.0000
General
dbfile0.00510.2417210.0002
String conversion0.00000.000330.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
2content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
5content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
4content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 13
 Number of unique templates used: 5

Time used to render debug report: 0.0002 secs