Camaraderie

Camaraderie takes away the pain of managing membership stuff between users and organizations.

Installation

Add this line to your application's Gemfile:

gem 'camaraderie'

Then run the task to generate the migration:

$ rails generate camaraderie:install

Usage

First, you have to configure which type of memberships you want. Usually, you’d do this in ./config/initializers/camaraderie.rb:

Camaraderie.configure do |config|
  config.membership_types = %w(admin moderator member)
end

Then, you can include the two provided modules into your User, Organization and Membership models:

class User < ActiveRecord::Base
  acts_as_user
end

class Organization < ActiveRecord::Base
  acts_as_organization
end

class Membership < ActiveRecord::Base
  acts_as_membership
end

You’re pretty much done after that. You’re now able to do this:

user = User.find(1)
organization = Organization.find(1)

# Add the user as an admin
organization.admins.create(user: user)

# Add the user as a regular member
organization.members.create(user: user)

# Check whether the user is an admin
user.admin_of?(organization)
# => true

License

Camaraderie is © 2013 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We proudly built mobile applications for iPhone, iPad, Android, Blackberry, Windows Phone and Windows 8.