summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-20 12:28:17 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-20 12:28:17 +0000
commit91672f4f0fa80025359c01b944a6eae095cbe1cb (patch)
tree5462da45d4e00335edc5d755f3729f11b317d0bb
parent41f01dd3f4c13502483f59b754af8429abc6af39 (diff)
parentc75c6b840ba9ed82bb01eca52e968c2b0ec985e6 (diff)
downloadgitlab-ce-91672f4f0fa80025359c01b944a6eae095cbe1cb.tar.gz
Merge branch 'revert-username-period' into 'master'
Revert disallowing usernames to end in period. cc @JobV @jacobvosmaer See merge request !545
-rw-r--r--CHANGELOG1
-rw-r--r--db/migrate/20150324133047_remove_periods_at_ends_of_usernames.rb76
-rw-r--r--lib/gitlab/regex.rb4
3 files changed, 2 insertions, 79 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 0f250a0c365..1aab904f117 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -87,7 +87,6 @@ v 7.10.0 (unreleased)
- Fix admin user projects lists.
- Don't leak private group existence by redirecting from namespace controller to group controller.
- Ability to skip some items from backup (database, respositories or uploads)
- - Fix "Hello @username." references not working by no longer allowing usernames to end in period.
- Archive repositories in background worker.
- Import GitHub, Bitbucket or GitLab.com projects owned by authenticated user into current namespace.
- Project labels are now available over the API under the "tag_list" field (Cristian Medina)
diff --git a/db/migrate/20150324133047_remove_periods_at_ends_of_usernames.rb b/db/migrate/20150324133047_remove_periods_at_ends_of_usernames.rb
deleted file mode 100644
index dc38b0eceb7..00000000000
--- a/db/migrate/20150324133047_remove_periods_at_ends_of_usernames.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-class RemovePeriodsAtEndsOfUsernames < ActiveRecord::Migration
- include Gitlab::ShellAdapter
-
- class Namespace < ActiveRecord::Base
- class << self
- def find_by_path_or_name(path)
- find_by("lower(path) = :path OR lower(name) = :path", path: path.downcase)
- end
-
- def clean_path(path)
- path = path.dup
- path.gsub!(/@.*\z/, "")
- path.gsub!(/\.git\z/, "")
- path.gsub!(/\A-+/, "")
- path.gsub!(/\.+\z/, "")
- path.gsub!(/[^a-zA-Z0-9_\-\.]/, "")
-
- counter = 0
- base = path
- while Namespace.find_by_path_or_name(path)
- counter += 1
- path = "#{base}#{counter}"
- end
-
- path
- end
- end
- end
-
- def up
- changed_paths = {}
-
- select_all("SELECT id, username FROM users WHERE username LIKE '%.'").each do |user|
- username_was = user["username"]
- username = Namespace.clean_path(username_was)
- changed_paths[username_was] = username
-
- username = quote_string(username)
- execute "UPDATE users SET username = '#{username}' WHERE id = #{user["id"]}"
- execute "UPDATE namespaces SET path = '#{username}', name = '#{username}' WHERE type IS NULL AND owner_id = #{user["id"]}"
- end
-
- select_all("SELECT id, path FROM namespaces WHERE type = 'Group' AND path LIKE '%.'").each do |group|
- path_was = group["path"]
- path = Namespace.clean_path(path_was)
- changed_paths[path_was] = path
-
- path = quote_string(path)
- execute "UPDATE namespaces SET path = '#{path}' WHERE id = #{group["id"]}"
- end
-
- changed_paths.each do |path_was, path|
- if gitlab_shell.mv_namespace(path_was, path)
- # If repositories moved successfully we need to remove old satellites
- # and send update instructions to users.
- # However we cannot allow rollback since we moved namespace dir
- # So we basically we mute exceptions in next actions
- begin
- gitlab_shell.rm_satellites(path_was)
- # We cannot send update instructions since models and mailers
- # can't safely be used from migrations as they may be written for
- # later versions of the database.
- # send_update_instructions
- rescue
- # Returning false does not rollback after_* transaction but gives
- # us information about failing some of tasks
- false
- end
- else
- # 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')
- end
- end
- end
-end
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb
index 0571574aa4f..9aeed5e6939 100644
--- a/lib/gitlab/regex.rb
+++ b/lib/gitlab/regex.rb
@@ -2,7 +2,7 @@ module Gitlab
module Regex
extend self
- NAMESPACE_REGEX_STR = '(?:[a-zA-Z0-9_\.][a-zA-Z0-9_\-\.]*[a-zA-Z0-9_\-]|[a-zA-Z0-9_])'.freeze
+ NAMESPACE_REGEX_STR = '(?:[a-zA-Z0-9_\.][a-zA-Z0-9_\-\.]*)'.freeze
def namespace_regex
@namespace_regex ||= /\A#{NAMESPACE_REGEX_STR}\z/.freeze
@@ -10,7 +10,7 @@ module Gitlab
def namespace_regex_message
"can contain only letters, digits, '_', '-' and '.'. " \
- "Cannot start with '-' or end in '.'." \
+ "Cannot start with '-'." \
end