HTML Logo by World Wide Web Consortium (www.w3.org). Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS, which is now in beta. ocPortal 9 will be superseded by Composr 10.

Head over to compo.sr for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.


membership design / access control

Login / Search

 [ Join | More ]
 Add topic 
Posted
Rating:
#104769 (In Topic #20448)
Avatar

Fan in action

membership design suggestions

Not sure if this is the best forum for this post or not. If not feel free to move it.

I am putting together a website for an international profession. The memberships will be paid. I need to filter access by two variables, 1 of 5 job classifications or types and the state or province that they work in. (This could expand to include other countries in the future.) I will need forums and content restricted by each combination of classification and location.

I could create approximately 300 (50 states & 10 provinces x 5 classifications) different memberships, however, this seems a little cumbersome so I am wondering if there is some way to do a primary membership level for the job classification and then a secondary one for the location?

I can clarify further if needed but I will start with that description.
Thanks
Back to the top
 
Posted
Rating:
#104872
Avatar

Fan in action

I'm afraid that your description tends to boggle my mind.

One would assume that "membership" infers a payment of some type.  Such that they either are or are not a member.

Access to different portions of the forum - are you saying that access to these different part of the forum would be limited depending on the classification and location?

For one, further clarification would be helpful.
Back to the top
 
Posted
Rating:
#104893
Avatar

Fan in action

I am wondering if using the zone feature would work as outlined below:
- Create a user group for each job classification
- Create a user group for each state
- When a person joins they select their job classification which assigns them their primary user group and then they are also assigned to a second user group based on location
- Create a zone for each state, restricting access to the zone by the associated location user group (and having the site zone unrestricted as a common area for members regardless of location)
- Then, within each zone, further restrict access to content and forums based on the job classification user group

Would this successfully create a "two-tier" user group permission design? (The location user group gets you into the zone and the job classification user group gets you into specific content in the zone.)
Can each zone have a separate forum?

My apologies if my description is not clear.
Thanks for any ideas.

To Al Jones:
"
One would assume that "membership" infers a payment of some type.  Such that they either are or are not a member." Yes, as stated in the original post, "The memberships will be paid."

"...are you saying that access to these different part of the forum would be limited depending on the classification and location?" Yes, as stated in the original post, "I will need forums and content restricted by each combination of classification and location."
Back to the top
 
Posted
Item has a rating of 5 (Liked by Chris Graham)  
Rating:
#104898
Avatar

Community saint

I had to think about this one for a while. I can definitely see the benefits in setting up a membership system that requires two or more usergroups to be attached to a subscription along with a more finely grained permission system, but ocPortal wasn't necessarily designed for this specific scenario. I believe your idea of using zones may still have some permission issues, but it's a good place to start testing. Here are a couple of ways to try to make this work with ocPortal:

One method is, if you are a capable PHP programmer or if you are working with someone on this project that is, you can think of ocPortal as a framework. ocPortal has a sophisticated override system that will let you alter, extend, or replace features and functions to suit your needs (http://ocportal.com/docs9/tut_framework.htm#title__5 and http://ocportal.com/docs9/codebook.htm). But there will be a bit of a learning curve, as there is when learning any new application framework. You could write code that implements this more complex usergroup and permission scenario you need, making the setup and administration process easier for site admins and staff as well as easier for the end user on the web site to navigate through. One modification you could do is add a second usergroup to the usergroup subscription setup page. You would still need to create 300 usergroup subscriptions (60 locations x 5 job classifications=300 usergroup subscriptions), but you will be able to do it while only having to create one usergroup for each job classification and each location (50 states+10 provinces+5 job classifications=65 usergroups). Or you could write some code to create the usergroup subscriptions programmatically so you don't have to do it manually. However, adding this second usergroup option may not fix another potential show-stopper regarding the potential need for logic-based usergroup permission restrictions that I'll mention later. Instead of creating the usergroup subscriptions manually or with an outside script, you could create an addon to handle the subscription selection by allowing the user to simply select the job classification from a drop-down list and their location from another drop-down list. When those options are submitted, your addon could check the list of subscriptions to see if that combination is already listed in the database. If it's listed, your addon would pass that info on to the membership subscription purchasing portion of ocPortal to handle the rest of the details. If the subscription isn't listed in the database, your addon could create it on-the-fly and then pass that info on to the membership subscription purchasing portion of ocPortal. But if you are not very familiar with PHP and the ocPortal framework or if you are in a hurry, you will probably want to hire someone like ocProducts to work on implementing the exact set of features you need since most of these edits will probably not be trivial.

Another method is, try to work within the limitations of the system. You mentioned zones in your last post. That is probably the best place to start testing this type of a site design. If you assign the job classification usergroup through the subscription purchase, then you need to get the location usergroup assigned somehow. I think you can do this by making the job classification usergroups secondary and only the location usergroups set as Initial Primary Usergroups in the usergroup settings and then when users signup they will have to choose one location. Beyond that, I think the main problem you will run into is the ocPortal permissions (maybe not all permissions) are essentially logic OR'ed. This gives the end user the best permissions possible when combining all positive permissions of their assigned usergroups. This means you can't setup a forum with permissions that say 'give this member access only if they have at least usergroup #4 AND usergroup #28'. You will probably have to experiment with forums and sub-forums and usergroup permissions to see if it will give you the desired results. And you will probably want to experiment with other modules you expect to use (galleries, wiki+, catalogues, etc) to ensure you can get the fine-grained access control you need with a zones and 2-tiered usergroup design. I can't say for certain, but I'm guessing you won't get the control you need for everything using just permissions with a 2-tiered usergroup design. In some of those cases you may be able to work around the issue using tempcode and comcode tags that will allow you to restrict what is visible based on usergroups. Another thing to consider is whether to use zones based on location or based on job classification. The ocPortal optimisation tutorial says "Don't create more than about 1000 zones (anything after the 50th shouldn't contain any modules either)" which might suggest you could have issues if you create more than 50 zones. If, in the end, you still have permission issues and you can't get the control you need using the 2-tiered usergroups design, then you would have to go back to the idea of creating 300 usergroups and 300 usergroup subscriptions. But then the ocPortal optimisation tutorial also says "Just generally don't do anything unusually silly, like make hundreds of usergroups available for selection when members join." I'm guessing there will be some performance penalty when you get up into the hundreds of usergroups.

If you do some testing and run into any specific permission problems, post them here and maybe we can find a work around or at least get you pointed in the right direction.

Out-of-the-box, ocPortal (and every other free and paid CMS available) probably won't do everything you want, the way you want it, but virtually any kind of web site is possible with ocPortal. You just need to know how to program in PHP and put some time in to learn the ocPortal framework, or have someone on your team that can, or have a budget to pay someone else to do it.
Back to the top
 
Posted
Rating:
#104900
Avatar

Fan in action

Thanks Jason. I will do some more experimenting.
Back to the top
 
1 guests and 0 members have just viewed this: None
Control functions:

Quick reply   Contract

Your name:
Your message: