attr/parseScope() #439

Merged
dan merged 1 commits from parseScope into master 2022-04-05 00:03:19 +00:00
1 changed files with 18 additions and 0 deletions

View File

@ -1,5 +1,10 @@
package attr
import (
"git.openprivacy.ca/openprivacy/log"
"strings"
)
/*
Scope model for peer attributes and requests
@ -78,3 +83,16 @@ func (scope Scope) IsPublic() bool {
func (scope Scope) IsConversation() bool {
return scope == ConversationScope
}
// ParseScope takes in an untyped string and returns an explicit Scope along with the rest of the untyped path
func ParseScope(path string) (Scope, string) {
parts := strings.SplitN(path, Separator, 3)
log.Debugf("parsed scope: %v %v", parts, path)
if len(parts) != 3 {
return UnknownScope, ""
}
Review

like ParseZone this should restruct to known defined zones public local etc. - it should not allow the creation of an invalid zone

like ParseZone this should restruct to known defined zones `public` `local` etc. - it should not allow the creation of an invalid zone
return IntoScope(parts[0]), parts[1] + Separator + parts[2]
}