Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
e293ffd4
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e293ffd4
编写于
8月 30, 2016
作者:
D
Douglas Barbosa Alexandre
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactoring Import::BaseController#find_or_create_namespace
上级
325de662
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
53 addition
and
47 deletion
+53
-47
app/assets/javascripts/importer_status.js
app/assets/javascripts/importer_status.js
+9
-6
app/controllers/import/base_controller.rb
app/controllers/import/base_controller.rb
+7
-12
app/controllers/import/bitbucket_controller.rb
app/controllers/import/bitbucket_controller.rb
+7
-5
app/controllers/import/github_controller.rb
app/controllers/import/github_controller.rb
+6
-2
app/controllers/import/gitlab_controller.rb
app/controllers/import/gitlab_controller.rb
+6
-2
app/views/import/base/create.js.haml
app/views/import/base/create.js.haml
+1
-20
app/views/import/base/unauthorized.js.haml
app/views/import/base/unauthorized.js.haml
+14
-0
app/views/import/bitbucket/deploy_key.js.haml
app/views/import/bitbucket/deploy_key.js.haml
+3
-0
未找到文件。
app/assets/javascripts/importer_status.js
浏览文件 @
e293ffd4
...
...
@@ -10,21 +10,24 @@
ImporterStatus
.
prototype
.
initStatusPage
=
function
()
{
$
(
'
.js-add-to-import
'
).
off
(
'
click
'
).
on
(
'
click
'
,
(
function
(
_this
)
{
return
function
(
e
)
{
var
$btn
,
$namespace_input
,
$target_field
,
$tr
,
id
,
new
_namespace
;
var
$btn
,
$namespace_input
,
$target_field
,
$tr
,
id
,
target
_namespace
;
$btn
=
$
(
e
.
currentTarget
);
$tr
=
$btn
.
closest
(
'
tr
'
);
$target_field
=
$tr
.
find
(
'
.import-target
'
);
$namespace_input
=
$target_field
.
find
(
'
input
'
);
id
=
$tr
.
attr
(
'
id
'
).
replace
(
'
repo_
'
,
''
);
new_namespace
=
null
;
target_namespace
=
null
;
if
(
$namespace_input
.
length
>
0
)
{
new
_namespace
=
$namespace_input
.
prop
(
'
value
'
);
$target_field
.
empty
().
append
(
new
_namespace
+
"
/
"
+
(
$target_field
.
data
(
'
project_name
'
)));
target
_namespace
=
$namespace_input
.
prop
(
'
value
'
);
$target_field
.
empty
().
append
(
target
_namespace
+
"
/
"
+
(
$target_field
.
data
(
'
project_name
'
)));
}
$btn
.
disable
().
addClass
(
'
is-loading
'
);
return
$
.
post
(
_this
.
import_url
,
{
repo_id
:
id
,
new_namespace
:
new
_namespace
target_namespace
:
target
_namespace
},
{
dataType
:
'
script
'
});
...
...
@@ -70,7 +73,7 @@
if
(
$
(
'
.js-importer-status
'
).
length
)
{
var
jobsImportPath
=
$
(
'
.js-importer-status
'
).
data
(
'
jobs-import-path
'
);
var
importPath
=
$
(
'
.js-importer-status
'
).
data
(
'
import-path
'
);
new
ImporterStatus
(
jobsImportPath
,
importPath
);
}
});
...
...
app/controllers/import/base_controller.rb
浏览文件 @
e293ffd4
...
...
@@ -2,21 +2,16 @@ class Import::BaseController < ApplicationController
private
def
find_or_create_namespace
(
name
,
owner
)
begin
@target_namespace
=
params
[
:new_namespace
].
presence
||
name
@target_namespace
=
current_user
.
namespace_path
if
name
==
owner
||
!
current_user
.
can_create_group?
return
current_user
.
namespace
if
name
==
owner
return
current_user
.
namespace
unless
current_user
.
can_create_group?
namespace
=
Group
.
create!
(
name:
@target_namespace
,
path:
@target_namespace
,
owner:
current_user
)
begin
name
=
params
[
:target_namespace
].
presence
||
name
namespace
=
Group
.
create!
(
name:
name
,
path:
name
,
owner:
current_user
)
namespace
.
add_owner
(
current_user
)
namespace
rescue
ActiveRecord
::
RecordNotUnique
,
ActiveRecord
::
RecordInvalid
namespace
=
Namespace
.
find_by_path_or_name
(
@target_namespace
)
unless
current_user
.
can?
(
:create_projects
,
namespace
)
@already_been_taken
=
true
return
false
end
Namespace
.
find_by_path_or_name
(
name
)
end
namespace
end
end
app/controllers/import/bitbucket_controller.rb
浏览文件 @
e293ffd4
...
...
@@ -38,15 +38,17 @@ class Import::BitbucketController < Import::BaseController
@repo_id
=
params
[
:repo_id
].
to_s
repo
=
client
.
project
(
@repo_id
.
gsub
(
'___'
,
'/'
))
@project_name
=
repo
[
'slug'
]
namespace
=
find_or_create_namespace
(
repo
[
'owner'
],
client
.
user
[
'user'
][
'username'
])
||
(
render
and
return
)
@target_namespace
=
find_or_create_namespace
(
repo
[
'owner'
],
client
.
user
[
'user'
][
'username'
]
)
unless
Gitlab
::
BitbucketImport
::
KeyAdder
.
new
(
repo
,
current_user
,
access_params
).
execute
@access_denied
=
true
render
return
render
'deploy_key'
and
return
end
@project
=
Gitlab
::
BitbucketImport
::
ProjectCreator
.
new
(
repo
,
namespace
,
current_user
,
access_params
).
execute
if
current_user
.
can?
(
:create_projects
,
@target_namespace
)
@project
=
Gitlab
::
BitbucketImport
::
ProjectCreator
.
new
(
repo
,
@target_namespace
,
current_user
,
access_params
).
execute
else
render
'unauthorized'
end
end
private
...
...
app/controllers/import/github_controller.rb
浏览文件 @
e293ffd4
...
...
@@ -41,9 +41,13 @@ class Import::GithubController < Import::BaseController
@repo_id
=
params
[
:repo_id
].
to_i
repo
=
client
.
repo
(
@repo_id
)
@project_name
=
repo
.
name
namespace
=
find_or_create_namespace
(
repo
.
owner
.
login
,
client
.
user
.
login
)
||
(
render
and
retur
n
)
@target_namespace
=
find_or_create_namespace
(
repo
.
owner
.
login
,
client
.
user
.
logi
n
)
@project
=
Gitlab
::
GithubImport
::
ProjectCreator
.
new
(
repo
,
namespace
,
current_user
,
access_params
).
execute
if
current_user
.
can?
(
:create_projects
,
@target_namespace
)
@project
=
Gitlab
::
GithubImport
::
ProjectCreator
.
new
(
repo
,
@target_namespace
,
current_user
,
access_params
).
execute
else
render
'unauthorized'
end
end
private
...
...
app/controllers/import/gitlab_controller.rb
浏览文件 @
e293ffd4
...
...
@@ -27,9 +27,13 @@ class Import::GitlabController < Import::BaseController
@repo_id
=
params
[
:repo_id
].
to_i
repo
=
client
.
project
(
@repo_id
)
@project_name
=
repo
[
'name'
]
namespace
=
find_or_create_namespace
(
repo
[
'namespace'
][
'path'
],
client
.
user
[
'username'
])
||
(
render
and
return
)
@target_namespace
=
find_or_create_namespace
(
repo
[
'namespace'
][
'path'
],
client
.
user
[
'username'
]
)
@project
=
Gitlab
::
GitlabImport
::
ProjectCreator
.
new
(
repo
,
namespace
,
current_user
,
access_params
).
execute
if
current_user
.
can?
(
:create_projects
,
@target_namespace
)
@project
=
Gitlab
::
GitlabImport
::
ProjectCreator
.
new
(
repo
,
@target_namespace
,
current_user
,
access_params
).
execute
else
render
'unauthorized'
end
end
private
...
...
app/views/import/base/create.js.haml
浏览文件 @
e293ffd4
-
if
@already_been_taken
:plain
tr = $("tr#repo_
#{
@repo_id
}
")
target_field = tr.find(".import-target")
import_button = tr.find(".btn-import")
origin_target = target_field.text()
project_name = "
#{
@project_name
}
"
origin_namespace = "
#{
@target_namespace
}
"
target_field.empty()
target_field.append("<p class='alert alert-danger'>This namespace already been taken! Please choose another one</p>")
target_field.append("<input type='text' name='target_namespace' />")
target_field.append("/" + project_name)
target_field.data("project_name", project_name)
target_field.find('input').prop("value", origin_namespace)
import_button.enable().removeClass('is-loading')
-
elsif
@access_denied
:plain
job = $("tr#repo_
#{
@repo_id
}
")
job.find(".import-actions").html("<p class='alert alert-danger'>Access denied! Please verify you can add deploy keys to this repository.</p>")
-
elsif
@project
.
persisted?
-
if
@project
.
persisted?
:plain
job = $("tr#repo_
#{
@repo_id
}
")
job.attr("id", "project_
#{
@project
.
id
}
")
...
...
app/views/import/base/unauthorized.js.haml
0 → 100644
浏览文件 @
e293ffd4
:plain
tr = $("tr#repo_
#{
@repo_id
}
")
target_field = tr.find(".import-target")
import_button = tr.find(".btn-import")
origin_target = target_field.text()
project_name = "
#{
@project_name
}
"
origin_namespace = "
#{
@target_namespace
.
path
}
"
target_field.empty()
target_field.append("<p class='alert alert-danger'>This namespace has already been taken! Please choose another one.</p>")
target_field.append("<input type='text' name='target_namespace' />")
target_field.append("/" + project_name)
target_field.data("project_name", project_name)
target_field.find('input').prop("value", origin_namespace)
import_button.enable().removeClass('is-loading')
app/views/import/bitbucket/deploy_key.js.haml
0 → 100644
浏览文件 @
e293ffd4
:plain
job = $("tr#repo_
#{
@repo_id
}
")
job.find(".import-actions").html("<p class='alert alert-danger'>Access denied! Please verify you can add deploy keys to this repository.</p>")
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录