|
|
|
@ -14,7 +14,6 @@
|
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
|
# along with this program; if not, write to the Free Software
|
|
|
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
|
|
|
|
|
class MembersController < ApplicationController
|
|
|
|
|
model_object Member
|
|
|
|
|
before_filter :find_model_object, :except => [:index, :create, :autocomplete]
|
|
|
|
@ -22,7 +21,6 @@ class MembersController < ApplicationController
|
|
|
|
|
before_filter :find_project_by_project_id, :only => [:index, :create, :autocomplete]
|
|
|
|
|
before_filter :authorize
|
|
|
|
|
accept_api_auth :index, :show, :create, :update, :destroy
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
|
@offset, @limit = api_offset_and_limit
|
|
|
|
|
@member_count = @project.member_principals.count
|
|
|
|
@ -49,17 +47,32 @@ class MembersController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def create
|
|
|
|
|
members = []
|
|
|
|
|
project_info = []
|
|
|
|
|
if params[:membership]
|
|
|
|
|
if params[:membership][:user_ids]
|
|
|
|
|
attrs = params[:membership].dup
|
|
|
|
|
user_ids = attrs.delete(:user_ids)
|
|
|
|
|
user_ids.each do |user_id|
|
|
|
|
|
members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id)
|
|
|
|
|
## added by nie
|
|
|
|
|
if params[:membership][:role_ids][0] == "3"
|
|
|
|
|
project_info << ProjectInfo.new(:user_id => user_id, :project_id => @project.id)
|
|
|
|
|
# ProjectInfo.create(:name => "test", :user_id => 123)
|
|
|
|
|
end
|
|
|
|
|
## end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id])
|
|
|
|
|
## added by nie
|
|
|
|
|
if params[:membership][:role_ids][0] == "3"
|
|
|
|
|
project_info << Project_info.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id])
|
|
|
|
|
end
|
|
|
|
|
## end
|
|
|
|
|
end
|
|
|
|
|
@project.members << members
|
|
|
|
|
@project.members << members
|
|
|
|
|
# added by nie
|
|
|
|
|
@project.project_infos << project_info
|
|
|
|
|
# end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
@ -79,7 +92,21 @@ class MembersController < ApplicationController
|
|
|
|
|
def update
|
|
|
|
|
if params[:membership]
|
|
|
|
|
@member.role_ids = params[:membership][:role_ids]
|
|
|
|
|
|
|
|
|
|
#added by nie
|
|
|
|
|
if params[:membership][:role_ids][0] == "3"
|
|
|
|
|
@projectInfo = ProjectInfo.new(:user_id => @member.user_id, :project_id => @project.id)
|
|
|
|
|
@projectInfo.save
|
|
|
|
|
else
|
|
|
|
|
user_admin = ProjectInfo.where("user_id = ? and project_id = ?", @member.user_id, @project.id)
|
|
|
|
|
if user_admin.size > 0
|
|
|
|
|
user_admin.each do |user|
|
|
|
|
|
user.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
saved = @member.save
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to_settings_in_projects }
|
|
|
|
@ -96,7 +123,13 @@ class MembersController < ApplicationController
|
|
|
|
|
|
|
|
|
|
def destroy
|
|
|
|
|
if request.delete? && @member.deletable?
|
|
|
|
|
@member.destroy
|
|
|
|
|
@member.destroy
|
|
|
|
|
end
|
|
|
|
|
user_admin = ProjectInfo.where("user_id = ? and project_id = ?", @member.user_id, @project.id)
|
|
|
|
|
if user_admin.size > 0
|
|
|
|
|
user_admin.each do |user|
|
|
|
|
|
user.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { redirect_to_settings_in_projects }
|
|
|
|
|