Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
6f03ddcd
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,发现更多精彩内容 >>
提交
6f03ddcd
编写于
8月 29, 2017
作者:
R
Rubén Dávila
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Address some suggestions from first code review
上级
0a8d0924
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
56 addition
and
46 deletion
+56
-46
app/controllers/projects_controller.rb
app/controllers/projects_controller.rb
+1
-10
app/helpers/namespaces_helper.rb
app/helpers/namespaces_helper.rb
+7
-8
app/helpers/visibility_level_helper.rb
app/helpers/visibility_level_helper.rb
+6
-6
app/models/group.rb
app/models/group.rb
+20
-20
app/models/project.rb
app/models/project.rb
+4
-2
lib/gitlab/visibility_level.rb
lib/gitlab/visibility_level.rb
+18
-0
未找到文件。
app/controllers/projects_controller.rb
浏览文件 @
6f03ddcd
...
...
@@ -3,7 +3,6 @@ class ProjectsController < Projects::ApplicationController
include
ExtractsPath
before_action
:authenticate_user!
,
except:
[
:index
,
:show
,
:activity
,
:refs
]
before_action
:namespace
,
only:
[
:new
]
before_action
:project
,
except:
[
:index
,
:new
,
:create
]
before_action
:repository
,
except:
[
:index
,
:new
,
:create
]
before_action
:assign_ref_vars
,
only:
[
:show
],
if: :repo_exists?
...
...
@@ -21,7 +20,7 @@ class ProjectsController < Projects::ApplicationController
end
def
new
build_project
@project
||=
Project
.
new
(
params
.
permit
(
:namespace_id
))
end
def
edit
...
...
@@ -396,12 +395,4 @@ class ProjectsController < Projects::ApplicationController
def
project_export_enabled
render_404
unless
current_application_settings
.
project_export_enabled?
end
def
namespace
@namespace
||=
Namespace
.
find
(
params
[
:namespace_id
])
if
params
[
:namespace_id
].
present?
end
def
build_project
@project
||=
namespace
?
namespace
.
projects
.
new
:
Project
.
new
end
end
app/helpers/namespaces_helper.rb
浏览文件 @
6f03ddcd
...
...
@@ -6,7 +6,6 @@ module NamespacesHelper
def
namespaces_options
(
selected
=
:current_user
,
display_path:
false
,
extra_group:
nil
)
groups
=
current_user
.
owned_groups
+
current_user
.
masters_groups
users
=
[
current_user
.
namespace
]
options
=
[]
unless
extra_group
.
nil?
||
extra_group
.
is_a?
(
Group
)
extra_group
=
Group
.
find
(
extra_group
)
if
Namespace
.
find
(
extra_group
).
kind
==
'group'
...
...
@@ -16,8 +15,9 @@ module NamespacesHelper
groups
|=
[
extra_group
]
end
options
<<
options_for_group
(
groups
,
display_path
)
options
<<
options_for_group
(
users
,
display_path
)
options
=
[]
options
<<
options_for_group
(
groups
,
display_path:
display_path
,
type:
'group'
)
options
<<
options_for_group
(
users
,
display_path:
display_path
,
type:
'user'
)
if
selected
==
:current_user
&&
current_user
.
namespace
selected
=
current_user
.
namespace
.
id
...
...
@@ -36,13 +36,12 @@ module NamespacesHelper
private
def
options_for_group
(
namespaces
,
display_path
)
type
=
namespaces
.
first
.
is_a?
(
Group
)
?
'group'
:
'users'
def
options_for_group
(
namespaces
,
display_path
:,
type
:)
group_label
=
type
.
pluralize
elements
=
namespaces
.
sort_by
(
&
:human_name
).
map!
do
|
n
|
[
display_path
?
n
.
full_path
:
n
.
human_name
,
n
.
id
,
data:
{
options_parent:
type
,
options_parent:
group_label
,
visibility_level:
n
.
visibility_level_value
,
visibility:
n
.
visibility
,
name:
n
.
name
,
...
...
@@ -51,6 +50,6 @@ module NamespacesHelper
}]
end
[
type
.
camelize
,
elements
]
[
group_label
.
camelize
,
elements
]
end
end
app/helpers/visibility_level_helper.rb
浏览文件 @
6f03ddcd
...
...
@@ -65,7 +65,7 @@ module VisibilityLevelHelper
def
restricted_visibility_level_description
(
level
)
level_name
=
Gitlab
::
VisibilityLevel
.
level_name
(
level
)
"
#{
level_name
.
capitalize
}
visibilit
i
y has been restricted by the administrator."
"
#{
level_name
.
capitalize
}
visibility has been restricted by the administrator."
end
def
disallowed_visibility_level_description
(
level
,
form_model
)
...
...
@@ -82,11 +82,11 @@ module VisibilityLevelHelper
reasons
=
[]
unless
project
.
visibility_level_allowed_as_fork?
(
level
)
reasons
<<
"the fork source project has lower visibility"
reasons
<<
project
.
visibility_error_for
(
:fork
,
level:
level_name
)
end
unless
project
.
visibility_level_allowed_by_group?
(
level
)
reasons
<<
"the visibility of
#{
project
.
group
.
name
}
is
#{
project
.
group
.
visibility
}
"
reasons
<<
project
.
visibility_error_for
(
:group
,
level:
level_name
,
group_level:
project
.
group
.
visibility
)
end
reasons
=
reasons
.
any?
?
' because '
+
reasons
.
to_sentence
:
''
...
...
@@ -98,15 +98,15 @@ module VisibilityLevelHelper
reasons
=
[]
unless
group
.
visibility_level_allowed_by_projects?
(
level
)
reasons
<<
"it contains projects with higher visibility"
reasons
<<
group
.
visibility_error_for
(
:projects
,
level:
level_name
)
end
unless
group
.
visibility_level_allowed_by_sub_groups?
(
level
)
reasons
<<
"it contains sub-groups with higher visibility"
reasons
<<
group
.
visibility_error_for
(
:sub_groups
,
level:
level_name
)
end
unless
group
.
visibility_level_allowed_by_parent?
(
level
)
reasons
<<
"the visibility of its parent group is
#{
group
.
parent
.
visibility
}
"
reasons
<<
group
.
visibility_error_for
(
:parent
,
level:
level_name
,
parent_level:
group
.
parent
.
visibility
)
end
reasons
=
reasons
.
any?
?
' because '
+
reasons
.
to_sentence
:
''
...
...
app/models/group.rb
浏览文件 @
6f03ddcd
...
...
@@ -26,7 +26,7 @@ class Group < Namespace
validate
:avatar_type
,
if:
->
(
user
)
{
user
.
avatar
.
present?
&&
user
.
avatar_changed?
}
validate
:visibility_level_allowed_by_projects
validate
:visibility_level_allowed_by_sub_groups
,
if: :visibility_level_changed?
validate
:visibility_level_allowed_by_sub_groups
validate
:visibility_level_allowed_by_parent
validates
:avatar
,
file_size:
{
maximum:
200
.
kilobytes
.
to_i
}
...
...
@@ -104,24 +104,6 @@ class Group < Namespace
full_name
end
def
visibility_level_allowed_by_parent
return
if
visibility_level_allowed_by_parent?
errors
.
add
(
:visibility_level
,
"
#{
visibility
}
is not allowed since the parent group has a
#{
parent
.
visibility
}
visibility."
)
end
def
visibility_level_allowed_by_projects
return
if
visibility_level_allowed_by_projects?
errors
.
add
(
:visibility_level
,
"
#{
visibility
}
is not allowed since this group contains projects with higher visibility."
)
end
def
visibility_level_allowed_by_sub_groups
return
if
visibility_level_allowed_by_sub_groups?
errors
.
add
(
:visibility_level
,
"
#{
visibility
}
is not allowed since there are sub-groups with higher visibility."
)
end
def
visibility_level_allowed_by_parent?
(
level
=
self
.
visibility_level
)
return
true
unless
parent_id
&&
parent_id
.
nonzero?
...
...
@@ -304,11 +286,29 @@ class Group < Namespace
list_of_ids
.
reverse
.
map
{
|
group
|
variables
[
group
.
id
]
}.
compact
.
flatten
end
pr
otected
pr
ivate
def
update_two_factor_requirement
return
unless
require_two_factor_authentication_changed?
||
two_factor_grace_period_changed?
users
.
find_each
(
&
:update_two_factor_requirement
)
end
def
visibility_level_allowed_by_parent
return
if
visibility_level_allowed_by_parent?
errors
.
add
(
:visibility_level
,
visibility_error_for
(
:parent
,
level:
visibility
,
parent_level:
parent
.
visibility
))
end
def
visibility_level_allowed_by_projects
return
if
visibility_level_allowed_by_projects?
errors
.
add
(
:visibility_level
,
visibility_error_for
(
:projects
,
level:
visibility
))
end
def
visibility_level_allowed_by_sub_groups
return
if
visibility_level_allowed_by_sub_groups?
errors
.
add
(
:visibility_level
,
visibility_error_for
(
:sub_groups
,
level:
visibility
))
end
end
app/models/project.rb
浏览文件 @
6f03ddcd
...
...
@@ -671,14 +671,16 @@ class Project < ActiveRecord::Base
level_name
=
Gitlab
::
VisibilityLevel
.
level_name
(
self
.
visibility_level
).
downcase
group_level_name
=
Gitlab
::
VisibilityLevel
.
level_name
(
self
.
group
.
visibility_level
).
downcase
self
.
errors
.
add
(
:visibility_level
,
"
#{
level_name
}
is not allowed in a
#{
group_level_name
}
group."
)
self
.
errors
.
add
(
:visibility_level
,
visibility_error_for
(
:group
,
level:
level_name
,
group_level:
group_level_name
))
end
def
visibility_level_allowed_as_fork
return
if
visibility_level_allowed_as_fork?
level_name
=
Gitlab
::
VisibilityLevel
.
level_name
(
self
.
visibility_level
).
downcase
self
.
errors
.
add
(
:visibility_level
,
"
#{
level_name
}
is not allowed since the fork source project has lower visibility."
)
self
.
errors
.
add
(
:visibility_level
,
visibility_error_for
(
:fork
,
level:
level_name
))
end
def
check_wiki_path_conflict
...
...
lib/gitlab/visibility_level.rb
浏览文件 @
6f03ddcd
...
...
@@ -130,5 +130,23 @@ module Gitlab
def
visibility
=
(
level
)
self
[
visibility_level_field
]
=
Gitlab
::
VisibilityLevel
.
level_value
(
level
)
end
def
visibility_errors_template
@visibility_errors
||=
{
'Project'
=>
{
group:
"%{level} is not allowed in a %{group_level} group"
,
fork:
"%{level} is not allowed since the fork source project has lower visibility"
},
'Group'
=>
{
parent:
"%{level} is not allowed since the parent group has a %{parent_level} visibility"
,
projects:
"%{level} is not allowed since this group contains projects with higher visibility"
,
sub_groups:
"%{level} is not allowed since there are sub-groups with higher visibility"
}
}
end
def
visibility_error_for
(
section
,
variables
)
visibility_errors_template
.
dig
(
model_name
.
to_s
,
section
)
%
variables
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录