mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
57 lines
2.4 KiB
Go
57 lines
2.4 KiB
Go
|
package builder
|
||
|
|
||
|
import (
|
||
|
"github.com/onsonr/sonr/x/did/types"
|
||
|
"gopkg.in/macaroon-bakery.v2/bakery/checkers"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
GenericPermissionScopeStrings = [...]string{
|
||
|
"profile.name",
|
||
|
"identifiers.email",
|
||
|
"identifiers.phone",
|
||
|
"transactions.read",
|
||
|
"transactions.write",
|
||
|
"wallets.read",
|
||
|
"wallets.create",
|
||
|
"wallets.subscribe",
|
||
|
"wallets.update",
|
||
|
"transactions.verify",
|
||
|
"transactions.broadcast",
|
||
|
"admin.user",
|
||
|
"admin.validator",
|
||
|
}
|
||
|
|
||
|
StringToModulePermissionScope = map[string]types.PermissionScope{
|
||
|
"PERMISSION_SCOPE_UNSPECIFIED": types.PermissionScope_PERMISSION_SCOPE_UNSPECIFIED,
|
||
|
"PERMISSION_SCOPE_BASIC_INFO": types.PermissionScope_PERMISSION_SCOPE_BASIC_INFO,
|
||
|
"PERMISSION_SCOPE_IDENTIFIERS_EMAIL": types.PermissionScope_PERMISSION_SCOPE_PERMISSIONS_READ,
|
||
|
"PERMISSION_SCOPE_IDENTIFIERS_PHONE": types.PermissionScope_PERMISSION_SCOPE_PERMISSIONS_WRITE,
|
||
|
"PERMISSION_SCOPE_TRANSACTIONS_READ": types.PermissionScope_PERMISSION_SCOPE_TRANSACTIONS_READ,
|
||
|
"PERMISSION_SCOPE_TRANSACTIONS_WRITE": types.PermissionScope_PERMISSION_SCOPE_TRANSACTIONS_WRITE,
|
||
|
"PERMISSION_SCOPE_WALLETS_READ": types.PermissionScope_PERMISSION_SCOPE_WALLETS_READ,
|
||
|
"PERMISSION_SCOPE_WALLETS_CREATE": types.PermissionScope_PERMISSION_SCOPE_WALLETS_CREATE,
|
||
|
"PERMISSION_SCOPE_WALLETS_SUBSCRIBE": types.PermissionScope_PERMISSION_SCOPE_WALLETS_SUBSCRIBE,
|
||
|
"PERMISSION_SCOPE_WALLETS_UPDATE": types.PermissionScope_PERMISSION_SCOPE_WALLETS_UPDATE,
|
||
|
"PERMISSION_SCOPE_TRANSACTIONS_VERIFY": types.PermissionScope_PERMISSION_SCOPE_TRANSACTIONS_VERIFY,
|
||
|
"PERMISSION_SCOPE_TRANSACTIONS_BROADCAST": types.PermissionScope_PERMISSION_SCOPE_TRANSACTIONS_BROADCAST,
|
||
|
"PERMISSION_SCOPE_ADMIN_USER": types.PermissionScope_PERMISSION_SCOPE_ADMIN_USER,
|
||
|
"PERMISSION_SCOPE_ADMIN_VALIDATOR": types.PermissionScope_PERMISSION_SCOPE_ADMIN_VALIDATOR,
|
||
|
}
|
||
|
)
|
||
|
|
||
|
func ResolvePermissionScope(scope string) (types.PermissionScope, bool) {
|
||
|
uriToPrefix := make(map[string]string)
|
||
|
for _, scope := range GenericPermissionScopeStrings {
|
||
|
uriToPrefix["https://example.com/auth/"+scope] = scope
|
||
|
}
|
||
|
PermissionNamespace := checkers.NewNamespace(uriToPrefix)
|
||
|
|
||
|
prefix, ok := PermissionNamespace.Resolve("https://example.com/auth/" + scope)
|
||
|
if !ok {
|
||
|
return 0, false
|
||
|
}
|
||
|
permScope, ok := StringToModulePermissionScope[prefix]
|
||
|
return permScope, ok
|
||
|
}
|