ACL Plan Limitation

6 years 8 months ago #296265 by fede312
ACL Plan Limitation was created by fede312
Switching from OSMemberships I've lost the ability to be able to manipulate multiple ACL groups for registration and expiration.
When a members registers to a plan (assign that member to multiple ACLs)
And the same on expiration (Reassign ACL to multiple ACL)

For example:

When member subscribes to plan A
It goes from ACL (Regitered) to
ACL Group 1(Monthly access)
and ACL Group 2 (Lifetime Access Level 1)

On expiration
ACL Group 1 (Monthly Access) goes back to ACL Registered.
but ACL Group 2 (Remains active)

Is there a way around this?

thanks in advanced,

Please Log in to join the conversation.

6 years 8 months ago - 6 years 8 months ago #296277 by krileon
Replied by krileon on topic ACL Plan Limitation
CBSubs at this time can only manage 1 usergroup per plan under the Access tab. You can use CB Auto Actions to manage as many usergroups as you like using the below auto action configuration.

Plan Active
Global
Triggers: onCPayUserStateChange
User: Automatic
Access: Everybody
Conditions
1: [var3] Equal To PLAN_ID_HERE
2: [var2] Equal To A

Plan Expired
Global
Triggers: onCPayUserStateChange
User: Automatic
Access: Everybody
Conditions
1: [var3] Equal To PLAN_ID_HERE
2: [var2] Not Equal To A

You'd then use a Usergroup action which will let you add, remove, and even replace usergroups for a user.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
The following user(s) said Thank You: fede312

Please Log in to join the conversation.

6 years 8 months ago - 6 years 8 months ago #296321 by fede312
Replied by fede312 on topic That works great!
You are crazy genius!
That actually works! Thank you, thank you, thank you 1000!!
You make it so easy to understand!!

I’m setting up CBSubs on my Piano Education website.
Can you please let me know if I’m thinking this through correctly?

The website has 3 areas.

1. THE CB COMMUNITY: (LIFE TIME SUBSCRIPTION)
Which is the ACL “Registered”

2. THE CLASSROOM: (ON A MONTHLY BASIS)
Which is ACL “Classroom” (With the “CB Time Release option which releases 1 article per week”)
(Another fantastic formula you have on the site that works like a charm!!)

3. THE COURSES: (LIFETIME SUBSCRIPTION)
Which are Articles assigned to ACL “Course 1, Course 2, Course 3” …and so on

The workflow I want to achieve is as follows:

When the member subscribes to a plan for example (monthly plan) he gets the following:

Access to the community. (ACL “Registered”)
Access to the classroom. (ACL “Classroom”)
Access to 1 course. (ACL “Course 1”)

When the monthly subscription is over

- If the membership (auto-renews)
- “Community Membership” (ACL “Registered”) remains active.
- “Classroom Access” (ACL “Classroom”) remains active.
- “Course 1” (ACL “Course 1”) remains active.
- “Course 2” (ACL “Course 2”) gets added. (Can that be done on auto-renewal?)

- If the membership does not renew (or cancelled)
- Community Membership (ACL “Registered”) remains active.
- Course 1 (ACL “Course 1”) remains active.
- Classroom access (ACL “Classroom”) is removed

HERE IS THE TRICKY PART:

- If the member was active for 2 months he would have
- ACL (“Registered”) ACL (“Course 1”) and ACL (“Course 2”)
- ACL (“Classroom”) would be removed (but he would have viewed 8 articles to which he would not longer have access to, which is fine that's what I want)

But if and when he renews the subscription, let’s say 5 months later.
Can the continue from where he left off?

- “Course 3” (ACL “Course 3”) gets added.
- “Classroom Access” on (ACL “Classroom”) activation, the member regains access to the 8 articles he had and continue getting from Article 9, 10, 11 and 12) And so the cycle continues...

You might have a completely different approach to this,
Is this possible?
is this the right way to do it?

I would really love to hear your input
Thank you for your time!

Please Log in to join the conversation.

6 years 8 months ago #296359 by krileon
Replied by krileon on topic That works great!
It doesn't sound like you need to manage multiple usergroups per plan. The Course 1, Course 2, etc.. plans sound like they're just lifetime subscriptions which would give their corresponding usergroups of Course 1, Course 2, etc.. Classroom is the only usergroup you're actually revoking and having a plan that gives the Classroom usergroup under the Access tab should be enough for controlling it. They'll always have Registered since it's not controlled (well shouldn't be at least) by any plan and is the default registration usergroup. So my guess is your plan setup would be as follows.

