summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2009-02-05 17:07:30 +0100
committerJohan Sørensen <johan@johansorensen.com>2009-04-22 14:04:37 +0200
commitbb6c43aa61e083908d52b2f71f55e56af152ad64 (patch)
tree7be40f9d888733ef2e37621575e042defe1aa48c
parente10c455992cfb9664ea4625e84edbf9d1888e206 (diff)
downloadgitorious-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.rb4
-rw-r--r--app/models/project.rb5
-rw-r--r--spec/controllers/projects_controller_spec.rb1
-rw-r--r--spec/models/project_spec.rb7
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)