Forums / Developer / User groups (as in community features, not RBAC)

User groups (as in community features, not RBAC)

Author Message

Piotrek Karaś

Monday 11 August 2008 4:19:49 am

1) What would be the possibilities of creating community user groups in eZ Publish? Has anyone any experiences with that? By that functionality I mean user-initiated forum-like content structures with access limited to, or functionalities based on, the fact of user belonging to such group.

One way I can think is have n:n belonging relations reflected in custom db table structure (user to node) and then mapping that onto the eZ RBAC system (granting particular access to subtrees). But I'm not sure how efficient that would be, provided multiple users could belong to multiple groups...

Any thoughts on that?

2) Any existing extensions implementing similar functionalities?

Thanks,
Piotrek

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

Piotrek Karaś

Friday 15 August 2008 11:57:46 pm

Here's an additional example of what I am after:

1) There is a folder in the content node tree called <b>User groups</b>. This cannot be altered by users, but users can publish beneath it.

+ Site [Root]
++ User groups [folder]

2) Any user can go to that <b>User groups</b> folder and create a node based on <b>User group class</b>. That user will be an owner of that node and the owner/initiator of newly created group at the same time. Let's say a user creates a restricted user group called <b>Pink socks fans</b>:

+ Site [Root]
++ User groups [Folder]
+++ Pink socks fans [Restricted user group]

3) Restricted user group class means that it can only be accessed for users that belong to that group. In other words, users will not have permission to access that subtree, unless allowed otherwise. Users that are allowed in, should be able to create further structure, for example in a forum-like way:

+ Site [Root]
++ User groups [Folder]
+++ Pink socks fans [Restricted user group]
++++ I've lost my pink left sock [Restricted forum subject]
+++++ Wear just one [Restricted forum reply]
+++++ Buy a new one [Restricted forum reply]
++++ Shades of pink [Restricted forum subject]
...

4) Users have to follow a special procedure in order to be let into this group. For example, they have to declare that they want to belong there. Once they do so, a proper access control system modification should be performed to grant that user access to this particular <b>Pink socks fans</b> subtree. And one more thing: users can be members of any number of restricted groups!

And now the questions:
Do you think that eZ Publish with its RBAC would be capable of handling that and if so, what size of community are we talking about? Would it be possible to have a community of 1000 restricted groups with 10000 registered users who are member of 20 restricted groups on average? What about larger communities?

Thanks is advance!

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

André R.

Sunday 17 August 2008 7:40:23 am

So user right based on if your related to the content or not could be a solution then?
Partly related:
http://issues.ez.no/IssueView.php?Id=11091

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Piotrek Karaś

Sunday 17 August 2008 8:06:03 am

I forgot all about relations! Yes, that could actually be it, and it would possibly be quite easy to provide join/expel interfaces for, simple API.

Any way of implementing that withing kernel modification?

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

André R.

Thursday 21 August 2008 9:17:47 am

Or what about using groups??

Created a patch for the issue today that adds ParentOwner and ParentGroup content/create limitation..
http://issues.ez.no/IssueView.php?Id=11091&

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Piotrek Karaś

Thursday 21 August 2008 10:01:10 am

Well, in this case for each user group materialized by a node created in the content structure, there would have to be a corresponding user group created, with proper subtree mapping as well as group owner/creator automatically added into that group. Any way of achieving that?

Is eZ's RBAC capable of handing couple of hundreds or thousands of user groups? Will that have an impact on systems performance?

Or are you thinking about storing content in the Users section?

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

André R.

Thursday 21 August 2008 11:20:57 am

User groups can easily be stored in the content section as well and work as a community user group folder, or you can create your own community user group class. No need to have duplicate folders as you described.

The next challenge with such a setup would rather be manage_locations rights(for the owner of the group, and the members that want to join)..

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Piotrek Karaś

Thursday 21 August 2008 1:55:57 pm

So what you're suggesting is structure such as this one:

+ Community site [root folder]
++ User groups [folder]
+++ Fans of green [user group]
++++ Forum [forum]
+++++ Green advantages... [forum topic] ...
++++ Member #1 [user]
++++ Member #2 [user]
++++ Member #3 [user]
+++ Fans of grey [user group]
++++ Forum [forum]
+++++ Grey advantages... [forum topic] ...
++++ Member #1 [user]
++++ Member #4 [user]

where user groups are primary locations and user nodes are secondary locations?

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu

Kristof Coomans

Thursday 21 August 2008 11:21:13 pm

Hi

eZ Projects is based on user groups with subtree limited role assignments, combination of http://projects.ez.no/ezssp for setup and http://projects.ez.no/membership__1 for users to become member of a specific group. Works quite well so far.

independent eZ Publish developer and service provider | http://blog.coomanskristof.be | http://ezpedia.org

Piotrek Karaś

Friday 22 August 2008 2:36:21 am

Hi Kristof,
Thanks for that pointer - I'll definitely give those extensions a try!

--
Company: mediaSELF Sp. z o.o., http://www.mediaself.pl
eZ references: http://ez.no/partners/worldwide_partners/mediaself
eZ certified developer: http://ez.no/certification/verify/272585
eZ blog: http://ez.ryba.eu