InvisionBridge

Allows your Authlogic-based user model to authenticate using an IP.Board 3.x database.

Usage

Database configuration

You'll need to manually alter the ibf_members table in your IP.Board database to add the following fields for use by Authlogic:

persistence_token             varchar(255)          NOT NULL
last_request_at               datetime              NULL
current_login_at              datetime              NULL
last_login_at                 datetime              NULL
current_login_ip              varchar(255)          NULL
last_login_ip                 varchar(255)          NULL
single_access_token           varchar(255)          NULL

Modify your config/database.yml file to include your IP.Board database information:

invision_bridge_development:
  adapter: mysql
  database: my_forums_development
  host: localhost
  user: username
  password: password
  prefix: ibf_

invision_bridge_production:
  adapter: mysql
  database: my_forums
  host: localhost
  user: username
  password: password
  prefix: ibf_

Model creation

Modify or create your User model to include InvisionBridge

class User < ActiveRecord::Base
  include InvisionBridge
end

That's it. You can further customize your model as needed. For example, you may have a group of administrators on your forum that you want to be administrators in your Rails application.

class User < ActiveRecord::Base
  include InvisionBridge

  ADMIN_GROUP = 1

  def is_admin?
    self.member_group_id == ADMIN_GROUP
  end
end

ORM Adapters

Currently InvisionBridge only works with ActiveRecord models. I'd love to add a DataMapper adapter if/when I need one.

Known Issues

While using this in my own production application, I'd occasionally get "MySQL server has gone away" exceptions popping up. I still don't know the root cause, but I was able to make the error stop appearing by adding reconnect: true to the invision_bridge_production database definition.

Credits

Copyright (c) 2010 Robert Speicher, released under the MIT license