Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
7ee52833
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,体验更适合开发者的 AI 搜索 >>
提交
7ee52833
编写于
3月 17, 2016
作者:
D
Douglas Barbosa Alexandre
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Restrict access for confidential issues on autocomplete
上级
43d8bdb4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
81 addition
and
6 deletion
+81
-6
app/controllers/projects_controller.rb
app/controllers/projects_controller.rb
+1
-1
app/services/projects/autocomplete_service.rb
app/services/projects/autocomplete_service.rb
+1
-5
spec/services/projects/autocomplete_service_spec.rb
spec/services/projects/autocomplete_service_spec.rb
+79
-0
未找到文件。
app/controllers/projects_controller.rb
浏览文件 @
7ee52833
...
...
@@ -134,7 +134,7 @@ class ProjectsController < ApplicationController
def
autocomplete_sources
note_type
=
params
[
'type'
]
note_id
=
params
[
'type_id'
]
autocomplete
=
::
Projects
::
AutocompleteService
.
new
(
@project
)
autocomplete
=
::
Projects
::
AutocompleteService
.
new
(
@project
,
current_user
)
participants
=
::
Projects
::
ParticipantsService
.
new
(
@project
,
current_user
).
execute
(
note_type
,
note_id
)
@suggestions
=
{
...
...
app/services/projects/autocomplete_service.rb
浏览文件 @
7ee52833
module
Projects
class
AutocompleteService
<
BaseService
def
initialize
(
project
)
@project
=
project
end
def
issues
@project
.
issues
.
opened
.
select
([
:iid
,
:title
])
@project
.
issues
.
visible_to_user
(
current_user
).
opened
.
select
([
:iid
,
:title
])
end
def
merge_requests
...
...
spec/services/projects/autocomplete_service_spec.rb
0 → 100644
浏览文件 @
7ee52833
require
'spec_helper'
describe
Projects
::
AutocompleteService
,
services:
true
do
describe
'#issues'
do
describe
'confidential issues'
do
let
(
:author
)
{
create
(
:user
)
}
let
(
:assignee
)
{
create
(
:user
)
}
let
(
:non_member
)
{
create
(
:user
)
}
let
(
:member
)
{
create
(
:user
)
}
let
(
:admin
)
{
create
(
:admin
)
}
let
(
:project
)
{
create
(
:empty_project
,
:public
)
}
let!
(
:issue
)
{
create
(
:issue
,
project:
project
,
title:
'Issue 1'
)
}
let!
(
:security_issue_1
)
{
create
(
:issue
,
:confidential
,
project:
project
,
title:
'Security issue 1'
,
author:
author
)
}
let!
(
:security_issue_2
)
{
create
(
:issue
,
:confidential
,
title:
'Security issue 2'
,
project:
project
,
assignee:
assignee
)
}
it
'should not list project confidential issues for guests'
do
autocomplete
=
described_class
.
new
(
project
,
nil
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
not_to
include
security_issue_1
.
iid
expect
(
issues
).
not_to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
1
end
it
'should not list project confidential issues for non project members'
do
autocomplete
=
described_class
.
new
(
project
,
non_member
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
not_to
include
security_issue_1
.
iid
expect
(
issues
).
not_to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
1
end
it
'should list project confidential issues for author'
do
autocomplete
=
described_class
.
new
(
project
,
author
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
to
include
security_issue_1
.
iid
expect
(
issues
).
not_to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
2
end
it
'should list project confidential issues for assignee'
do
autocomplete
=
described_class
.
new
(
project
,
assignee
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
not_to
include
security_issue_1
.
iid
expect
(
issues
).
to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
2
end
it
'should list project confidential issues for project members'
do
project
.
team
<<
[
member
,
:developer
]
autocomplete
=
described_class
.
new
(
project
,
member
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
to
include
security_issue_1
.
iid
expect
(
issues
).
to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
3
end
it
'should list all project issues for admin'
do
autocomplete
=
described_class
.
new
(
project
,
admin
)
issues
=
autocomplete
.
issues
.
map
(
&
:iid
)
expect
(
issues
).
to
include
issue
.
iid
expect
(
issues
).
to
include
security_issue_1
.
iid
expect
(
issues
).
to
include
security_issue_2
.
iid
expect
(
issues
.
count
).
to
eq
3
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录