Jump to content

Membership management through link to IP_Board


ceberlin
 Share

Recommended Posts

Hello,

I am in the early evaluation stage for PW.

Coming from the Drupal 7 world and not being a software developer but coming

from the design-side, these are my main goals for a new project:

  • design ...is everything:
    The normal webpages need to be as flexible as possible to design
    whereas is ok in the community area to have a more standard layout.
    PW is PERFECT for me, Drupal has limits (even with modules), a main
    reason for my unhappiness (and yes, I know how to make my own templates)
  • Organization:I am making a brochure style Webpage, PW is perfect here.
    (Drupal plays it's role when having millions of pages, which needs different
    organizations, like automatic menus, Taxonomy, views.
  • Developing speed.
    Drupal needs 10000000+ clicks for installation. And for every new project
    the same mess again. PW can be adapted easily.
  • Membership fun (forums, galleries, friending):
    Drupal is good, PW has nothing like that
  • E-Commerce: Drupal has unfinished stuff, PW nothing.

I don't blame PW for its limitation with membership management and E-Commerce.

Those limitation is also a strenght and beauty because PW is not feature-overloaded and easy

to handle. (A reason for me to have arrived here!)

And there are pefect solutions for that existing already, like the IP_Board and Magento.

I am now thinking of combining the specialists in it's fields like PW and IP_Board

to have the best of both worlds that would by far more manageable than Drupal

with its modules.

What about using the fine grained Bulletin Board membership membership management

and use this to access users to PW content (and editors and admins to the PW backend).

Isn't it easier to write a "bridge" module than adding membership features

to PW and trying to re-invent the wheel? The IP_Board has a strong API for authentification.

(This site is also using the IP_Board.)

Which means that users register and login to the board to have access to

PW privileges also (through synchronizing the user base or bypassing the PW auth).

That would be perfectly bypassing the PW limit of not having a fine grained

frontend user (users level1,2,3) and backend users (editors, admins).

(I a same way e-commerce functionality could be added with another auth-"bridge".)

Is there something in PW (a module?) I have overlooked that does this already?

Otherwise I would like to post this here as a starting point for ideas and discussion.

Thanks for reading all this. I am very curious about your opinions.

Cheers

Carl from Berlin

  • Like 1
Link to comment
Share on other sites

I've got some integration with IP.Board running here: http://www.strategycore.co.uk

In fact, the user strip across the top outside the forums is through a PW module that accesses functionality of IP.Board, plus all commenting in news and articles on that site uses some IP.Board functions in a PW module too along with my own code so they can add replies from the article pages themselves.

There are a few things to note though:

  1. It's not exactly what you're after - I didn't bother trying to somehow link the permissions as that always gets messy when the forum software gets rewritten, plus it's rarely the case that your member groups will be the same on the forums as they will in your PW installation (if you have many moderators looking after your forums, do you really want them all to have the same perms in PW?)
  2. It doesn't do single sign-on. I do have something in mind, in that when someone tries to login to the PW backend using IP.Board login details, it sets up an account for them in PW with the same password. This doesn't give two-way authentication of course, but it doesn't matter really as if you're always authenticating against the forum software first then you simply check if any details have changed from the forum user account and update them on the PW user account with the same name before logging them in.
    Once an account is created, whenever they next log in on the forums and browse to the site, PW can do a quick check to see if a PW account exists with the same name, create one if not and log them in quietly behind the scenes. This then allows an admin to place their PW user account, which would be a guest account by default, into another group for PW on a per-user basis

With the way my module currently works, I've tried to simply use core functions from the forum software. The API for IP.Board is a bit limited so I simply ended up initialising the forum software from my PW module and using the forum's classes from there, minimising the amount of custom code I was throwing into the mix so that it should survive all but major updates (you're always at the mercy of forum software when connecting other scripts to them as they roll code out so often).

I'm still not happy that my module would survive a major upgrade to the forum software, as not every project is as thoughtful as PW about keeping deprecated functions in place for a while, and some change class and function names far too often, but I'm reasonably sure that my code should work for the life of IPB 3.x (min version is 3.2).

So anyway, I approached my module from the website being the core, not the forums (although forums are often the core in terms of community). This is because it seems far easier to override PW's functionality than IP.Board's, and I think the same would be true of other forum software. There are already a few examples of other sign-in methods on the forums here for PW (the LDAP login module was the one that showed me how easy it is to override the normal login routine).

Just some food for thought.

Whichever forum software you use, none of them seem to have amazing APIs and others aren't even possible to bootstrap so there's that to bear in mind.

Link to comment
Share on other sites

@pete thanks for your expertise.

just for Info: After a bad experience of the IPB support (I asked for something very

specific - a pre-sale question about their shop and German Law - I just got a stupid

reply how to run the demo instead of an answer to my question). I don't like them

stealing my time. I was scared away and purchased xenforo. ???

One good thought you have is why staying away from a single-logon.

Also I need to check further how to override the PW logon, if needed.

My idea is now to separate front end and backend users in a way that

I use the PW login system for backend users:

  1. Backend users like admins will need to login to both system, which I think is ok.
  2. And a normal user needs to log in to xenforo to be able also to see some VIP content from PW also.

If I want to hide PW content from normal users, I could try using the sessions, which xenforo creates....

This is the route I am trying to use now.

(I still need to install and get accustomed to PW als well as xenforo, but at least I have my first ideas now...)

(If there is no mod or extension planned, this thread maybe belongs to the "how to" area of this board instead?)

  • Like 1
Link to comment
Share on other sites

Great post!

Organization:I am making a brochure style Webpage, PW is perfect here.

(Drupal plays it's role when having millions of pages, which needs different

organizations, like automatic menus, Taxonomy, views.

PW is a lot different than Drupal in this regard, but no less flexible. Between page references, structure, the API, and markup under your control, I think you can take PW further than you can Drupal.

Another aspect of PW that I wanted to mention that is easy to miss: PW supports unlimited granular permissions. You can simply add new permissions in the admin (Admin > Access > Permissions). Then edit any roles you want to have those permissions and check the appropriate boxes. From that point, you can use those permissions in the API however you want. For instance, if you'd created a permission called "sugar-in-coffee" then you could check if the current user has that permission by using the API:

if($user->hasPermission("sugar-in-coffee")) {
 // do something
}

Something else you may find handy is if you want to provide additional access without a user having to login. Lets say you are performing some check with the IP.Board API to determine if a user of a certain level is logged in there, and you want them to have upgraded permissions in PW at the same time. Create a role that has the permissions you want. Then you can assign that role to guest when you detect they should have additional access:

if($user_is_logged_in_ipboard) { // or however you perform this check
  $user->addRole('member'); // where 'member' is the role you added
  // now user has more access
}

or if you want to login a specific user in PW, but don't need to authenticate (because they already authenticated in IP.Board):

if($user_is_logged_in_ipboard) {
 $u = $users->get($ipboard_user_name);
 if($u->id) $users->setCurrentUser($u); 
 // now a user is logged in for this request, without having to authenticate
}

  • Like 2
Link to comment
Share on other sites

Thanks both - this would be a useful thread to discuss any such integrations I guess ceberlin, as there are many scripts out there that had their own member systems.

It will be good to see integration with another forum package too as we'll likely have different approaches to similar problems so good luck with it :)

Thanks for your post ryan, that certainly gives me a good idea of how to do a few things I wasn't sure of :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...