diff options
author | Jesse Hallam <jesse.hallam@gmail.com> | 2018-07-13 10:29:50 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-13 10:29:50 -0400 |
commit | 17f211c393772f30922bac595592e3fe60c2ef25 (patch) | |
tree | 4f8dfbe7949022d5da2de2db6d7b762e74fb4582 /plugin/valid.go | |
parent | 5ddb08dcb47f938c9ac3a3e6338d9b3cc61c20a7 (diff) | |
download | chat-17f211c393772f30922bac595592e3fe60c2ef25.tar.gz chat-17f211c393772f30922bac595592e3fe60c2ef25.tar.bz2 chat-17f211c393772f30922bac595592e3fe60c2ef25.zip |
MM-11292: clean up plugins GoDoc (#9109)
* clean up plugins GoDoc:
- eliminate plugin.NewBlankContext() as unnecessary
- export ValidIdRegex as a string vs. the less readable var
- add/update various documentation strings
- hide everything by default, except where used by client plugins or the mattermost-server. The exception to this rule are the `*(Args|Returns)` structs which must be public for go-plugin, but are now prefixed with `Z_` with a warning not to use.
- include a top-level example to get plugin authors started
This is not a breaking change for existing plugins compiled against
plugins-v2.
* remove commented out ServeHTTPResponseWriter
* update examples to match developer docs
* add missing plugin/doc.go license header
Diffstat (limited to 'plugin/valid.go')
-rw-r--r-- | plugin/valid.go | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/plugin/valid.go b/plugin/valid.go index 62c594a1a..5c543e673 100644 --- a/plugin/valid.go +++ b/plugin/valid.go @@ -9,16 +9,23 @@ import ( ) const ( - MinIdLength = 3 - MaxIdLength = 190 + MinIdLength = 3 + MaxIdLength = 190 + ValidIdRegex = `^[a-zA-Z0-9-_\.]+$` ) -var ValidId *regexp.Regexp +// ValidId constrains the set of valid plugin identifiers: +// ^[a-zA-Z0-9-_\.]+ +var validId *regexp.Regexp func init() { - ValidId = regexp.MustCompile(`^[a-zA-Z0-9-_\.]+$`) + validId = regexp.MustCompile(ValidIdRegex) } +// IsValidId verifies that the plugin id has a minimum length of 3, maximum length of 190, and +// contains only alphanumeric characters, dashes, underscores and periods. +// +// These constraints are necessary since the plugin id is used as part of a filesystem path. func IsValidId(id string) bool { if utf8.RuneCountInString(id) < MinIdLength { return false @@ -28,5 +35,5 @@ func IsValidId(id string) bool { return false } - return ValidId.MatchString(id) + return validId.MatchString(id) } |