Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
dc9bf324
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,发现更多精彩内容 >>
提交
dc9bf324
编写于
2月 03, 2015
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #8723 from jubianchi/api-groups-path
Access groups using path
上级
141c6a02
4e97f266
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
47 addition
and
40 deletion
+47
-40
CHANGELOG
CHANGELOG
+1
-1
doc/api/groups.md
doc/api/groups.md
+5
-5
lib/api/group_members.rb
lib/api/group_members.rb
+0
-16
lib/api/groups.rb
lib/api/groups.rb
+0
-16
lib/api/helpers.rb
lib/api/helpers.rb
+23
-2
spec/requests/api/groups_spec.rb
spec/requests/api/groups_spec.rb
+18
-0
未找到文件。
CHANGELOG
浏览文件 @
dc9bf324
...
...
@@ -53,7 +53,7 @@ v 7.8.0
- Add a new API function that retrieves all issues assigned to a single milestone (Justin Whear and Hannes Rosenögger)
-
-
-
-
API: Access groups with their path (Julien Bianchi)
-
-
-
...
...
doc/api/groups.md
浏览文件 @
dc9bf324
...
...
@@ -32,7 +32,7 @@ GET /groups/:id
Parameters:
-
`id`
(required) - The ID of a group
-
`id`
(required) - The ID o
r path o
f a group
## New group
...
...
@@ -58,7 +58,7 @@ POST /groups/:id/projects/:project_id
Parameters:
-
`id`
(required) - The ID of a group
-
`id`
(required) - The ID o
r path o
f a group
-
`project_id`
(required) - The ID of a project
## Remove group
...
...
@@ -71,7 +71,7 @@ DELETE /groups/:id
Parameters:
-
`id`
(required) - The ID of a user group
-
`id`
(required) - The ID o
r path o
f a user group
## Search for group
...
...
@@ -148,7 +148,7 @@ POST /groups/:id/members
Parameters:
-
`id`
(required) - The ID of a group
-
`id`
(required) - The ID o
r path o
f a group
-
`user_id`
(required) - The ID of a user to add
-
`access_level`
(required) - Project access level
...
...
@@ -162,5 +162,5 @@ DELETE /groups/:id/members/:user_id
Parameters:
-
`id`
(required) - The ID of a user group
-
`id`
(required) - The ID o
r path o
f a user group
-
`user_id`
(required) - The ID of a group member
lib/api/group_members.rb
浏览文件 @
dc9bf324
...
...
@@ -3,22 +3,6 @@ module API
before
{
authenticate!
}
resource
:groups
do
helpers
do
def
find_group
(
id
)
group
=
Group
.
find
(
id
)
if
can?
(
current_user
,
:read_group
,
group
)
group
else
render_api_error!
(
"403 Forbidden -
#{
current_user
.
username
}
lacks sufficient access to
#{
group
.
name
}
"
,
403
)
end
end
def
validate_access_level?
(
level
)
Gitlab
::
Access
.
options_with_owner
.
values
.
include?
level
.
to_i
end
end
# Get a list of group members viewable by the authenticated user.
#
# Example Request:
...
...
lib/api/groups.rb
浏览文件 @
dc9bf324
...
...
@@ -4,22 +4,6 @@ module API
before
{
authenticate!
}
resource
:groups
do
helpers
do
def
find_group
(
id
)
group
=
Group
.
find
(
id
)
if
can?
(
current_user
,
:read_group
,
group
)
group
else
render_api_error!
(
"403 Forbidden -
#{
current_user
.
username
}
lacks sufficient access to
#{
group
.
name
}
"
,
403
)
end
end
def
validate_access_level?
(
level
)
Gitlab
::
Access
.
options_with_owner
.
values
.
include?
level
.
to_i
end
end
# Get a groups list
#
# Example Request:
...
...
lib/api/helpers.rb
浏览文件 @
dc9bf324
...
...
@@ -55,6 +55,21 @@ module API
end
end
def
find_group
(
id
)
begin
group
=
Group
.
find
(
id
)
rescue
ActiveRecord
::
RecordNotFound
group
=
Group
.
find_by!
(
path:
id
)
end
if
can?
(
current_user
,
:read_group
,
group
)
group
else
forbidden!
(
"
#{
current_user
.
username
}
lacks sufficient "
\
"access to
#{
group
.
name
}
"
)
end
end
def
paginate
(
relation
)
per_page
=
params
[
:per_page
].
to_i
paginated
=
relation
.
page
(
params
[
:page
]).
per
(
per_page
)
...
...
@@ -135,10 +150,16 @@ module API
errors
end
def
validate_access_level?
(
level
)
Gitlab
::
Access
.
options_with_owner
.
values
.
include?
level
.
to_i
end
# error helpers
def
forbidden!
render_api_error!
(
'403 Forbidden'
,
403
)
def
forbidden!
(
reason
=
nil
)
message
=
[
'403 Forbidden'
]
message
<<
" -
#{
reason
}
"
if
reason
render_api_error!
(
message
.
join
(
' '
),
403
)
end
def
bad_request!
(
attribute
)
...
...
spec/requests/api/groups_spec.rb
浏览文件 @
dc9bf324
...
...
@@ -73,6 +73,24 @@ describe API::API, api: true do
response
.
status
.
should
==
404
end
end
context
'when using group path in URL'
do
it
'should return any existing group'
do
get
api
(
"/groups/
#{
group1
.
path
}
"
,
admin
)
response
.
status
.
should
==
200
json_response
[
'name'
]
==
group2
.
name
end
it
'should not return a non existing group'
do
get
api
(
'/groups/unknown'
,
admin
)
response
.
status
.
should
==
404
end
it
'should not return a group not attached to user1'
do
get
api
(
"/groups/
#{
group2
.
path
}
"
,
user1
)
response
.
status
.
should
==
403
end
end
end
describe
"POST /groups"
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录