Search code examples
phpmembershipexpressionengine

ExpressionEngine Multiple Site Manager and Member Groups


I’m looking for some links to further info on how EE handles Member Groups in relation to the MSM.

In my case, I have two membership sites. Generally speaking, the two sites serve the same overall group of people, so the fact that the MSM shares the member database works in my favor. What I’m unclear about is how to manage the varying combination of access levels, ie:

  1. Member of Site A but not B
  2. Member of Site B but not A
  3. Member of Site A and Site B

Since, as I’ve read in other forum posts, you cannot assign a member to belong to multiple groups, I’d apparently have to create 3 member groups in the above configuration and assign users accordingly. At least in the templates I can check for membership to group 1|3… right?

We’re planning on further dividing our membership to varying levels of access within a single site.

For example,

  1. Full access to Site A
  2. Access to a single month’s content of Site A
  3. Access to a single month’s content + web tools

If I have to create groups that manage each combination of the above, in addition to access to Site B’s access levels, this will quickly grow to be unusable.

It’s starting to sound like I’ll have to use custom PHP code directly in the templates to manage my access levels outside of EE.

Does anyone have any experience with this kind of thing?

Would it be best to not use the MSM at all and just manage each site as an individual installation, with separate member groups? ( that would defeat a some of the reason for using EE in the first place for me, ie sharing of weblog content between sites )

Links to external resources or the documentation would be helpful. ( yes, I did check the docs first, but may have missed something.. wink )

Thanks!


Solution


  • I know this is ages old, but an answer was never given/accepted. Maybe this will help someone else who stumbles on this who uses straight EE.


    Ian,

    I am doing a similar thing with 6 sites and multiple markets throughout those sites now.

    Here is what I am doing. I hope it helps.

    Like Michael said, the accounts are system wide. So, each account will have access to all sites under MSM. I have set up multiple domains, (not required), for each "market" to login at. Then under that "site", which is actually the market, I have restricted control panel access for the other sites as well as the content not being used cross-site. This gives the appearance that they are site specific and still allows the Super Admin or whatever account I build above them to manage across multiple sites.

    Example: (let's use your layout)

    1. Member of Site A but not B
    2. Member of Site B but not A
    3. Member of Site A and Site B

    I would have three member groups.

    1. Group A
    2. Group B
    3. Group A-B

    For Group A, I would do the following: (Do this as Super Admin)

    • Select Site B from the MSM dropdown.
    • Select Members => Member Groups from the CP
    • For the Group A, click on 'Edit Group'
    • Remove all access for this site and the CP access then save

    For Group B, I would do the following: (Do this as Super Admin)

    • Select Site A from the MSM dropdown.
    • Select Members => Member Groups from the CP
    • For the Group B, click on 'Edit Group'
    • Remove all access for this site and the CP access then save

    For Group A-B, I would do the following: (Do this as Super Admin)

    • Select Site A from the MSM dropdown.
    • Select Members => Member Groups from the CP
    • For the Group A-B, click on 'Edit Group'
    • Give all access for this site and the CP access then save
    • Select Site B from the MSM dropdown.
    • Select Members => Member Groups from the CP
    • For the Group A-B, click on 'Edit Group'
    • Give all access for this site and the CP access then save

    Then when the members from the respective groups sign in to perform functions, they will only see the access they have been granted and thus see the sites as separate.

    This worked for me. Hope it helps you out.