mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-15 07:36:41 +10:00
Add project permissions to all project API endpoints
This standardizes all the project API formats. Also needed to support Huboard.
This commit is contained in:
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.4.0 (unreleased)
|
||||
- Implement new UI for group page
|
||||
- Add project permissions to all project API endpoints (Stan Hu)
|
||||
|
||||
v 8.3.0
|
||||
- Add CAS support (tduehr)
|
||||
|
||||
@@ -118,6 +118,16 @@ Parameters:
|
||||
"path": "brightbox",
|
||||
"updated_at": "2013-09-30T13:46:02Z"
|
||||
},
|
||||
"permissions": {
|
||||
"project_access": {
|
||||
"access_level": 10,
|
||||
"notification_level": 3
|
||||
},
|
||||
"group_access": {
|
||||
"access_level": 50,
|
||||
"notification_level": 3
|
||||
}
|
||||
},
|
||||
"archived": false,
|
||||
"avatar_url": null
|
||||
}
|
||||
|
||||
+3
-3
@@ -25,7 +25,7 @@ module API
|
||||
@projects = current_user.authorized_projects
|
||||
@projects = filter_projects(@projects)
|
||||
@projects = paginate @projects
|
||||
present @projects, with: Entities::Project
|
||||
present @projects, with: Entities::ProjectWithAccess, user: current_user
|
||||
end
|
||||
|
||||
# Get an owned projects list for authenticated user
|
||||
@@ -36,7 +36,7 @@ module API
|
||||
@projects = current_user.owned_projects
|
||||
@projects = filter_projects(@projects)
|
||||
@projects = paginate @projects
|
||||
present @projects, with: Entities::Project
|
||||
present @projects, with: Entities::ProjectWithAccess, user: current_user
|
||||
end
|
||||
|
||||
# Gets starred project for the authenticated user
|
||||
@@ -59,7 +59,7 @@ module API
|
||||
@projects = Project.all
|
||||
@projects = filter_projects(@projects)
|
||||
@projects = paginate @projects
|
||||
present @projects, with: Entities::Project
|
||||
present @projects, with: Entities::ProjectWithAccess, user: current_user
|
||||
end
|
||||
|
||||
# Get a single project
|
||||
|
||||
@@ -131,6 +131,7 @@ describe API::API, api: true do
|
||||
|
||||
expect(json_response).to satisfy do |response|
|
||||
response.one? do |entry|
|
||||
entry.has_key?('permissions') &&
|
||||
entry['name'] == project.name &&
|
||||
entry['owner']['username'] == user.username
|
||||
end
|
||||
@@ -382,6 +383,18 @@ describe API::API, api: true do
|
||||
end
|
||||
|
||||
describe 'permissions' do
|
||||
context 'all projects' do
|
||||
it 'Contains permission information' do
|
||||
project.team << [user, :master]
|
||||
get api("/projects", user)
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(json_response.first['permissions']['project_access']['access_level']).
|
||||
to eq(Gitlab::Access::MASTER)
|
||||
expect(json_response.first['permissions']['group_access']).to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
context 'personal project' do
|
||||
it 'Sets project access and returns 200' do
|
||||
project.team << [user, :master]
|
||||
|
||||
Reference in New Issue
Block a user