Files
trufflehog/pkg/analyzer/analyzers/notion/permissions.go
Abdul Basit f2dc96e854
Lint / golangci-lint (push) Waiting to run
Lint / semgrep (push) Waiting to run
Release / Release (push) Waiting to run
Scan for secrets / test (push) Waiting to run
Test / test (push) Waiting to run
Test / test-community (push) Waiting to run
[Feat] implementation Notion analyzer (#3869)
### Description:
Since `Notion.co` allows to enable [capabilities](https://developers.notion.com/reference/capabilities) against integration token, It is a good candidate to build an analyzer for it.
![Screenshot 2025-02-04 at 6 46 37 PM](https://github.com/user-attachments/assets/2fb711fe-466f-4b78-9b25-56852f08cd3b)

This PR implements notion analyzer along with its integration test.


### Checklist:
* [ ] Tests passing (`make test-community`)?
* [x] Lint passing (`make lint` this requires [golangci-lint](https://golangci-lint.run/welcome/install/#local-installation))?
2025-02-11 10:35:31 -08:00

92 lines
2.5 KiB
Go

// Code generated by go generate; DO NOT EDIT.
package notion
import "errors"
type Permission int
const (
Invalid Permission = iota
ReadContent Permission = iota
UpdateContent Permission = iota
InsertContent Permission = iota
ReadComments Permission = iota
InsertComments Permission = iota
ReadUsersWithEmail Permission = iota
ReadUsersWithoutEmail Permission = iota
)
var (
PermissionStrings = map[Permission]string{
ReadContent: "read_content",
UpdateContent: "update_content",
InsertContent: "insert_content",
ReadComments: "read_comments",
InsertComments: "insert_comments",
ReadUsersWithEmail: "read_users_with_email",
ReadUsersWithoutEmail: "read_users_without_email",
}
StringToPermission = map[string]Permission{
"read_content": ReadContent,
"update_content": UpdateContent,
"insert_content": InsertContent,
"read_comments": ReadComments,
"insert_comments": InsertComments,
"read_users_with_email": ReadUsersWithEmail,
"read_users_without_email": ReadUsersWithoutEmail,
}
PermissionIDs = map[Permission]int{
ReadContent: 1,
UpdateContent: 2,
InsertContent: 3,
ReadComments: 4,
InsertComments: 5,
ReadUsersWithEmail: 6,
ReadUsersWithoutEmail: 7,
}
IdToPermission = map[int]Permission{
1: ReadContent,
2: UpdateContent,
3: InsertContent,
4: ReadComments,
5: InsertComments,
6: ReadUsersWithEmail,
7: ReadUsersWithoutEmail,
}
)
// ToString converts a Permission enum to its string representation
func (p Permission) ToString() (string, error) {
if str, ok := PermissionStrings[p]; ok {
return str, nil
}
return "", errors.New("invalid permission")
}
// ToID converts a Permission enum to its ID
func (p Permission) ToID() (int, error) {
if id, ok := PermissionIDs[p]; ok {
return id, nil
}
return 0, errors.New("invalid permission")
}
// PermissionFromString converts a string representation to its Permission enum
func PermissionFromString(s string) (Permission, error) {
if p, ok := StringToPermission[s]; ok {
return p, nil
}
return 0, errors.New("invalid permission string")
}
// PermissionFromID converts an ID to its Permission enum
func PermissionFromID(id int) (Permission, error) {
if p, ok := IdToPermission[id]; ok {
return p, nil
}
return 0, errors.New("invalid permission ID")
}