diff options
author | 2023-12-18 14:18:25 +0000 | |
---|---|---|
committer | 2023-12-18 14:18:25 +0000 | |
commit | 8ebb7775a35b632d49a8f294d83ac786666631f3 (patch) | |
tree | 02ac5475274125170132b0a4d9f69bd67491a32c /internal/api/model/headerfilter.go | |
parent | fix poll total vote double count (#2464) (diff) | |
download | gotosocial-8ebb7775a35b632d49a8f294d83ac786666631f3.tar.xz |
[feature] request blocking by http headers (#2409)
Diffstat (limited to 'internal/api/model/headerfilter.go')
-rw-r--r-- | internal/api/model/headerfilter.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/internal/api/model/headerfilter.go b/internal/api/model/headerfilter.go new file mode 100644 index 000000000..96ba819f5 --- /dev/null +++ b/internal/api/model/headerfilter.go @@ -0,0 +1,55 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. + +package model + +// HeaderFilter represents a regex value filter applied to one particular HTTP header (allow / block). +type HeaderFilter struct { + // The ID of the header filter. + // example: 01FBW21XJA09XYX51KV5JVBW0F + // readonly: true + ID string `json:"id"` + + // The HTTP header to match against. + // example: User-Agent + Header string `json:"header"` + + // The header value matching regular expression. + // example: .*Firefox.* + Regex string `json:"regex"` + + // The ID of the admin account that created this header filter. + // example: 01FBW2758ZB6PBR200YPDDJK4C + // readonly: true + CreatedBy string `json:"created_by"` + + // Time at which the header filter was created (ISO 8601 Datetime). + // example: 2021-07-30T09:20:25+00:00 + // readonly: true + CreatedAt string `json:"created_at"` +} + +// HeaderFilterRequest is the form submitted as a POST to create a new header filter entry (allow / block). +// +// swagger:model headerFilterCreateRequest +type HeaderFilterRequest struct { + // The HTTP header to match against (e.g. User-Agent). + Header string `form:"header" json:"header" xml:"header"` + + // The header value matching regular expression. + Regex string `form:"regex" json:"regex" xml:"regex"` +} |