Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-09-09 17:36:01 +0300
committerValery Sizov <vsv2711@gmail.com>2015-09-09 17:36:01 +0300
commit44261a5d9fd5b78f8a44fe330e2386525f4c3437 (patch)
tree95679471c902db7430bee6d74a7ae61cf6999b4f /app/models
parent81f9ee48b161496cfd7c033e10dcecc52c9b50be (diff)
integration with gitlab auth
Diffstat (limited to 'app/models')
-rw-r--r--app/models/ability.rb1
-rw-r--r--app/models/ci/user.rb32
2 files changed, 2 insertions, 31 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb
index f8e5afa9b01..a020b24a550 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -149,6 +149,7 @@ class Ability
:admin_merge_request,
:create_merge_request,
:create_wiki,
+ :manage_builds,
:push_code
]
end
diff --git a/app/models/ci/user.rb b/app/models/ci/user.rb
index 49ec7126fc1..f7e2eaae1f1 100644
--- a/app/models/ci/user.rb
+++ b/app/models/ci/user.rb
@@ -39,43 +39,13 @@ module Ci
@sync_at = Time.now
end
- def can_access_project?(project_gitlab_id)
- !!project_info(project_gitlab_id)
- end
-
- # Indicate if user has developer access or higher
- def has_developer_access?(project_gitlab_id)
- data = project_info(project_gitlab_id)
-
- return false unless data && data["permissions"]
-
- permissions = data["permissions"]
-
- if permissions["project_access"] && permissions["project_access"]["access_level"] >= DEVELOPER_ACCESS
- return true
- end
-
- if permissions["group_access"] && permissions["group_access"]["access_level"] >= DEVELOPER_ACCESS
- return true
- end
- end
-
- def can_manage_project?(project_gitlab_id)
- Rails.cache.fetch(cache_key('manage', project_gitlab_id, sync_at)) do
- !!Ci::Network.new.project_hooks(authenticate_options, project_gitlab_id)
- end
- end
-
def authorized_runners
Ci::Runner.specific.includes(:runner_projects).
where(Ci::RunnerProject.table_name => { project_id: authorized_projects } )
end
def authorized_projects
- Ci::Project.where(gitlab_id: gitlab_projects.map(&:id)).select do |project|
- # This is slow: it makes request to GitLab for each project to verify manage permission
- can_manage_project?(project.gitlab_id)
- end
+ Ci::Project.where(gitlab_id: current_user.authorized_projects.map(&:id))
end
def authenticate_options