diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-08-10 16:45:14 +0300 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2018-08-10 16:45:14 +0300 |
commit | 33311cb677592e58c05e4da3cd511bef246fc9d7 (patch) | |
tree | 515e09c97655aa76c0a12259c3f4e0227a716084 /app/serializers | |
parent | 91795dcd1c0d12d2350e0d00489d89be9fa29b32 (diff) |
CE Port of Protected Environments backend
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/environment_entity.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/app/serializers/environment_entity.rb b/app/serializers/environment_entity.rb index b18e9706db6..07a13c33b89 100644 --- a/app/serializers/environment_entity.rb +++ b/app/serializers/environment_entity.rb @@ -23,9 +23,8 @@ class EnvironmentEntity < Grape::Entity stop_project_environment_path(environment.project, environment) end - expose :terminal_path, if: ->(environment, _) { environment.has_terminals? } do |environment| - can?(request.current_user, :admin_environment, environment.project) && - terminal_project_environment_path(environment.project, environment) + expose :terminal_path, if: ->(*) { environment.has_terminals? && can_access_terminal? } do |environment| + terminal_project_environment_path(environment.project, environment) end expose :folder_path do |environment| @@ -40,7 +39,13 @@ class EnvironmentEntity < Grape::Entity private + alias_method :environment, :object + def current_user request.current_user end + + def can_access_terminal? + can?(request.current_user, :create_environment_terminal, environment) + end end |