Skip to content

Commit f141711

Browse files
committed
API: new feature - remove group
1 parent 073c8a2 commit f141711

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

doc/api/groups.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,19 @@ Parameters:
5757
+ `project_id` (required) - The ID of a project
5858

5959

60+
## Remove group
61+
62+
Removes group with all projects inside.
63+
64+
```
65+
DELETE /groups/:id
66+
```
67+
68+
Parameters:
69+
70+
+ `id` (required) - The ID of a user group
71+
72+
6073
## Group members
6174

6275

lib/api/groups.rb

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ class Groups < Grape::API
77
helpers do
88
def find_group(id)
99
group = Group.find(id)
10-
if current_user.admin or current_user.groups.include? group
10+
11+
if can?(current_user, :read_group, group)
1112
group
1213
else
1314
render_api_error!("403 Forbidden - #{current_user.username} lacks sufficient access to #{group.name}", 403)
1415
end
1516
end
17+
1618
def validate_access_level?(level)
1719
Gitlab::Access.options_with_owner.values.include? level.to_i
1820
end
@@ -64,6 +66,19 @@ def validate_access_level?(level)
6466
present group, with: Entities::GroupDetail
6567
end
6668

69+
70+
# Remove group
71+
#
72+
# Parameters:
73+
# id (required) - The ID of a group
74+
# Example Request:
75+
# DELETE /groups/:id
76+
delete ":id" do
77+
group = find_group(params[:id])
78+
authorize! :manage_group, group
79+
group.destroy
80+
end
81+
6782
# Transfer a project to the Group namespace
6883
#
6984
# Parameters:
@@ -132,7 +147,6 @@ def validate_access_level?(level)
132147
member.destroy
133148
end
134149
end
135-
136150
end
137151
end
138152
end

0 commit comments

Comments
 (0)