|
|
|
@ -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, ""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return IntoScope(parts[0]), parts[1] + Separator + parts[2]
|
|
|
|
|
}
|
|
|
|
|