Skip to content

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

License

Notifications You must be signed in to change notification settings

mirego/camaraderie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Camaraderie

Gem Version Code Climate Build Status

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|
  # The different types of memberships (defaults to `['admin']`)
  config.membership_types = %w(admin moderator member)

  # The class name of the organization model (defaults to `'Organization'`)
  config.organization_class = 'Company'

  # The class name of the user model (defaults to `'User'`)
  config.user_class = 'Employee'
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

# List all the admins for the organization
organization.admin_users
# => #<ActiveRecord::Relation [<User id=1>]>

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're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages