mirror of
https://github.com/owncast/owncast.git
synced 2024-11-29 03:29:03 +03:00
API for setting a list of blocked usernames. For #782
This commit is contained in:
parent
83ad6db394
commit
61e07bf945
3 changed files with 49 additions and 17 deletions
|
@ -539,7 +539,19 @@ func SetCustomStyles(w http.ResponseWriter, r *http.Request) {
|
||||||
data.SetCustomStyles(customStyles.Value.(string))
|
data.SetCustomStyles(customStyles.Value.(string))
|
||||||
|
|
||||||
controllers.WriteSimpleResponse(w, true, "custom styles updated")
|
controllers.WriteSimpleResponse(w, true, "custom styles updated")
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetUsernameBlocklist will set the list of usernames we do not allow to use.
|
||||||
|
func SetUsernameBlocklist(w http.ResponseWriter, r *http.Request) {
|
||||||
|
usernames, success := getValueFromRequest(w, r)
|
||||||
|
if !success {
|
||||||
|
controllers.WriteSimpleResponse(w, false, "unable to update custom styles")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
data.SetUsernameBlocklist(usernames.Value.(string))
|
||||||
|
|
||||||
|
controllers.WriteSimpleResponse(w, true, "blocklist updated")
|
||||||
}
|
}
|
||||||
|
|
||||||
func requirePOST(w http.ResponseWriter, r *http.Request) bool {
|
func requirePOST(w http.ResponseWriter, r *http.Request) bool {
|
||||||
|
|
|
@ -56,10 +56,11 @@ func GetServerConfig(w http.ResponseWriter, r *http.Request) {
|
||||||
Enabled: data.GetDirectoryEnabled(),
|
Enabled: data.GetDirectoryEnabled(),
|
||||||
InstanceURL: data.GetServerURL(),
|
InstanceURL: data.GetServerURL(),
|
||||||
},
|
},
|
||||||
S3: data.GetS3Config(),
|
S3: data.GetS3Config(),
|
||||||
ExternalActions: data.GetExternalActions(),
|
ExternalActions: data.GetExternalActions(),
|
||||||
SupportedCodecs: transcoder.GetCodecs(ffmpeg),
|
SupportedCodecs: transcoder.GetCodecs(ffmpeg),
|
||||||
VideoCodec: data.GetVideoCodec(),
|
VideoCodec: data.GetVideoCodec(),
|
||||||
|
UsernameBlocklist: data.GetUsernameBlocklist(),
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
@ -70,19 +71,20 @@ func GetServerConfig(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
type serverConfigAdminResponse struct {
|
type serverConfigAdminResponse struct {
|
||||||
InstanceDetails webConfigResponse `json:"instanceDetails"`
|
InstanceDetails webConfigResponse `json:"instanceDetails"`
|
||||||
FFmpegPath string `json:"ffmpegPath"`
|
FFmpegPath string `json:"ffmpegPath"`
|
||||||
StreamKey string `json:"streamKey"`
|
StreamKey string `json:"streamKey"`
|
||||||
WebServerPort int `json:"webServerPort"`
|
WebServerPort int `json:"webServerPort"`
|
||||||
RTMPServerPort int `json:"rtmpServerPort"`
|
RTMPServerPort int `json:"rtmpServerPort"`
|
||||||
S3 models.S3 `json:"s3"`
|
S3 models.S3 `json:"s3"`
|
||||||
VideoSettings videoSettings `json:"videoSettings"`
|
VideoSettings videoSettings `json:"videoSettings"`
|
||||||
LatencyLevel int `json:"latencyLevel"`
|
LatencyLevel int `json:"latencyLevel"`
|
||||||
YP yp `json:"yp"`
|
YP yp `json:"yp"`
|
||||||
ChatDisabled bool `json:"chatDisabled"`
|
ChatDisabled bool `json:"chatDisabled"`
|
||||||
ExternalActions []models.ExternalAction `json:"externalActions"`
|
ExternalActions []models.ExternalAction `json:"externalActions"`
|
||||||
SupportedCodecs []string `json:"supportedCodecs"`
|
SupportedCodecs []string `json:"supportedCodecs"`
|
||||||
VideoCodec string `json:"videoCodec"`
|
VideoCodec string `json:"videoCodec"`
|
||||||
|
UsernameBlocklist string `json:"usernameBlocklist"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type videoSettings struct {
|
type videoSettings struct {
|
||||||
|
|
|
@ -40,6 +40,7 @@ const chatDisabledKey = "chat_disabled"
|
||||||
const externalActionsKey = "external_actions"
|
const externalActionsKey = "external_actions"
|
||||||
const customStylesKey = "custom_styles"
|
const customStylesKey = "custom_styles"
|
||||||
const videoCodecKey = "video_codec"
|
const videoCodecKey = "video_codec"
|
||||||
|
const blockedUsernamesKey = "blocked_usernames"
|
||||||
|
|
||||||
// GetExtraPageBodyContent will return the user-supplied body content.
|
// GetExtraPageBodyContent will return the user-supplied body content.
|
||||||
func GetExtraPageBodyContent() string {
|
func GetExtraPageBodyContent() string {
|
||||||
|
@ -552,3 +553,20 @@ func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) int {
|
||||||
|
|
||||||
return indexedQualities[0].index
|
return indexedQualities[0].index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUsernameBlocklist will return the blocked usernames as a comma seperated string.
|
||||||
|
func GetUsernameBlocklist() string {
|
||||||
|
usernameString, err := _datastore.GetString(blockedUsernamesKey)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Traceln(blockedUsernamesKey, err)
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return usernameString
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetUsernameBlocklist set the username blocklist as a comma seperated string.
|
||||||
|
func SetUsernameBlocklist(usernames string) error {
|
||||||
|
return _datastore.SetString(serverMetadataTagsKey, usernames)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue