diff --git a/internal/config/config.yml b/internal/config/config.yml index 0980cd2..8cfdb6a 100644 --- a/internal/config/config.yml +++ b/internal/config/config.yml @@ -39,7 +39,7 @@ http: # This email address can be configured here. certbot_email: null - # Serve the panel also on the toplevel domain, and not only on the "_panel" domain. + # Serve the panel also on the toplevel domain, and not only on the "panel" domain. # Enabled by default. panel: null @@ -47,7 +47,7 @@ http: # In the future, it will be enabled by default, but at this point it is not. api: null - # Enable serving the triplestore webinterface publically under the "_ts" domain + # Enable serving the triplestore webinterface publically under the "ts" domain ts: null # Enable serving the phpmyadmin webinterface publically under the "_phymyadmin" domain diff --git a/internal/config/http.go b/internal/config/http.go index 5b0e560..7284ed4 100644 --- a/internal/config/http.go +++ b/internal/config/http.go @@ -26,7 +26,7 @@ type HTTPConfig struct { CertbotEmail string `yaml:"certbot_email" validate:"email"` // Also serve the panel on the toplevel domain. - // Note that the panel is *always* servered under the "_panel" domain. + // Note that the panel is *always* servered under the "panel" domain. // Disabling this is not recommended. Panel validators.NullableBool `yaml:"panel" validate:"bool" default:"true"` @@ -113,8 +113,16 @@ var ( PHPMyAdminDomain SpecialDomain = "phpmyadmin" ) +var RestrictedSlugs = []string{ + "www", + "admin", + PanelDomain.Domain(), + TriplestoreDomain.Domain(), + PHPMyAdminDomain.Domain(), +} + func (sd SpecialDomain) Domain() string { - return "_" + string(sd) + return string(sd) } // Domains adds the given subdomain to the primary and alias domains. diff --git a/internal/dis/component/instances/create.go b/internal/dis/component/instances/create.go index 01f137f..0cb67e3 100644 --- a/internal/dis/component/instances/create.go +++ b/internal/dis/component/instances/create.go @@ -5,6 +5,7 @@ import ( "path/filepath" "strings" + "github.com/FAU-CDI/wisski-distillery/internal/config" "github.com/FAU-CDI/wisski-distillery/internal/config/validators" "github.com/FAU-CDI/wisski-distillery/internal/models" "github.com/FAU-CDI/wisski-distillery/internal/wisski" @@ -75,8 +76,6 @@ func (instances *Instances) Create(slug string, system models.System) (wissKI *w return wissKI, nil } -var restrictedSlugs = []string{"www", "admin"} - // IsValidSlug checks if slug represents a valid slug for an instance. func (instances *Instances) IsValidSlug(slug string) (string, error) { // check that it is a slug @@ -84,7 +83,7 @@ func (instances *Instances) IsValidSlug(slug string) (string, error) { if err != nil { return "", errInvalidSlug } - for _, rs := range restrictedSlugs { + for _, rs := range config.RestrictedSlugs { if strings.EqualFold(rs, slug) { return "", errRestrictedSlug }