You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
606 B
21 lines
606 B
5 years ago
|
class ForksController < ApplicationController
|
||
|
before_action :require_login, :find_project_with_id
|
||
|
before_action :authenticate_project!, :authenticate_user!
|
||
|
|
||
|
def create
|
||
|
@new_project = Projects::ForkService.new(current_user, @project, params[:organization]).call
|
||
|
end
|
||
|
|
||
|
private
|
||
|
def authenticate_project!
|
||
|
return if current_user != @project.owner
|
||
|
render_result(1, "自己不能fork自己的项目")
|
||
|
end
|
||
|
|
||
|
def authenticate_user!
|
||
|
return if @project.is_public
|
||
|
return if @project.member?(current_user) || current_user.admin?
|
||
|
render_forbidden('你没有权限操作')
|
||
|
end
|
||
|
end
|