diff options
author | Johan Sørensen <johan@johansorensen.com> | 2009-02-05 17:07:30 +0100 |
---|---|---|
committer | Johan Sørensen <johan@johansorensen.com> | 2009-04-22 14:04:37 +0200 |
commit | bb6c43aa61e083908d52b2f71f55e56af152ad64 (patch) | |
tree | 7be40f9d888733ef2e37621575e042defe1aa48c | |
parent | e10c455992cfb9664ea4625e84edbf9d1888e206 (diff) | |
download | gitorious-mainline-outdated-bb6c43aa61e083908d52b2f71f55e56af152ad64.zip gitorious-mainline-outdated-bb6c43aa61e083908d52b2f71f55e56af152ad64.tar.gz gitorious-mainline-outdated-bb6c43aa61e083908d52b2f71f55e56af152ad64.tar.bz2 |
Change the owner the projects wiki repository as well
-rw-r--r-- | app/controllers/projects_controller.rb | 4 | ||||
-rw-r--r-- | app/models/project.rb | 5 | ||||
-rw-r--r-- | spec/controllers/projects_controller_spec.rb | 1 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 7 |
4 files changed, 15 insertions, 2 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6e2bf46..83a92aa 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -94,11 +94,11 @@ class ProjectsController < ApplicationController # change group, if requested if !@project.owned_by_group? && !params[:project][:owner_id].blank? - @project.owner = current_user.groups.find(params[:project][:owner_id]) + @project.change_owner_to(current_user.groups.find(params[:project][:owner_id])) end @project.attributes = params[:project] - if @project.save + if @project.save && @project.wiki_repository.save @project.create_event(Action::UPDATE_PROJECT, @project, current_user) redirect_to project_path(@project) else diff --git a/app/models/project.rb b/app/models/project.rb index b56c284..6f97b15 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -192,6 +192,11 @@ class Project < ActiveRecord::Base def breadcrumb_parent nil end + + def change_owner_to(another_owner) + self.owner = another_owner + self.wiki_repository.owner = another_owner + end protected def create_wiki_repository diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index a4e0376..627946f 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -341,6 +341,7 @@ describe ProjectsController, "Changing owner" do } response.should redirect_to(project_path(@project)) @project.reload.owner.should == @group + @project.wiki_repository.owner.should == @group end it "changes the owner, only if the original owner was a user" do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index a9e155b..7c5a8fa 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -181,6 +181,13 @@ describe Project do projects(:johans).to_param_with_prefix.should == projects(:johans).to_param end + it "should change the owner of the wiki repo as well" do + project = projects(:johans) + project.change_owner_to(groups(:team_thunderbird)) + project.owner.should == groups(:team_thunderbird) + project.wiki_repository.owner.should == groups(:team_thunderbird) + end + describe "Project events" do before(:each) do @project = projects(:johans) |