Camaraderie takes away the pain of managing membership stuff between users and organizations.
Add this line to your application's Gemfile:
Then run the task to generate the migration:
$ rails generate camaraderie:install
First, you have to configure which type of memberships you want. Usually, you’d do this in
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
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>]>
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.