simple_groups
simple_groups copied to clipboard
Rails plugin that adds a basic system for creating user maintained groups.
Simple Groups
This plugin creates a group model and relates it to your User model via a has_many :through relationship. It is designed for use with restful_authentication but could be used with any User model.
To install:
script/plugin install git://github.com/JonMidhir/simple_groups.git
To use:
script/generate simple_groups Group
If you wish you can rename the last parameter anything you want, but Group is probably the most appropriate! Add --skip-migration to avoid creating the migration files.
Add this near the top of your User model: include_simple_groups
Remember to run the migrations: rake db:migrate
Usage
These methods are available to your controllers and views after installation, many are self.explanatory!
user.groups user.pending_groups user.is_member_of?(group) user.is_mod_of?(group) user.request_membership_of(group) user.pending_and_accepted_groups user.membership(group) user.leave(group) user.become_member_of(group)
The following can be called on the group model.
group.members group.mods group.pending_members group.accept_member(user) group.pending_and_accepted_members group.kick(user) group.mods_online group.members_online group.members_offline group.has_member?(user)
Note that currently the user requests membership of the group and the group accepts membership of the user. It is up to you to protect this functionality and restrict it to mods only. If you want your groups to be open use the user.become_member_of(group) method.
Copyright (c) 2008 Jon M Hope, released under the MIT license