Skip to content
Snippets Groups Projects
Commit 26622f4c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Improve routing. Project access via namespace

parent a4d1bc17
No related branches found
No related tags found
1 merge request!2051User/Group namespaces for projects
Loading
Loading
@@ -63,7 +63,10 @@ class ApplicationController < ActionController::Base
end
 
def project
@project ||= current_user.projects.find_by_code(params[:project_id] || params[:id])
id = params[:project_id] || params[:id]
id = id.split("/") if id.include?("/")
@project ||= current_user.projects.find_by_code(id)
@project || render_404
end
 
Loading
Loading
Loading
Loading
@@ -135,7 +135,11 @@ class Project < ActiveRecord::Base
end
 
def to_param
code
if namespace
namespace.code + "/" + code
else
code
end
end
 
def web_url
Loading
Loading
@@ -201,4 +205,7 @@ class Project < ActiveRecord::Base
path
end
end
def move_repo
end
end
class ProjectObserver < ActiveRecord::Observer
def after_save(project)
project.update_repository
def before_save(project)
# Move repository if namespace changed
if project.namespace_id_changed?
move_project(project)
end
end
 
def after_save(project)
project.update_repository
end
def after_destroy(project)
log_info("Project \"#{project.name}\" was removed")
 
Loading
Loading
@@ -35,7 +37,8 @@ class ProjectObserver < ActiveRecord::Observer
old_path = File.join(Gitlab.config.git_base_path, old_dir, "#{project.path}.git")
new_path = File.join(new_dir_path, "#{project.path}.git")
 
binding.pry
`mv #{old_path} #{new_path}`
log_info "Project #{project.name} was moved from #{old_path} to #{new_path}"
end
end
Loading
Loading
@@ -18,7 +18,7 @@ Gitlab::Application.routes.draw do
project_root: Gitlab.config.git_base_path,
upload_pack: Gitlab.config.git_upload_pack,
receive_pack: Gitlab.config.git_receive_pack
}), at: '/:path', constraints: { path: /[\w\.-]+\.git/ }
}), at: '/:path', constraints: { path: /[-\/\w\.-]+\.git/ }
 
#
# Help
Loading
Loading
@@ -107,7 +107,7 @@ Gitlab::Application.routes.draw do
#
# Project Area
#
resources :projects, constraints: { id: /[^\/]+/ }, except: [:new, :create, :index], path: "/" do
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, except: [:new, :create, :index], path: "/" do
member do
get "wall"
get "graph"
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment