Class: Gitlab::Middleware::ReadOnly::Controller
- Inherits:
-
Object
- Object
- Gitlab::Middleware::ReadOnly::Controller
- Defined in:
- lib/gitlab/middleware/read_only/controller.rb
Constant Summary collapse
- DISALLOWED_METHODS =
%w[POST PATCH PUT DELETE].freeze
- APPLICATION_JSON =
'application/json'- APPLICATION_JSON_TYPES =
[ APPLICATION_JSON, 'application/vnd.git-lfs+json' ].freeze
- READ_ONLY_INSTANCE_ERROR_MESSAGE =
'You cannot perform write operations on a read-only instance'- ALLOWLISTED_GIT_READ_ONLY_ROUTES =
{ 'repositories/git_http' => %w[git_upload_pack] }.freeze
- ALLOWLISTED_GIT_LFS_BATCH_ROUTES =
{ 'repositories/lfs_api' => %w[batch] }.freeze
- ALLOWLISTED_GIT_REVISION_ROUTES =
{ 'projects/compare' => %w[create] }.freeze
- ALLOWLISTED_SESSION_ROUTES =
{ 'sessions' => %w[destroy], 'admin/sessions' => %w[create destroy] }.freeze
- GRAPHQL_URL =
'/api/graphql'
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(app, env) ⇒ Controller
constructor
A new instance of Controller.
Constructor Details
#initialize(app, env) ⇒ Controller
Returns a new instance of Controller.
34 35 36 37 |
# File 'lib/gitlab/middleware/read_only/controller.rb', line 34 def initialize(app, env) @app = app @env = env end |
Instance Method Details
#call ⇒ Object
39 40 41 42 43 |
# File 'lib/gitlab/middleware/read_only/controller.rb', line 39 def call return @app.call(@env) unless disallowed_request? && read_only? handle_read_only_error end |