diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index c1e124063..ca07dccdc 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -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 diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index e7875b49c..be303a2ab 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -26,8 +26,9 @@
- -