Resourcified project memberships.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8789 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-02-05 16:35:27 +00:00
parent 229b2f8d2a
commit 78bd24c6f7
8 changed files with 48 additions and 52 deletions
+13 -10
View File
@@ -17,15 +17,15 @@
class MembersController < ApplicationController
model_object Member
before_filter :find_model_object, :except => [:new, :autocomplete_for_member]
before_filter :find_project_from_association, :except => [:new, :autocomplete_for_member]
before_filter :find_project, :only => [:new, :autocomplete_for_member]
before_filter :find_model_object, :except => [:create, :autocomplete]
before_filter :find_project_from_association, :except => [:create, :autocomplete]
before_filter :find_project_by_project_id, :only => [:create, :autocomplete]
before_filter :authorize
def new
def create
members = []
if params[:member] && request.post?
attrs = params[:member].dup
if params[:membership] && request.post?
attrs = params[:membership].dup
if (user_ids = attrs.delete(:user_ids))
user_ids.each do |user_id|
members << Member.new(attrs.merge(:user_id => user_id))
@@ -63,8 +63,11 @@ class MembersController < ApplicationController
end
end
def edit
if request.post? and @member.update_attributes(params[:member])
def update
if params[:membership]
@member.role_ids = params[:membership][:role_ids]
end
if request.put? && @member.save
respond_to do |format|
format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
format.js {
@@ -79,7 +82,7 @@ class MembersController < ApplicationController
end
def destroy
if request.post? && @member.deletable?
if request.delete? && @member.deletable?
@member.destroy
end
respond_to do |format|
@@ -92,7 +95,7 @@ class MembersController < ApplicationController
end
end
def autocomplete_for_member
def autocomplete
@principals = Principal.active.like(params[:q]).find(:all, :limit => 100) - @project.principals
render :layout => false
end