Skip to content

Commit

Permalink
Revert "add ability to request membership, re-add old members"
Browse files Browse the repository at this point in the history
This reverts commit 592b04d.

Conflicts:

	Gemfile.lock
	db/schema.rb
  • Loading branch information
bamnet committed Mar 6, 2012
1 parent 5f63a59 commit 7a55d01
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 115 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ GEM
sprockets (2.1.2)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
tilt (!= 1.3.0, ~> 1.1)
sqlite3 (1.3.5)
thor (0.14.6)
tilt (1.3.3)
Expand Down
58 changes: 25 additions & 33 deletions app/controllers/memberships_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,7 @@ class MembershipsController < ApplicationController
# POST /groups/:group_id/memberships.xml
def create
@group = Group.find(params[:group_id])

if params[:autoconfirm]
@membership = Membership.find_or_create_by_user_id_and_group_id(params[:membership][:user_id], params[:group_id])
@membership.update_attributes(:moderation_flag => 'true', :level => Membership::LEVELS[:regular])
else
@membership = Membership.find_or_create_by_user_id_and_group_id(params[:user_id], params[:group_id])
@membership.update_attributes(:moderation_flag => nil, :level => Membership::LEVELS[:pending])
end
@membership = Membership.new({:user_id => params[:membership][:user_id], :group_id => params[:group_id]})

respond_to do |format|
if @membership.save
Expand All @@ -23,6 +16,30 @@ def create
end
end

# PUT /groups/:group_id/memberships/1/promote
# PUT /groups/:group_id/memberships/1/promote.xml
def promote
@membership = Membership.find(params[:id])
@membership.level = Membership::LEVELS[:leader]
if @membership.save
redirect_to(@membership.group, :notice => t(:member_promoted))
else
redirect_to @membership.group
end
end

# PUT /groups/:group_id/memberships/1/demote
# PUT /groups/:group_id/memberships/1/demote.xml
def demote
@membership = Membership.find(params[:id])
@membership.level = Membership::LEVELS[:regular]
if @membership.save
redirect_to(@membership.group, :notice => t(:member_demoted))
else
redirect_to @membership.group
end
end

# PUT /groups/:group_id/memberships/1
# PUT /groups/:group_id/memberships/1.xml
def update
Expand Down Expand Up @@ -52,29 +69,4 @@ def destroy
format.xml { head :ok }
end
end

# PUT /groups/:group_id/memberships/1/approve
def approve
membership = Membership.find(params[:id])
respond_to do |format|
if membership.approve()
format.html { redirect_to(group_path(params[:group_id]), :notice => t(:membership_approved)) }
else
format.html { redirect_to(group_path(params[:group_id]), :notice => t(:membership_failed_approve)) }
end
end
end

# PUT /groups/:group_id/memberships/1/deny
def deny
membership = Membership.find(params[:id])
respond_to do |format|
if membership.deny()
format.html { redirect_to(group_path(params[:group_id]), :notice => t(:membersip_denied)) }
else
logger.debug membership.errors
format.html { redirect_to(group_path(params[:group_id]), :notice => t(:membership_failed_deny)) }
end
end
end
end
47 changes: 2 additions & 45 deletions app/models/membership.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,54 +19,11 @@ class Membership < ActiveRecord::Base
validates_uniqueness_of :user_id, :scope => :group_id

#Scoping shortcuts for leaders/regular
scope :leader, where(:level => Membership::LEVELS[:leader], :moderation_flag => true)
scope :regular, where(:level => Membership::LEVELS[:regular], :moderation_flag => true)
scope :leader, where(:level => Membership::LEVELS[:leader])
scope :regular, where(:level => Membership::LEVELS[:regular])

#Scoping shortcuts for approved/denied/pending
scope :approved, where(:moderation_flag => true)
scope :denied, where(:moderation_flag => false)
scope :pending, where("moderation_flag IS NULL")

# Test if the membership has been approved.
# (moderation flag is true)
def is_approved?
moderation_flag ? true : false
end

# Test if the membership has been denied.
# (moderation flag is false)
def is_denied?
(moderation_flag == false) ? true : false
end

# Test if the membership has not yet been moderated.
# (moderation flag is nil)
def is_pending?
moderation_flag.nil?
end

# A shortcut to test if a membership represents a leader
def is_leader?
level == Membership::LEVELS[:leader]
end

# Approve a user in group
def approve()
if update_attributes({:moderation_flag => true, :level => 1 })
true
else
reload
false
end
end

# Deny a user in group
def deny()
if update_attributes({:moderation_flag => false})
true
else
reload
false
end
end
end
5 changes: 2 additions & 3 deletions app/views/groups/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@
<% @groups.each do |group| %>
<tr>
<td><%= group.name %></td>
<td><%= link_to 'Show', group %> <%= link_to 'Edit', edit_group_path(group) %> <%= link_to 'Destroy', group, :confirm => 'Are you sure?', :method => :delete %>
<%= link_to_if(user_signed_in?, "Join", { :controller => "memberships", :action => "create", :group_id => group.id, :user_id => current_user.id}, :method => :post) %>
<td><%= link_to 'Show', group %> <%= link_to 'Edit', edit_group_path(group) %> <%= link_to 'Destroy', group, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
</article>
<div class="clear"></div>
</div>
</section>
</section>
23 changes: 3 additions & 20 deletions app/views/groups/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,18 @@
<% @group.memberships.leader.each do |membership| %>
<li>
<%= membership.user.name %> -
<% if !membership.is_leader? %> - change membership level <% end %>
<%= link_to "Demote", demote_group_membership_path(@group, membership), :method => :put %>
</li>
<% end %>
</ul>
</p>
<p>
<b>Members:</b>
<ul>
<% @group.memberships.regular.each do |membership| %>
<% @group.memberships.each do |membership| %>
<li>
<%= membership.user.name %> - <%= link_to "Destroy", [@group, membership], :confirm => 'Are you sure?', :method => :delete %>
<% if !membership.is_leader? %>
<%= form_for([@group, membership]) do |f| %>
<%= f.select :level, Membership::LEVELS %>
<%= f.submit %>
<% end %>
<% end %>
</li>
<% end %>
</ul>
</p>
<p>
<b>Pending Members:</b>
<ul>
<% @group.memberships.pending.each do |membership| %>
<li>
<%= membership.user.name %> - <%= link_to "Aprove", approve_group_membership_path(@group, membership), :confirm => 'Are you sure?', :method => :put %>
<%= link_to "Deny", deny_group_membership_path(@group, membership), :confirm => 'Are you sure?', :method => :put %>
<% if !membership.is_leader? %> - <%= link_to "Promote", promote_group_membership_path(@group, membership), :method => :put %><% end %>
</li>
<% end %>
</ul>
Expand All @@ -44,7 +28,6 @@
<b>Add Member:</b>
<%= form_for([@group, @group.memberships.new]) do |f| %>
<%= f.collection_select :user_id, User.all - @group.users, :id, :name %>
<%= hidden_field_tag 'autoconfirm', true %>
<%= f.submit %>
<% end %>
</p>
Expand Down
4 changes: 2 additions & 2 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
resources :groups do
resources :memberships, :only => [:create, :update, :destroy] do
member do
put :approve
put :deny
put :promote
put :demote
end
end
end
Expand Down

This file was deleted.

3 changes: 1 addition & 2 deletions db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@
t.integer "group_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "level", :default => 0
t.boolean "moderation_flag"
t.integer "level", :default => 0
end

create_table "positions", :force => true do |t|
Expand Down

0 comments on commit 7a55d01

Please sign in to comment.