diff --git a/pkg/analyzer/README.md b/pkg/analyzer/README.md index 3c9a4c9b7..a7efc5522 100644 --- a/pkg/analyzer/README.md +++ b/pkg/analyzer/README.md @@ -2,7 +2,10 @@ ## Defining the Permissions -Permissions are defined in lower snake case as `permission_name:access_level`. +Permissions can be defined in: +- lower snake case as `permission_name:access_level` +- kebab case as `permission-name:read` +- dot notation as `permission.name:read` The Permissions are initially defined as a [yaml file](analyzers/twilio/permissions.yaml). diff --git a/pkg/analyzer/generate_permissions/generate_permissions.go b/pkg/analyzer/generate_permissions/generate_permissions.go index 870cb0673..c26b61e41 100644 --- a/pkg/analyzer/generate_permissions/generate_permissions.go +++ b/pkg/analyzer/generate_permissions/generate_permissions.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "os" + "regexp" "strings" "text/template" @@ -95,7 +96,7 @@ func ToCamelCase(s string) string { parts := strings.Split(s, ":") caser := cases.Title(language.English) for i := range parts { - subParts := strings.Split(parts[i], "_") + subParts := regexp.MustCompile(`[\_\.\-]+`).Split(parts[i], -1) for j := range subParts { subParts[j] = caser.String(subParts[j]) }