Community (exclusive, free, lifetime)
Classroom (exclusive, paid)
Course 1 (non-exclusive, paid, lifetime)
Course 2 (non-exclusive, paid, lifetime)
Course 3 (non-exclusive, paid, lifetime)

They would be Community or Classroom with community just really being a means of registering without Classroom. I guess an alternative is the following.

Classroom (non-exclusive, paid)
Course 1 (non-exclusive, paid, lifetime, conditioned to display if Classroom is active/selected)
Course 2 (non-exclusive, paid, lifetime, conditioned to display if Classroom is active/selected)
Course 3 (non-exclusive, paid, lifetime, conditioned to display if Classroom is active/selected)

Regarding timed release configuration it sounds like you've it already configured properly, but that's something you'd need to test carefully. I'm not entirely sure that's how I'd do it however. I'd probably configure it as follows.

Joomla Categories
Classroom
- Course 1
- Course 2
- Course 3

Basically establish a Joomla article category per course. I would then create a plan that gives access to a course. Users would simply pay per course OR they could subscribe to all courses at once using the above suggested plan structure. You wouldn't need to worry about timed release substitutions. When something releases would just be the Start Publishing date when creating the article (e.g. if you want it accessible in 6 months then set the Start Publishing date 6 months from now).

Personally that'd be a lot easier to manage. No special usergroups even needed since CBSubs can directly control access to Joomla categories, but the usergroups could help with access controls elsewhere so maybe still a good idea. In short you'd create your articles and be done; there'd be no further management and no timed release substitutions to worry about. The timed release usage is useful in cases of "if they've been subscribed for 3 months then display XYZ".


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
The following user(s) said Thank You: fede312

Please Log in to join the conversation.

6 years 8 months ago - 6 years 8 months ago #296365 by fede312
Replied by fede312 on topic Education "WorkFlow" Case
Thank you for your answer!

Yes, that was what I had in mind at first.
But this structure does not take into account the "Learning Factor".

The reason I do not want to assign the Courses to Plans is because I want the courses to be mandatory.

I do not want the students to be able to choose which course to purchase and which course to skip, or in which order to take them.

Because when they are able to "choose" they would only purchase the "cool advanced stuff" and they will skip the important basic lessons. (Like skipping learning how to "add and multiply" and jump right into Calculus)

This will have 2 negatives consequences.

1. The student will get all of the information fragmented and therefore won't be able to learn anything.
2. I will end up with 2 o 3 courses that sell a lot and 20 courses that do not sell "which happen to be the most important ones"

That's why I wanted to have the "Classroom Plan" alone.

And as time goes by the courses to get released 1 a month along with the Classroom Lessons plan

The classroom plan has 2 parts (Articles with Lessons and Articles with the Courses)

1. Lessons: A category that will "Time Release" the articles "1 article per week"
2. Courses: A category that will "Time Release" the courses "1 per month"

And I want the student to loose the access to the "Classroom" articles when the subscription expires, but to keep his access to the "Articles with the Courses" he already has.

And when the student renews the subscription I want the system to remember where the student left off, even if he renews 52 weeks later. And then regain access to the Classroom Articles he had when he left off and then continue 1 per week and also continue to get 1 course released per month.

That would work if it is possible, or another workflow that would take this "Learning Factor" into account


Any thoughts?

Thanks a lot for your time.

Please Log in to join the conversation.

6 years 8 months ago #296366 by krileon
Replied by krileon on topic Education "WorkFlow" Case

I do not want the students to be able to choose which course to purchase and which course to skip, or in which order to take them.

That's not really an issue when you use conditions to limit what they can access. The courses being lifetime subscriptions means you can have them chain together. So for example under workflows Course 2 would be configured to be unavailable until Course 1 subscription is active. This means they have no choice but to go Course 1 > Course 2 > etc..

The timed release stuff is just a date comparison. There's really nothing fancy about it so whether you can do what you're wanting with it is based off that fact. For example you can compare against their subscription date, their expiration date, etc.. So if they've been subscribed for 3 months show XYZ course is absolutely possible. The status of their subscription is entirely separate. They can have a subscription date, but be expired. Some examples as follows.

[cbsubs:if plan="4" status!="I" since="6 MONTHS" date="subscription"]I have been subscribed to plan 4 for 6 months.[/cbsubs:if]

The above accepts any subscription status for plan 4 except non-existing (which is a status of I). This usage is explained within the description of the cbpaidsubsbot within Extensions > Plugins if you'd like more details regarding what's available. The problem with doing it this way is you need to surround every article with it as needed so it's up to you if you want the extra work when creating lessons or courses.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.
The following user(s) said Thank You: fede312

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.260 seconds