summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-12-20 17:52:27 +0100
committerJames Lopez <james@jameslopez.es>2016-12-20 17:52:27 +0100
commitb82fdf6257255b720526ccef716759892e88de09 (patch)
tree52c4adbaa69a9e4b4174b6efc0f817ffda64d815 /app
parentad1a1d976c877eca16858368db0c5b3ef800db8b (diff)
downloadgitlab-ce-b82fdf6257255b720526ccef716759892e88de09.tar.gz
Fix error 500 renaming group. Also added specs and changelog.
Diffstat (limited to 'app')
-rw-r--r--app/controllers/groups_controller.rb5
-rw-r--r--app/models/namespace.rb4
-rw-r--r--app/services/groups/update_service.rb8
3 files changed, 13 insertions, 4 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index b83c3a872cf..5c7709ea013 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -82,7 +82,10 @@ class GroupsController < Groups::ApplicationController
if Groups::UpdateService.new(@group, current_user, group_params).execute
redirect_to edit_group_path(@group), notice: "Group '#{@group.name}' was successfully updated."
else
- render action: "edit"
+ error = group.errors.full_messages.first
+ alert_message = "Group '#{@group.name}' cannot be updated: " + error
+
+ redirect_to edit_group_path(@group.reload), alert: alert_message
end
end
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index fd42f2328d8..b52f08c7081 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -98,7 +98,7 @@ class Namespace < ActiveRecord::Base
def move_dir
if any_project_has_container_registry_tags?
- raise Exception.new('Namespace cannot be moved, because at least one project has tags in container registry')
+ raise Gitlab::UpdatePathError.new('Namespace cannot be moved, because at least one project has tags in container registry')
end
# Move the namespace directory in all storages paths used by member projects
@@ -111,7 +111,7 @@ class Namespace < ActiveRecord::Base
# if we cannot move namespace directory we should rollback
# db changes in order to prevent out of sync between db and fs
- raise Exception.new('namespace directory cannot be moved')
+ raise Gitlab::UpdatePathError.new('namespace directory cannot be moved')
end
end
diff --git a/app/services/groups/update_service.rb b/app/services/groups/update_service.rb
index fff2273f402..4e878ec556a 100644
--- a/app/services/groups/update_service.rb
+++ b/app/services/groups/update_service.rb
@@ -14,7 +14,13 @@ module Groups
group.assign_attributes(params)
- group.save
+ begin
+ group.save
+ rescue Gitlab::UpdatePathError => e
+ group.errors.add(:base, e.message)
+
+ false
+ end
end
end
end