|
|
|
@ -31,7 +31,7 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
default_search_scope :changesets
|
|
|
|
|
|
|
|
|
|
before_filter :find_project_by_project_id, :only => [:new, :create, :newrepo]
|
|
|
|
|
before_filter :find_repository, :only => [:edit, :update, :destroy, :committers]
|
|
|
|
|
before_filter :find_repository, :only => [:edit, :update, :destroy, :committers, :forked]
|
|
|
|
|
before_filter :find_project_repository, :except => [:new, :create, :newcreate, :edit, :update, :destroy, :committers, :newrepo,:to_gitlab]
|
|
|
|
|
before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue]
|
|
|
|
|
before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked]
|
|
|
|
@ -69,9 +69,11 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
project = project_from_current_project(@project.id, User.current.id)
|
|
|
|
|
redirect_to project_path(project)
|
|
|
|
|
else
|
|
|
|
|
# 单个用户只能拥有一个名字一样的版本库,否则不能fork
|
|
|
|
|
# if is_sigle_identifier?(User.current, @repository.identifier)
|
|
|
|
|
# REDO: 那些人有权限forked项目
|
|
|
|
|
# 自己不能fork自己的项目
|
|
|
|
|
if User.current.id == @project.user_id
|
|
|
|
|
flash[:notice] = l(:project_gitlab_fork_own)
|
|
|
|
|
redirect_to repository_url(@repository)
|
|
|
|
|
else
|
|
|
|
|
g = Gitlab.client
|
|
|
|
|
gproject = g.fork(@project.gpid, User.current.gid)
|
|
|
|
|
if gproject
|
|
|
|
@ -79,10 +81,7 @@ class RepositoriesController < ApplicationController
|
|
|
|
|
forked_count = @project.forked_count.to_i + 1
|
|
|
|
|
@project.update_attributes(:forked_count => forked_count)
|
|
|
|
|
end
|
|
|
|
|
# else
|
|
|
|
|
# flash[:notice] = l(:project_gitlab_fork_double_message)
|
|
|
|
|
# redirect_to settings_project_url(@project, :tab => 'repositories')
|
|
|
|
|
# end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|