mirror of
https://github.com/trufflesecurity/trufflehog.git
synced 2024-09-20 06:31:57 +00:00
[analyze] Add Analyzer for Sendgrid (#3174)
* implement analyzer interface for sendgrid * add unit test for sendgrid analyzer * fixed sendgrid detector. linked analyzer with sendgrid detector. handling if key not found in map * category as resource. if subcategory is present then subcategory will become resource with parent category * corrected test and remove hardcoded boolean for printing in sendgrid * incorporate code refactoring and suggestion for FullyQualifiedName for subcategory by Miccah. * generate permissions for sendgrid analyzer * [NIT] rather than updating the global scopes variable, ProcessPermission will return new list of categories with Permission and eliminate those which are not in generated one. --------- Co-authored-by: Abdul Basit <abasit@folio3.com>
This commit is contained in:
parent
d6e1627f16
commit
899f59fbb4
6 changed files with 1396 additions and 13 deletions
991
pkg/analyzer/analyzers/sendgrid/permissions.go
Normal file
991
pkg/analyzer/analyzers/sendgrid/permissions.go
Normal file
|
@ -0,0 +1,991 @@
|
|||
// Code generated by go generate; DO NOT EDIT.
|
||||
package sendgrid
|
||||
|
||||
import "errors"
|
||||
|
||||
type Permission int
|
||||
|
||||
const (
|
||||
Invalid Permission = iota
|
||||
AccessSettingsActivityRead Permission = iota
|
||||
AccessSettingsWhitelistCreate Permission = iota
|
||||
AccessSettingsWhitelistDelete Permission = iota
|
||||
AccessSettingsWhitelistRead Permission = iota
|
||||
AccessSettingsWhitelistUpdate Permission = iota
|
||||
AlertsCreate Permission = iota
|
||||
AlertsDelete Permission = iota
|
||||
AlertsRead Permission = iota
|
||||
AlertsUpdate Permission = iota
|
||||
ApiKeysCreate Permission = iota
|
||||
ApiKeysDelete Permission = iota
|
||||
ApiKeysRead Permission = iota
|
||||
ApiKeysUpdate Permission = iota
|
||||
AsmGroupsCreate Permission = iota
|
||||
AsmGroupsDelete Permission = iota
|
||||
AsmGroupsRead Permission = iota
|
||||
AsmGroupsUpdate Permission = iota
|
||||
BillingCreate Permission = iota
|
||||
BillingDelete Permission = iota
|
||||
BillingRead Permission = iota
|
||||
BillingUpdate Permission = iota
|
||||
BrowsersStatsRead Permission = iota
|
||||
CategoriesCreate Permission = iota
|
||||
CategoriesDelete Permission = iota
|
||||
CategoriesRead Permission = iota
|
||||
CategoriesStatsRead Permission = iota
|
||||
CategoriesStatsSumsRead Permission = iota
|
||||
CategoriesUpdate Permission = iota
|
||||
ClientsDesktopStatsRead Permission = iota
|
||||
ClientsPhoneStatsRead Permission = iota
|
||||
ClientsStatsRead Permission = iota
|
||||
ClientsTabletStatsRead Permission = iota
|
||||
ClientsWebmailStatsRead Permission = iota
|
||||
DevicesStatsRead Permission = iota
|
||||
EmailActivityRead Permission = iota
|
||||
GeoStatsRead Permission = iota
|
||||
IpsAssignedRead Permission = iota
|
||||
IpsPoolsCreate Permission = iota
|
||||
IpsPoolsDelete Permission = iota
|
||||
IpsPoolsIpsCreate Permission = iota
|
||||
IpsPoolsIpsDelete Permission = iota
|
||||
IpsPoolsIpsRead Permission = iota
|
||||
IpsPoolsIpsUpdate Permission = iota
|
||||
IpsPoolsRead Permission = iota
|
||||
IpsPoolsUpdate Permission = iota
|
||||
IpsRead Permission = iota
|
||||
IpsWarmupCreate Permission = iota
|
||||
IpsWarmupDelete Permission = iota
|
||||
IpsWarmupRead Permission = iota
|
||||
IpsWarmupUpdate Permission = iota
|
||||
MailSettingsAddressWhitelistRead Permission = iota
|
||||
MailSettingsAddressWhitelistUpdate Permission = iota
|
||||
MailSettingsBouncePurgeRead Permission = iota
|
||||
MailSettingsBouncePurgeUpdate Permission = iota
|
||||
MailSettingsFooterRead Permission = iota
|
||||
MailSettingsFooterUpdate Permission = iota
|
||||
MailSettingsForwardBounceRead Permission = iota
|
||||
MailSettingsForwardBounceUpdate Permission = iota
|
||||
MailSettingsForwardSpamRead Permission = iota
|
||||
MailSettingsForwardSpamUpdate Permission = iota
|
||||
MailSettingsPlainContentRead Permission = iota
|
||||
MailSettingsPlainContentUpdate Permission = iota
|
||||
MailSettingsRead Permission = iota
|
||||
MailSettingsTemplateRead Permission = iota
|
||||
MailSettingsTemplateUpdate Permission = iota
|
||||
MailBatchCreate Permission = iota
|
||||
MailBatchDelete Permission = iota
|
||||
MailBatchRead Permission = iota
|
||||
MailBatchUpdate Permission = iota
|
||||
MailSend Permission = iota
|
||||
MailboxProvidersStatsRead Permission = iota
|
||||
MarketingCampaignsCreate Permission = iota
|
||||
MarketingCampaignsDelete Permission = iota
|
||||
MarketingCampaignsRead Permission = iota
|
||||
MarketingCampaignsUpdate Permission = iota
|
||||
PartnerSettingsNewRelicRead Permission = iota
|
||||
PartnerSettingsNewRelicUpdate Permission = iota
|
||||
PartnerSettingsRead Permission = iota
|
||||
StatsGlobalRead Permission = iota
|
||||
StatsRead Permission = iota
|
||||
SubusersCreate Permission = iota
|
||||
SubusersCreditsCreate Permission = iota
|
||||
SubusersCreditsDelete Permission = iota
|
||||
SubusersCreditsRead Permission = iota
|
||||
SubusersCreditsRemainingCreate Permission = iota
|
||||
SubusersCreditsRemainingDelete Permission = iota
|
||||
SubusersCreditsRemainingRead Permission = iota
|
||||
SubusersCreditsRemainingUpdate Permission = iota
|
||||
SubusersCreditsUpdate Permission = iota
|
||||
SubusersDelete Permission = iota
|
||||
SubusersMonitorCreate Permission = iota
|
||||
SubusersMonitorDelete Permission = iota
|
||||
SubusersMonitorRead Permission = iota
|
||||
SubusersMonitorUpdate Permission = iota
|
||||
SubusersRead Permission = iota
|
||||
SubusersReputationsRead Permission = iota
|
||||
SubusersStatsMonthlyRead Permission = iota
|
||||
SubusersStatsRead Permission = iota
|
||||
SubusersStatsSumsRead Permission = iota
|
||||
SubusersSummaryRead Permission = iota
|
||||
SubusersUpdate Permission = iota
|
||||
SuppressionBlocksCreate Permission = iota
|
||||
SuppressionBlocksDelete Permission = iota
|
||||
SuppressionBlocksRead Permission = iota
|
||||
SuppressionBlocksUpdate Permission = iota
|
||||
SuppressionBouncesCreate Permission = iota
|
||||
SuppressionBouncesDelete Permission = iota
|
||||
SuppressionBouncesRead Permission = iota
|
||||
SuppressionBouncesUpdate Permission = iota
|
||||
SuppressionCreate Permission = iota
|
||||
SuppressionDelete Permission = iota
|
||||
SuppressionInvalidEmailsCreate Permission = iota
|
||||
SuppressionInvalidEmailsDelete Permission = iota
|
||||
SuppressionInvalidEmailsRead Permission = iota
|
||||
SuppressionInvalidEmailsUpdate Permission = iota
|
||||
SuppressionRead Permission = iota
|
||||
SuppressionSpamReportsCreate Permission = iota
|
||||
SuppressionSpamReportsDelete Permission = iota
|
||||
SuppressionSpamReportsRead Permission = iota
|
||||
SuppressionSpamReportsUpdate Permission = iota
|
||||
SuppressionUnsubscribesCreate Permission = iota
|
||||
SuppressionUnsubscribesDelete Permission = iota
|
||||
SuppressionUnsubscribesRead Permission = iota
|
||||
SuppressionUnsubscribesUpdate Permission = iota
|
||||
SuppressionUpdate Permission = iota
|
||||
TeammatesCreate Permission = iota
|
||||
TeammatesRead Permission = iota
|
||||
TeammatesUpdate Permission = iota
|
||||
TeammatesDelete Permission = iota
|
||||
TemplatesCreate Permission = iota
|
||||
TemplatesDelete Permission = iota
|
||||
TemplatesRead Permission = iota
|
||||
TemplatesUpdate Permission = iota
|
||||
TemplatesVersionsActivateCreate Permission = iota
|
||||
TemplatesVersionsActivateDelete Permission = iota
|
||||
TemplatesVersionsActivateRead Permission = iota
|
||||
TemplatesVersionsActivateUpdate Permission = iota
|
||||
TemplatesVersionsCreate Permission = iota
|
||||
TemplatesVersionsDelete Permission = iota
|
||||
TemplatesVersionsRead Permission = iota
|
||||
TemplatesVersionsUpdate Permission = iota
|
||||
TrackingSettingsClickRead Permission = iota
|
||||
TrackingSettingsClickUpdate Permission = iota
|
||||
TrackingSettingsGoogleAnalyticsRead Permission = iota
|
||||
TrackingSettingsGoogleAnalyticsUpdate Permission = iota
|
||||
TrackingSettingsOpenRead Permission = iota
|
||||
TrackingSettingsOpenUpdate Permission = iota
|
||||
TrackingSettingsRead Permission = iota
|
||||
TrackingSettingsSubscriptionRead Permission = iota
|
||||
TrackingSettingsSubscriptionUpdate Permission = iota
|
||||
UserAccountRead Permission = iota
|
||||
UserCreditsRead Permission = iota
|
||||
UserEmailCreate Permission = iota
|
||||
UserEmailDelete Permission = iota
|
||||
UserEmailRead Permission = iota
|
||||
UserEmailUpdate Permission = iota
|
||||
UserMultifactorAuthenticationCreate Permission = iota
|
||||
UserMultifactorAuthenticationDelete Permission = iota
|
||||
UserMultifactorAuthenticationRead Permission = iota
|
||||
UserMultifactorAuthenticationUpdate Permission = iota
|
||||
UserPasswordRead Permission = iota
|
||||
UserPasswordUpdate Permission = iota
|
||||
UserProfileRead Permission = iota
|
||||
UserProfileUpdate Permission = iota
|
||||
UserScheduledSendsCreate Permission = iota
|
||||
UserScheduledSendsDelete Permission = iota
|
||||
UserScheduledSendsRead Permission = iota
|
||||
UserScheduledSendsUpdate Permission = iota
|
||||
UserSettingsEnforcedTlsRead Permission = iota
|
||||
UserSettingsEnforcedTlsUpdate Permission = iota
|
||||
UserTimezoneRead Permission = iota
|
||||
UserUsernameRead Permission = iota
|
||||
UserUsernameUpdate Permission = iota
|
||||
UserWebhooksEventSettingsRead Permission = iota
|
||||
UserWebhooksEventSettingsUpdate Permission = iota
|
||||
UserWebhooksEventTestCreate Permission = iota
|
||||
UserWebhooksEventTestRead Permission = iota
|
||||
UserWebhooksEventTestUpdate Permission = iota
|
||||
UserWebhooksParseSettingsCreate Permission = iota
|
||||
UserWebhooksParseSettingsDelete Permission = iota
|
||||
UserWebhooksParseSettingsRead Permission = iota
|
||||
UserWebhooksParseSettingsUpdate Permission = iota
|
||||
UserWebhooksParseStatsRead Permission = iota
|
||||
WhitelabelCreate Permission = iota
|
||||
WhitelabelDelete Permission = iota
|
||||
WhitelabelRead Permission = iota
|
||||
WhitelabelUpdate Permission = iota
|
||||
)
|
||||
|
||||
var (
|
||||
PermissionStrings = map[Permission]string{
|
||||
AccessSettingsActivityRead: "access_settings.activity.read",
|
||||
AccessSettingsWhitelistCreate: "access_settings.whitelist.create",
|
||||
AccessSettingsWhitelistDelete: "access_settings.whitelist.delete",
|
||||
AccessSettingsWhitelistRead: "access_settings.whitelist.read",
|
||||
AccessSettingsWhitelistUpdate: "access_settings.whitelist.update",
|
||||
AlertsCreate: "alerts.create",
|
||||
AlertsDelete: "alerts.delete",
|
||||
AlertsRead: "alerts.read",
|
||||
AlertsUpdate: "alerts.update",
|
||||
ApiKeysCreate: "api_keys.create",
|
||||
ApiKeysDelete: "api_keys.delete",
|
||||
ApiKeysRead: "api_keys.read",
|
||||
ApiKeysUpdate: "api_keys.update",
|
||||
AsmGroupsCreate: "asm.groups.create",
|
||||
AsmGroupsDelete: "asm.groups.delete",
|
||||
AsmGroupsRead: "asm.groups.read",
|
||||
AsmGroupsUpdate: "asm.groups.update",
|
||||
BillingCreate: "billing.create",
|
||||
BillingDelete: "billing.delete",
|
||||
BillingRead: "billing.read",
|
||||
BillingUpdate: "billing.update",
|
||||
BrowsersStatsRead: "browsers.stats.read",
|
||||
CategoriesCreate: "categories.create",
|
||||
CategoriesDelete: "categories.delete",
|
||||
CategoriesRead: "categories.read",
|
||||
CategoriesStatsRead: "categories.stats.read",
|
||||
CategoriesStatsSumsRead: "categories.stats.sums.read",
|
||||
CategoriesUpdate: "categories.update",
|
||||
ClientsDesktopStatsRead: "clients.desktop.stats.read",
|
||||
ClientsPhoneStatsRead: "clients.phone.stats.read",
|
||||
ClientsStatsRead: "clients.stats.read",
|
||||
ClientsTabletStatsRead: "clients.tablet.stats.read",
|
||||
ClientsWebmailStatsRead: "clients.webmail.stats.read",
|
||||
DevicesStatsRead: "devices.stats.read",
|
||||
EmailActivityRead: "email_activity.read",
|
||||
GeoStatsRead: "geo.stats.read",
|
||||
IpsAssignedRead: "ips.assigned.read",
|
||||
IpsPoolsCreate: "ips.pools.create",
|
||||
IpsPoolsDelete: "ips.pools.delete",
|
||||
IpsPoolsIpsCreate: "ips.pools.ips.create",
|
||||
IpsPoolsIpsDelete: "ips.pools.ips.delete",
|
||||
IpsPoolsIpsRead: "ips.pools.ips.read",
|
||||
IpsPoolsIpsUpdate: "ips.pools.ips.update",
|
||||
IpsPoolsRead: "ips.pools.read",
|
||||
IpsPoolsUpdate: "ips.pools.update",
|
||||
IpsRead: "ips.read",
|
||||
IpsWarmupCreate: "ips.warmup.create",
|
||||
IpsWarmupDelete: "ips.warmup.delete",
|
||||
IpsWarmupRead: "ips.warmup.read",
|
||||
IpsWarmupUpdate: "ips.warmup.update",
|
||||
MailSettingsAddressWhitelistRead: "mail_settings.address_whitelist.read",
|
||||
MailSettingsAddressWhitelistUpdate: "mail_settings.address_whitelist.update",
|
||||
MailSettingsBouncePurgeRead: "mail_settings.bounce_purge.read",
|
||||
MailSettingsBouncePurgeUpdate: "mail_settings.bounce_purge.update",
|
||||
MailSettingsFooterRead: "mail_settings.footer.read",
|
||||
MailSettingsFooterUpdate: "mail_settings.footer.update",
|
||||
MailSettingsForwardBounceRead: "mail_settings.forward_bounce.read",
|
||||
MailSettingsForwardBounceUpdate: "mail_settings.forward_bounce.update",
|
||||
MailSettingsForwardSpamRead: "mail_settings.forward_spam.read",
|
||||
MailSettingsForwardSpamUpdate: "mail_settings.forward_spam.update",
|
||||
MailSettingsPlainContentRead: "mail_settings.plain_content.read",
|
||||
MailSettingsPlainContentUpdate: "mail_settings.plain_content.update",
|
||||
MailSettingsRead: "mail_settings.read",
|
||||
MailSettingsTemplateRead: "mail_settings.template.read",
|
||||
MailSettingsTemplateUpdate: "mail_settings.template.update",
|
||||
MailBatchCreate: "mail.batch.create",
|
||||
MailBatchDelete: "mail.batch.delete",
|
||||
MailBatchRead: "mail.batch.read",
|
||||
MailBatchUpdate: "mail.batch.update",
|
||||
MailSend: "mail.send",
|
||||
MailboxProvidersStatsRead: "mailbox_providers.stats.read",
|
||||
MarketingCampaignsCreate: "marketing_campaigns.create",
|
||||
MarketingCampaignsDelete: "marketing_campaigns.delete",
|
||||
MarketingCampaignsRead: "marketing_campaigns.read",
|
||||
MarketingCampaignsUpdate: "marketing_campaigns.update",
|
||||
PartnerSettingsNewRelicRead: "partner_settings.new_relic.read",
|
||||
PartnerSettingsNewRelicUpdate: "partner_settings.new_relic.update",
|
||||
PartnerSettingsRead: "partner_settings.read",
|
||||
StatsGlobalRead: "stats.global.read",
|
||||
StatsRead: "stats.read",
|
||||
SubusersCreate: "subusers.create",
|
||||
SubusersCreditsCreate: "subusers.credits.create",
|
||||
SubusersCreditsDelete: "subusers.credits.delete",
|
||||
SubusersCreditsRead: "subusers.credits.read",
|
||||
SubusersCreditsRemainingCreate: "subusers.credits.remaining.create",
|
||||
SubusersCreditsRemainingDelete: "subusers.credits.remaining.delete",
|
||||
SubusersCreditsRemainingRead: "subusers.credits.remaining.read",
|
||||
SubusersCreditsRemainingUpdate: "subusers.credits.remaining.update",
|
||||
SubusersCreditsUpdate: "subusers.credits.update",
|
||||
SubusersDelete: "subusers.delete",
|
||||
SubusersMonitorCreate: "subusers.monitor.create",
|
||||
SubusersMonitorDelete: "subusers.monitor.delete",
|
||||
SubusersMonitorRead: "subusers.monitor.read",
|
||||
SubusersMonitorUpdate: "subusers.monitor.update",
|
||||
SubusersRead: "subusers.read",
|
||||
SubusersReputationsRead: "subusers.reputations.read",
|
||||
SubusersStatsMonthlyRead: "subusers.stats.monthly.read",
|
||||
SubusersStatsRead: "subusers.stats.read",
|
||||
SubusersStatsSumsRead: "subusers.stats.sums.read",
|
||||
SubusersSummaryRead: "subusers.summary.read",
|
||||
SubusersUpdate: "subusers.update",
|
||||
SuppressionBlocksCreate: "suppression.blocks.create",
|
||||
SuppressionBlocksDelete: "suppression.blocks.delete",
|
||||
SuppressionBlocksRead: "suppression.blocks.read",
|
||||
SuppressionBlocksUpdate: "suppression.blocks.update",
|
||||
SuppressionBouncesCreate: "suppression.bounces.create",
|
||||
SuppressionBouncesDelete: "suppression.bounces.delete",
|
||||
SuppressionBouncesRead: "suppression.bounces.read",
|
||||
SuppressionBouncesUpdate: "suppression.bounces.update",
|
||||
SuppressionCreate: "suppression.create",
|
||||
SuppressionDelete: "suppression.delete",
|
||||
SuppressionInvalidEmailsCreate: "suppression.invalid_emails.create",
|
||||
SuppressionInvalidEmailsDelete: "suppression.invalid_emails.delete",
|
||||
SuppressionInvalidEmailsRead: "suppression.invalid_emails.read",
|
||||
SuppressionInvalidEmailsUpdate: "suppression.invalid_emails.update",
|
||||
SuppressionRead: "suppression.read",
|
||||
SuppressionSpamReportsCreate: "suppression.spam_reports.create",
|
||||
SuppressionSpamReportsDelete: "suppression.spam_reports.delete",
|
||||
SuppressionSpamReportsRead: "suppression.spam_reports.read",
|
||||
SuppressionSpamReportsUpdate: "suppression.spam_reports.update",
|
||||
SuppressionUnsubscribesCreate: "suppression.unsubscribes.create",
|
||||
SuppressionUnsubscribesDelete: "suppression.unsubscribes.delete",
|
||||
SuppressionUnsubscribesRead: "suppression.unsubscribes.read",
|
||||
SuppressionUnsubscribesUpdate: "suppression.unsubscribes.update",
|
||||
SuppressionUpdate: "suppression.update",
|
||||
TeammatesCreate: "teammates.create",
|
||||
TeammatesRead: "teammates.read",
|
||||
TeammatesUpdate: "teammates.update",
|
||||
TeammatesDelete: "teammates.delete",
|
||||
TemplatesCreate: "templates.create",
|
||||
TemplatesDelete: "templates.delete",
|
||||
TemplatesRead: "templates.read",
|
||||
TemplatesUpdate: "templates.update",
|
||||
TemplatesVersionsActivateCreate: "templates.versions.activate.create",
|
||||
TemplatesVersionsActivateDelete: "templates.versions.activate.delete",
|
||||
TemplatesVersionsActivateRead: "templates.versions.activate.read",
|
||||
TemplatesVersionsActivateUpdate: "templates.versions.activate.update",
|
||||
TemplatesVersionsCreate: "templates.versions.create",
|
||||
TemplatesVersionsDelete: "templates.versions.delete",
|
||||
TemplatesVersionsRead: "templates.versions.read",
|
||||
TemplatesVersionsUpdate: "templates.versions.update",
|
||||
TrackingSettingsClickRead: "tracking_settings.click.read",
|
||||
TrackingSettingsClickUpdate: "tracking_settings.click.update",
|
||||
TrackingSettingsGoogleAnalyticsRead: "tracking_settings.google_analytics.read",
|
||||
TrackingSettingsGoogleAnalyticsUpdate: "tracking_settings.google_analytics.update",
|
||||
TrackingSettingsOpenRead: "tracking_settings.open.read",
|
||||
TrackingSettingsOpenUpdate: "tracking_settings.open.update",
|
||||
TrackingSettingsRead: "tracking_settings.read",
|
||||
TrackingSettingsSubscriptionRead: "tracking_settings.subscription.read",
|
||||
TrackingSettingsSubscriptionUpdate: "tracking_settings.subscription.update",
|
||||
UserAccountRead: "user.account.read",
|
||||
UserCreditsRead: "user.credits.read",
|
||||
UserEmailCreate: "user.email.create",
|
||||
UserEmailDelete: "user.email.delete",
|
||||
UserEmailRead: "user.email.read",
|
||||
UserEmailUpdate: "user.email.update",
|
||||
UserMultifactorAuthenticationCreate: "user.multifactor_authentication.create",
|
||||
UserMultifactorAuthenticationDelete: "user.multifactor_authentication.delete",
|
||||
UserMultifactorAuthenticationRead: "user.multifactor_authentication.read",
|
||||
UserMultifactorAuthenticationUpdate: "user.multifactor_authentication.update",
|
||||
UserPasswordRead: "user.password.read",
|
||||
UserPasswordUpdate: "user.password.update",
|
||||
UserProfileRead: "user.profile.read",
|
||||
UserProfileUpdate: "user.profile.update",
|
||||
UserScheduledSendsCreate: "user.scheduled_sends.create",
|
||||
UserScheduledSendsDelete: "user.scheduled_sends.delete",
|
||||
UserScheduledSendsRead: "user.scheduled_sends.read",
|
||||
UserScheduledSendsUpdate: "user.scheduled_sends.update",
|
||||
UserSettingsEnforcedTlsRead: "user.settings.enforced_tls.read",
|
||||
UserSettingsEnforcedTlsUpdate: "user.settings.enforced_tls.update",
|
||||
UserTimezoneRead: "user.timezone.read",
|
||||
UserUsernameRead: "user.username.read",
|
||||
UserUsernameUpdate: "user.username.update",
|
||||
UserWebhooksEventSettingsRead: "user.webhooks.event.settings.read",
|
||||
UserWebhooksEventSettingsUpdate: "user.webhooks.event.settings.update",
|
||||
UserWebhooksEventTestCreate: "user.webhooks.event.test.create",
|
||||
UserWebhooksEventTestRead: "user.webhooks.event.test.read",
|
||||
UserWebhooksEventTestUpdate: "user.webhooks.event.test.update",
|
||||
UserWebhooksParseSettingsCreate: "user.webhooks.parse.settings.create",
|
||||
UserWebhooksParseSettingsDelete: "user.webhooks.parse.settings.delete",
|
||||
UserWebhooksParseSettingsRead: "user.webhooks.parse.settings.read",
|
||||
UserWebhooksParseSettingsUpdate: "user.webhooks.parse.settings.update",
|
||||
UserWebhooksParseStatsRead: "user.webhooks.parse.stats.read",
|
||||
WhitelabelCreate: "whitelabel.create",
|
||||
WhitelabelDelete: "whitelabel.delete",
|
||||
WhitelabelRead: "whitelabel.read",
|
||||
WhitelabelUpdate: "whitelabel.update",
|
||||
}
|
||||
|
||||
StringToPermission = map[string]Permission{
|
||||
"access_settings.activity.read": AccessSettingsActivityRead,
|
||||
"access_settings.whitelist.create": AccessSettingsWhitelistCreate,
|
||||
"access_settings.whitelist.delete": AccessSettingsWhitelistDelete,
|
||||
"access_settings.whitelist.read": AccessSettingsWhitelistRead,
|
||||
"access_settings.whitelist.update": AccessSettingsWhitelistUpdate,
|
||||
"alerts.create": AlertsCreate,
|
||||
"alerts.delete": AlertsDelete,
|
||||
"alerts.read": AlertsRead,
|
||||
"alerts.update": AlertsUpdate,
|
||||
"api_keys.create": ApiKeysCreate,
|
||||
"api_keys.delete": ApiKeysDelete,
|
||||
"api_keys.read": ApiKeysRead,
|
||||
"api_keys.update": ApiKeysUpdate,
|
||||
"asm.groups.create": AsmGroupsCreate,
|
||||
"asm.groups.delete": AsmGroupsDelete,
|
||||
"asm.groups.read": AsmGroupsRead,
|
||||
"asm.groups.update": AsmGroupsUpdate,
|
||||
"billing.create": BillingCreate,
|
||||
"billing.delete": BillingDelete,
|
||||
"billing.read": BillingRead,
|
||||
"billing.update": BillingUpdate,
|
||||
"browsers.stats.read": BrowsersStatsRead,
|
||||
"categories.create": CategoriesCreate,
|
||||
"categories.delete": CategoriesDelete,
|
||||
"categories.read": CategoriesRead,
|
||||
"categories.stats.read": CategoriesStatsRead,
|
||||
"categories.stats.sums.read": CategoriesStatsSumsRead,
|
||||
"categories.update": CategoriesUpdate,
|
||||
"clients.desktop.stats.read": ClientsDesktopStatsRead,
|
||||
"clients.phone.stats.read": ClientsPhoneStatsRead,
|
||||
"clients.stats.read": ClientsStatsRead,
|
||||
"clients.tablet.stats.read": ClientsTabletStatsRead,
|
||||
"clients.webmail.stats.read": ClientsWebmailStatsRead,
|
||||
"devices.stats.read": DevicesStatsRead,
|
||||
"email_activity.read": EmailActivityRead,
|
||||
"geo.stats.read": GeoStatsRead,
|
||||
"ips.assigned.read": IpsAssignedRead,
|
||||
"ips.pools.create": IpsPoolsCreate,
|
||||
"ips.pools.delete": IpsPoolsDelete,
|
||||
"ips.pools.ips.create": IpsPoolsIpsCreate,
|
||||
"ips.pools.ips.delete": IpsPoolsIpsDelete,
|
||||
"ips.pools.ips.read": IpsPoolsIpsRead,
|
||||
"ips.pools.ips.update": IpsPoolsIpsUpdate,
|
||||
"ips.pools.read": IpsPoolsRead,
|
||||
"ips.pools.update": IpsPoolsUpdate,
|
||||
"ips.read": IpsRead,
|
||||
"ips.warmup.create": IpsWarmupCreate,
|
||||
"ips.warmup.delete": IpsWarmupDelete,
|
||||
"ips.warmup.read": IpsWarmupRead,
|
||||
"ips.warmup.update": IpsWarmupUpdate,
|
||||
"mail_settings.address_whitelist.read": MailSettingsAddressWhitelistRead,
|
||||
"mail_settings.address_whitelist.update": MailSettingsAddressWhitelistUpdate,
|
||||
"mail_settings.bounce_purge.read": MailSettingsBouncePurgeRead,
|
||||
"mail_settings.bounce_purge.update": MailSettingsBouncePurgeUpdate,
|
||||
"mail_settings.footer.read": MailSettingsFooterRead,
|
||||
"mail_settings.footer.update": MailSettingsFooterUpdate,
|
||||
"mail_settings.forward_bounce.read": MailSettingsForwardBounceRead,
|
||||
"mail_settings.forward_bounce.update": MailSettingsForwardBounceUpdate,
|
||||
"mail_settings.forward_spam.read": MailSettingsForwardSpamRead,
|
||||
"mail_settings.forward_spam.update": MailSettingsForwardSpamUpdate,
|
||||
"mail_settings.plain_content.read": MailSettingsPlainContentRead,
|
||||
"mail_settings.plain_content.update": MailSettingsPlainContentUpdate,
|
||||
"mail_settings.read": MailSettingsRead,
|
||||
"mail_settings.template.read": MailSettingsTemplateRead,
|
||||
"mail_settings.template.update": MailSettingsTemplateUpdate,
|
||||
"mail.batch.create": MailBatchCreate,
|
||||
"mail.batch.delete": MailBatchDelete,
|
||||
"mail.batch.read": MailBatchRead,
|
||||
"mail.batch.update": MailBatchUpdate,
|
||||
"mail.send": MailSend,
|
||||
"mailbox_providers.stats.read": MailboxProvidersStatsRead,
|
||||
"marketing_campaigns.create": MarketingCampaignsCreate,
|
||||
"marketing_campaigns.delete": MarketingCampaignsDelete,
|
||||
"marketing_campaigns.read": MarketingCampaignsRead,
|
||||
"marketing_campaigns.update": MarketingCampaignsUpdate,
|
||||
"partner_settings.new_relic.read": PartnerSettingsNewRelicRead,
|
||||
"partner_settings.new_relic.update": PartnerSettingsNewRelicUpdate,
|
||||
"partner_settings.read": PartnerSettingsRead,
|
||||
"stats.global.read": StatsGlobalRead,
|
||||
"stats.read": StatsRead,
|
||||
"subusers.create": SubusersCreate,
|
||||
"subusers.credits.create": SubusersCreditsCreate,
|
||||
"subusers.credits.delete": SubusersCreditsDelete,
|
||||
"subusers.credits.read": SubusersCreditsRead,
|
||||
"subusers.credits.remaining.create": SubusersCreditsRemainingCreate,
|
||||
"subusers.credits.remaining.delete": SubusersCreditsRemainingDelete,
|
||||
"subusers.credits.remaining.read": SubusersCreditsRemainingRead,
|
||||
"subusers.credits.remaining.update": SubusersCreditsRemainingUpdate,
|
||||
"subusers.credits.update": SubusersCreditsUpdate,
|
||||
"subusers.delete": SubusersDelete,
|
||||
"subusers.monitor.create": SubusersMonitorCreate,
|
||||
"subusers.monitor.delete": SubusersMonitorDelete,
|
||||
"subusers.monitor.read": SubusersMonitorRead,
|
||||
"subusers.monitor.update": SubusersMonitorUpdate,
|
||||
"subusers.read": SubusersRead,
|
||||
"subusers.reputations.read": SubusersReputationsRead,
|
||||
"subusers.stats.monthly.read": SubusersStatsMonthlyRead,
|
||||
"subusers.stats.read": SubusersStatsRead,
|
||||
"subusers.stats.sums.read": SubusersStatsSumsRead,
|
||||
"subusers.summary.read": SubusersSummaryRead,
|
||||
"subusers.update": SubusersUpdate,
|
||||
"suppression.blocks.create": SuppressionBlocksCreate,
|
||||
"suppression.blocks.delete": SuppressionBlocksDelete,
|
||||
"suppression.blocks.read": SuppressionBlocksRead,
|
||||
"suppression.blocks.update": SuppressionBlocksUpdate,
|
||||
"suppression.bounces.create": SuppressionBouncesCreate,
|
||||
"suppression.bounces.delete": SuppressionBouncesDelete,
|
||||
"suppression.bounces.read": SuppressionBouncesRead,
|
||||
"suppression.bounces.update": SuppressionBouncesUpdate,
|
||||
"suppression.create": SuppressionCreate,
|
||||
"suppression.delete": SuppressionDelete,
|
||||
"suppression.invalid_emails.create": SuppressionInvalidEmailsCreate,
|
||||
"suppression.invalid_emails.delete": SuppressionInvalidEmailsDelete,
|
||||
"suppression.invalid_emails.read": SuppressionInvalidEmailsRead,
|
||||
"suppression.invalid_emails.update": SuppressionInvalidEmailsUpdate,
|
||||
"suppression.read": SuppressionRead,
|
||||
"suppression.spam_reports.create": SuppressionSpamReportsCreate,
|
||||
"suppression.spam_reports.delete": SuppressionSpamReportsDelete,
|
||||
"suppression.spam_reports.read": SuppressionSpamReportsRead,
|
||||
"suppression.spam_reports.update": SuppressionSpamReportsUpdate,
|
||||
"suppression.unsubscribes.create": SuppressionUnsubscribesCreate,
|
||||
"suppression.unsubscribes.delete": SuppressionUnsubscribesDelete,
|
||||
"suppression.unsubscribes.read": SuppressionUnsubscribesRead,
|
||||
"suppression.unsubscribes.update": SuppressionUnsubscribesUpdate,
|
||||
"suppression.update": SuppressionUpdate,
|
||||
"teammates.create": TeammatesCreate,
|
||||
"teammates.read": TeammatesRead,
|
||||
"teammates.update": TeammatesUpdate,
|
||||
"teammates.delete": TeammatesDelete,
|
||||
"templates.create": TemplatesCreate,
|
||||
"templates.delete": TemplatesDelete,
|
||||
"templates.read": TemplatesRead,
|
||||
"templates.update": TemplatesUpdate,
|
||||
"templates.versions.activate.create": TemplatesVersionsActivateCreate,
|
||||
"templates.versions.activate.delete": TemplatesVersionsActivateDelete,
|
||||
"templates.versions.activate.read": TemplatesVersionsActivateRead,
|
||||
"templates.versions.activate.update": TemplatesVersionsActivateUpdate,
|
||||
"templates.versions.create": TemplatesVersionsCreate,
|
||||
"templates.versions.delete": TemplatesVersionsDelete,
|
||||
"templates.versions.read": TemplatesVersionsRead,
|
||||
"templates.versions.update": TemplatesVersionsUpdate,
|
||||
"tracking_settings.click.read": TrackingSettingsClickRead,
|
||||
"tracking_settings.click.update": TrackingSettingsClickUpdate,
|
||||
"tracking_settings.google_analytics.read": TrackingSettingsGoogleAnalyticsRead,
|
||||
"tracking_settings.google_analytics.update": TrackingSettingsGoogleAnalyticsUpdate,
|
||||
"tracking_settings.open.read": TrackingSettingsOpenRead,
|
||||
"tracking_settings.open.update": TrackingSettingsOpenUpdate,
|
||||
"tracking_settings.read": TrackingSettingsRead,
|
||||
"tracking_settings.subscription.read": TrackingSettingsSubscriptionRead,
|
||||
"tracking_settings.subscription.update": TrackingSettingsSubscriptionUpdate,
|
||||
"user.account.read": UserAccountRead,
|
||||
"user.credits.read": UserCreditsRead,
|
||||
"user.email.create": UserEmailCreate,
|
||||
"user.email.delete": UserEmailDelete,
|
||||
"user.email.read": UserEmailRead,
|
||||
"user.email.update": UserEmailUpdate,
|
||||
"user.multifactor_authentication.create": UserMultifactorAuthenticationCreate,
|
||||
"user.multifactor_authentication.delete": UserMultifactorAuthenticationDelete,
|
||||
"user.multifactor_authentication.read": UserMultifactorAuthenticationRead,
|
||||
"user.multifactor_authentication.update": UserMultifactorAuthenticationUpdate,
|
||||
"user.password.read": UserPasswordRead,
|
||||
"user.password.update": UserPasswordUpdate,
|
||||
"user.profile.read": UserProfileRead,
|
||||
"user.profile.update": UserProfileUpdate,
|
||||
"user.scheduled_sends.create": UserScheduledSendsCreate,
|
||||
"user.scheduled_sends.delete": UserScheduledSendsDelete,
|
||||
"user.scheduled_sends.read": UserScheduledSendsRead,
|
||||
"user.scheduled_sends.update": UserScheduledSendsUpdate,
|
||||
"user.settings.enforced_tls.read": UserSettingsEnforcedTlsRead,
|
||||
"user.settings.enforced_tls.update": UserSettingsEnforcedTlsUpdate,
|
||||
"user.timezone.read": UserTimezoneRead,
|
||||
"user.username.read": UserUsernameRead,
|
||||
"user.username.update": UserUsernameUpdate,
|
||||
"user.webhooks.event.settings.read": UserWebhooksEventSettingsRead,
|
||||
"user.webhooks.event.settings.update": UserWebhooksEventSettingsUpdate,
|
||||
"user.webhooks.event.test.create": UserWebhooksEventTestCreate,
|
||||
"user.webhooks.event.test.read": UserWebhooksEventTestRead,
|
||||
"user.webhooks.event.test.update": UserWebhooksEventTestUpdate,
|
||||
"user.webhooks.parse.settings.create": UserWebhooksParseSettingsCreate,
|
||||
"user.webhooks.parse.settings.delete": UserWebhooksParseSettingsDelete,
|
||||
"user.webhooks.parse.settings.read": UserWebhooksParseSettingsRead,
|
||||
"user.webhooks.parse.settings.update": UserWebhooksParseSettingsUpdate,
|
||||
"user.webhooks.parse.stats.read": UserWebhooksParseStatsRead,
|
||||
"whitelabel.create": WhitelabelCreate,
|
||||
"whitelabel.delete": WhitelabelDelete,
|
||||
"whitelabel.read": WhitelabelRead,
|
||||
"whitelabel.update": WhitelabelUpdate,
|
||||
}
|
||||
|
||||
PermissionIDs = map[Permission]int{
|
||||
AccessSettingsActivityRead: 1,
|
||||
AccessSettingsWhitelistCreate: 2,
|
||||
AccessSettingsWhitelistDelete: 3,
|
||||
AccessSettingsWhitelistRead: 4,
|
||||
AccessSettingsWhitelistUpdate: 5,
|
||||
AlertsCreate: 6,
|
||||
AlertsDelete: 7,
|
||||
AlertsRead: 8,
|
||||
AlertsUpdate: 9,
|
||||
ApiKeysCreate: 10,
|
||||
ApiKeysDelete: 11,
|
||||
ApiKeysRead: 12,
|
||||
ApiKeysUpdate: 13,
|
||||
AsmGroupsCreate: 14,
|
||||
AsmGroupsDelete: 15,
|
||||
AsmGroupsRead: 16,
|
||||
AsmGroupsUpdate: 17,
|
||||
BillingCreate: 18,
|
||||
BillingDelete: 19,
|
||||
BillingRead: 20,
|
||||
BillingUpdate: 21,
|
||||
BrowsersStatsRead: 22,
|
||||
CategoriesCreate: 23,
|
||||
CategoriesDelete: 24,
|
||||
CategoriesRead: 25,
|
||||
CategoriesStatsRead: 26,
|
||||
CategoriesStatsSumsRead: 27,
|
||||
CategoriesUpdate: 28,
|
||||
ClientsDesktopStatsRead: 29,
|
||||
ClientsPhoneStatsRead: 30,
|
||||
ClientsStatsRead: 31,
|
||||
ClientsTabletStatsRead: 32,
|
||||
ClientsWebmailStatsRead: 33,
|
||||
DevicesStatsRead: 34,
|
||||
EmailActivityRead: 35,
|
||||
GeoStatsRead: 36,
|
||||
IpsAssignedRead: 37,
|
||||
IpsPoolsCreate: 38,
|
||||
IpsPoolsDelete: 39,
|
||||
IpsPoolsIpsCreate: 40,
|
||||
IpsPoolsIpsDelete: 41,
|
||||
IpsPoolsIpsRead: 42,
|
||||
IpsPoolsIpsUpdate: 43,
|
||||
IpsPoolsRead: 44,
|
||||
IpsPoolsUpdate: 45,
|
||||
IpsRead: 46,
|
||||
IpsWarmupCreate: 47,
|
||||
IpsWarmupDelete: 48,
|
||||
IpsWarmupRead: 49,
|
||||
IpsWarmupUpdate: 50,
|
||||
MailSettingsAddressWhitelistRead: 51,
|
||||
MailSettingsAddressWhitelistUpdate: 52,
|
||||
MailSettingsBouncePurgeRead: 53,
|
||||
MailSettingsBouncePurgeUpdate: 54,
|
||||
MailSettingsFooterRead: 55,
|
||||
MailSettingsFooterUpdate: 56,
|
||||
MailSettingsForwardBounceRead: 57,
|
||||
MailSettingsForwardBounceUpdate: 58,
|
||||
MailSettingsForwardSpamRead: 59,
|
||||
MailSettingsForwardSpamUpdate: 60,
|
||||
MailSettingsPlainContentRead: 61,
|
||||
MailSettingsPlainContentUpdate: 62,
|
||||
MailSettingsRead: 63,
|
||||
MailSettingsTemplateRead: 64,
|
||||
MailSettingsTemplateUpdate: 65,
|
||||
MailBatchCreate: 66,
|
||||
MailBatchDelete: 67,
|
||||
MailBatchRead: 68,
|
||||
MailBatchUpdate: 69,
|
||||
MailSend: 70,
|
||||
MailboxProvidersStatsRead: 71,
|
||||
MarketingCampaignsCreate: 72,
|
||||
MarketingCampaignsDelete: 73,
|
||||
MarketingCampaignsRead: 74,
|
||||
MarketingCampaignsUpdate: 75,
|
||||
PartnerSettingsNewRelicRead: 76,
|
||||
PartnerSettingsNewRelicUpdate: 77,
|
||||
PartnerSettingsRead: 78,
|
||||
StatsGlobalRead: 79,
|
||||
StatsRead: 80,
|
||||
SubusersCreate: 81,
|
||||
SubusersCreditsCreate: 82,
|
||||
SubusersCreditsDelete: 83,
|
||||
SubusersCreditsRead: 84,
|
||||
SubusersCreditsRemainingCreate: 85,
|
||||
SubusersCreditsRemainingDelete: 86,
|
||||
SubusersCreditsRemainingRead: 87,
|
||||
SubusersCreditsRemainingUpdate: 88,
|
||||
SubusersCreditsUpdate: 89,
|
||||
SubusersDelete: 90,
|
||||
SubusersMonitorCreate: 91,
|
||||
SubusersMonitorDelete: 92,
|
||||
SubusersMonitorRead: 93,
|
||||
SubusersMonitorUpdate: 94,
|
||||
SubusersRead: 95,
|
||||
SubusersReputationsRead: 96,
|
||||
SubusersStatsMonthlyRead: 97,
|
||||
SubusersStatsRead: 98,
|
||||
SubusersStatsSumsRead: 99,
|
||||
SubusersSummaryRead: 100,
|
||||
SubusersUpdate: 101,
|
||||
SuppressionBlocksCreate: 102,
|
||||
SuppressionBlocksDelete: 103,
|
||||
SuppressionBlocksRead: 104,
|
||||
SuppressionBlocksUpdate: 105,
|
||||
SuppressionBouncesCreate: 106,
|
||||
SuppressionBouncesDelete: 107,
|
||||
SuppressionBouncesRead: 108,
|
||||
SuppressionBouncesUpdate: 109,
|
||||
SuppressionCreate: 110,
|
||||
SuppressionDelete: 111,
|
||||
SuppressionInvalidEmailsCreate: 112,
|
||||
SuppressionInvalidEmailsDelete: 113,
|
||||
SuppressionInvalidEmailsRead: 114,
|
||||
SuppressionInvalidEmailsUpdate: 115,
|
||||
SuppressionRead: 116,
|
||||
SuppressionSpamReportsCreate: 117,
|
||||
SuppressionSpamReportsDelete: 118,
|
||||
SuppressionSpamReportsRead: 119,
|
||||
SuppressionSpamReportsUpdate: 120,
|
||||
SuppressionUnsubscribesCreate: 121,
|
||||
SuppressionUnsubscribesDelete: 122,
|
||||
SuppressionUnsubscribesRead: 123,
|
||||
SuppressionUnsubscribesUpdate: 124,
|
||||
SuppressionUpdate: 125,
|
||||
TeammatesCreate: 126,
|
||||
TeammatesRead: 127,
|
||||
TeammatesUpdate: 128,
|
||||
TeammatesDelete: 129,
|
||||
TemplatesCreate: 130,
|
||||
TemplatesDelete: 131,
|
||||
TemplatesRead: 132,
|
||||
TemplatesUpdate: 133,
|
||||
TemplatesVersionsActivateCreate: 134,
|
||||
TemplatesVersionsActivateDelete: 135,
|
||||
TemplatesVersionsActivateRead: 136,
|
||||
TemplatesVersionsActivateUpdate: 137,
|
||||
TemplatesVersionsCreate: 138,
|
||||
TemplatesVersionsDelete: 139,
|
||||
TemplatesVersionsRead: 140,
|
||||
TemplatesVersionsUpdate: 141,
|
||||
TrackingSettingsClickRead: 142,
|
||||
TrackingSettingsClickUpdate: 143,
|
||||
TrackingSettingsGoogleAnalyticsRead: 144,
|
||||
TrackingSettingsGoogleAnalyticsUpdate: 145,
|
||||
TrackingSettingsOpenRead: 146,
|
||||
TrackingSettingsOpenUpdate: 147,
|
||||
TrackingSettingsRead: 148,
|
||||
TrackingSettingsSubscriptionRead: 149,
|
||||
TrackingSettingsSubscriptionUpdate: 150,
|
||||
UserAccountRead: 151,
|
||||
UserCreditsRead: 152,
|
||||
UserEmailCreate: 153,
|
||||
UserEmailDelete: 154,
|
||||
UserEmailRead: 155,
|
||||
UserEmailUpdate: 156,
|
||||
UserMultifactorAuthenticationCreate: 157,
|
||||
UserMultifactorAuthenticationDelete: 158,
|
||||
UserMultifactorAuthenticationRead: 159,
|
||||
UserMultifactorAuthenticationUpdate: 160,
|
||||
UserPasswordRead: 161,
|
||||
UserPasswordUpdate: 162,
|
||||
UserProfileRead: 163,
|
||||
UserProfileUpdate: 164,
|
||||
UserScheduledSendsCreate: 165,
|
||||
UserScheduledSendsDelete: 166,
|
||||
UserScheduledSendsRead: 167,
|
||||
UserScheduledSendsUpdate: 168,
|
||||
UserSettingsEnforcedTlsRead: 169,
|
||||
UserSettingsEnforcedTlsUpdate: 170,
|
||||
UserTimezoneRead: 171,
|
||||
UserUsernameRead: 172,
|
||||
UserUsernameUpdate: 173,
|
||||
UserWebhooksEventSettingsRead: 174,
|
||||
UserWebhooksEventSettingsUpdate: 175,
|
||||
UserWebhooksEventTestCreate: 176,
|
||||
UserWebhooksEventTestRead: 177,
|
||||
UserWebhooksEventTestUpdate: 178,
|
||||
UserWebhooksParseSettingsCreate: 179,
|
||||
UserWebhooksParseSettingsDelete: 180,
|
||||
UserWebhooksParseSettingsRead: 181,
|
||||
UserWebhooksParseSettingsUpdate: 182,
|
||||
UserWebhooksParseStatsRead: 183,
|
||||
WhitelabelCreate: 184,
|
||||
WhitelabelDelete: 185,
|
||||
WhitelabelRead: 186,
|
||||
WhitelabelUpdate: 187,
|
||||
}
|
||||
|
||||
IdToPermission = map[int]Permission{
|
||||
1: AccessSettingsActivityRead,
|
||||
2: AccessSettingsWhitelistCreate,
|
||||
3: AccessSettingsWhitelistDelete,
|
||||
4: AccessSettingsWhitelistRead,
|
||||
5: AccessSettingsWhitelistUpdate,
|
||||
6: AlertsCreate,
|
||||
7: AlertsDelete,
|
||||
8: AlertsRead,
|
||||
9: AlertsUpdate,
|
||||
10: ApiKeysCreate,
|
||||
11: ApiKeysDelete,
|
||||
12: ApiKeysRead,
|
||||
13: ApiKeysUpdate,
|
||||
14: AsmGroupsCreate,
|
||||
15: AsmGroupsDelete,
|
||||
16: AsmGroupsRead,
|
||||
17: AsmGroupsUpdate,
|
||||
18: BillingCreate,
|
||||
19: BillingDelete,
|
||||
20: BillingRead,
|
||||
21: BillingUpdate,
|
||||
22: BrowsersStatsRead,
|
||||
23: CategoriesCreate,
|
||||
24: CategoriesDelete,
|
||||
25: CategoriesRead,
|
||||
26: CategoriesStatsRead,
|
||||
27: CategoriesStatsSumsRead,
|
||||
28: CategoriesUpdate,
|
||||
29: ClientsDesktopStatsRead,
|
||||
30: ClientsPhoneStatsRead,
|
||||
31: ClientsStatsRead,
|
||||
32: ClientsTabletStatsRead,
|
||||
33: ClientsWebmailStatsRead,
|
||||
34: DevicesStatsRead,
|
||||
35: EmailActivityRead,
|
||||
36: GeoStatsRead,
|
||||
37: IpsAssignedRead,
|
||||
38: IpsPoolsCreate,
|
||||
39: IpsPoolsDelete,
|
||||
40: IpsPoolsIpsCreate,
|
||||
41: IpsPoolsIpsDelete,
|
||||
42: IpsPoolsIpsRead,
|
||||
43: IpsPoolsIpsUpdate,
|
||||
44: IpsPoolsRead,
|
||||
45: IpsPoolsUpdate,
|
||||
46: IpsRead,
|
||||
47: IpsWarmupCreate,
|
||||
48: IpsWarmupDelete,
|
||||
49: IpsWarmupRead,
|
||||
50: IpsWarmupUpdate,
|
||||
51: MailSettingsAddressWhitelistRead,
|
||||
52: MailSettingsAddressWhitelistUpdate,
|
||||
53: MailSettingsBouncePurgeRead,
|
||||
54: MailSettingsBouncePurgeUpdate,
|
||||
55: MailSettingsFooterRead,
|
||||
56: MailSettingsFooterUpdate,
|
||||
57: MailSettingsForwardBounceRead,
|
||||
58: MailSettingsForwardBounceUpdate,
|
||||
59: MailSettingsForwardSpamRead,
|
||||
60: MailSettingsForwardSpamUpdate,
|
||||
61: MailSettingsPlainContentRead,
|
||||
62: MailSettingsPlainContentUpdate,
|
||||
63: MailSettingsRead,
|
||||
64: MailSettingsTemplateRead,
|
||||
65: MailSettingsTemplateUpdate,
|
||||
66: MailBatchCreate,
|
||||
67: MailBatchDelete,
|
||||
68: MailBatchRead,
|
||||
69: MailBatchUpdate,
|
||||
70: MailSend,
|
||||
71: MailboxProvidersStatsRead,
|
||||
72: MarketingCampaignsCreate,
|
||||
73: MarketingCampaignsDelete,
|
||||
74: MarketingCampaignsRead,
|
||||
75: MarketingCampaignsUpdate,
|
||||
76: PartnerSettingsNewRelicRead,
|
||||
77: PartnerSettingsNewRelicUpdate,
|
||||
78: PartnerSettingsRead,
|
||||
79: StatsGlobalRead,
|
||||
80: StatsRead,
|
||||
81: SubusersCreate,
|
||||
82: SubusersCreditsCreate,
|
||||
83: SubusersCreditsDelete,
|
||||
84: SubusersCreditsRead,
|
||||
85: SubusersCreditsRemainingCreate,
|
||||
86: SubusersCreditsRemainingDelete,
|
||||
87: SubusersCreditsRemainingRead,
|
||||
88: SubusersCreditsRemainingUpdate,
|
||||
89: SubusersCreditsUpdate,
|
||||
90: SubusersDelete,
|
||||
91: SubusersMonitorCreate,
|
||||
92: SubusersMonitorDelete,
|
||||
93: SubusersMonitorRead,
|
||||
94: SubusersMonitorUpdate,
|
||||
95: SubusersRead,
|
||||
96: SubusersReputationsRead,
|
||||
97: SubusersStatsMonthlyRead,
|
||||
98: SubusersStatsRead,
|
||||
99: SubusersStatsSumsRead,
|
||||
100: SubusersSummaryRead,
|
||||
101: SubusersUpdate,
|
||||
102: SuppressionBlocksCreate,
|
||||
103: SuppressionBlocksDelete,
|
||||
104: SuppressionBlocksRead,
|
||||
105: SuppressionBlocksUpdate,
|
||||
106: SuppressionBouncesCreate,
|
||||
107: SuppressionBouncesDelete,
|
||||
108: SuppressionBouncesRead,
|
||||
109: SuppressionBouncesUpdate,
|
||||
110: SuppressionCreate,
|
||||
111: SuppressionDelete,
|
||||
112: SuppressionInvalidEmailsCreate,
|
||||
113: SuppressionInvalidEmailsDelete,
|
||||
114: SuppressionInvalidEmailsRead,
|
||||
115: SuppressionInvalidEmailsUpdate,
|
||||
116: SuppressionRead,
|
||||
117: SuppressionSpamReportsCreate,
|
||||
118: SuppressionSpamReportsDelete,
|
||||
119: SuppressionSpamReportsRead,
|
||||
120: SuppressionSpamReportsUpdate,
|
||||
121: SuppressionUnsubscribesCreate,
|
||||
122: SuppressionUnsubscribesDelete,
|
||||
123: SuppressionUnsubscribesRead,
|
||||
124: SuppressionUnsubscribesUpdate,
|
||||
125: SuppressionUpdate,
|
||||
126: TeammatesCreate,
|
||||
127: TeammatesRead,
|
||||
128: TeammatesUpdate,
|
||||
129: TeammatesDelete,
|
||||
130: TemplatesCreate,
|
||||
131: TemplatesDelete,
|
||||
132: TemplatesRead,
|
||||
133: TemplatesUpdate,
|
||||
134: TemplatesVersionsActivateCreate,
|
||||
135: TemplatesVersionsActivateDelete,
|
||||
136: TemplatesVersionsActivateRead,
|
||||
137: TemplatesVersionsActivateUpdate,
|
||||
138: TemplatesVersionsCreate,
|
||||
139: TemplatesVersionsDelete,
|
||||
140: TemplatesVersionsRead,
|
||||
141: TemplatesVersionsUpdate,
|
||||
142: TrackingSettingsClickRead,
|
||||
143: TrackingSettingsClickUpdate,
|
||||
144: TrackingSettingsGoogleAnalyticsRead,
|
||||
145: TrackingSettingsGoogleAnalyticsUpdate,
|
||||
146: TrackingSettingsOpenRead,
|
||||
147: TrackingSettingsOpenUpdate,
|
||||
148: TrackingSettingsRead,
|
||||
149: TrackingSettingsSubscriptionRead,
|
||||
150: TrackingSettingsSubscriptionUpdate,
|
||||
151: UserAccountRead,
|
||||
152: UserCreditsRead,
|
||||
153: UserEmailCreate,
|
||||
154: UserEmailDelete,
|
||||
155: UserEmailRead,
|
||||
156: UserEmailUpdate,
|
||||
157: UserMultifactorAuthenticationCreate,
|
||||
158: UserMultifactorAuthenticationDelete,
|
||||
159: UserMultifactorAuthenticationRead,
|
||||
160: UserMultifactorAuthenticationUpdate,
|
||||
161: UserPasswordRead,
|
||||
162: UserPasswordUpdate,
|
||||
163: UserProfileRead,
|
||||
164: UserProfileUpdate,
|
||||
165: UserScheduledSendsCreate,
|
||||
166: UserScheduledSendsDelete,
|
||||
167: UserScheduledSendsRead,
|
||||
168: UserScheduledSendsUpdate,
|
||||
169: UserSettingsEnforcedTlsRead,
|
||||
170: UserSettingsEnforcedTlsUpdate,
|
||||
171: UserTimezoneRead,
|
||||
172: UserUsernameRead,
|
||||
173: UserUsernameUpdate,
|
||||
174: UserWebhooksEventSettingsRead,
|
||||
175: UserWebhooksEventSettingsUpdate,
|
||||
176: UserWebhooksEventTestCreate,
|
||||
177: UserWebhooksEventTestRead,
|
||||
178: UserWebhooksEventTestUpdate,
|
||||
179: UserWebhooksParseSettingsCreate,
|
||||
180: UserWebhooksParseSettingsDelete,
|
||||
181: UserWebhooksParseSettingsRead,
|
||||
182: UserWebhooksParseSettingsUpdate,
|
||||
183: UserWebhooksParseStatsRead,
|
||||
184: WhitelabelCreate,
|
||||
185: WhitelabelDelete,
|
||||
186: WhitelabelRead,
|
||||
187: WhitelabelUpdate,
|
||||
}
|
||||
)
|
||||
|
||||
// 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")
|
||||
}
|
188
pkg/analyzer/analyzers/sendgrid/permissions.yaml
Normal file
188
pkg/analyzer/analyzers/sendgrid/permissions.yaml
Normal file
|
@ -0,0 +1,188 @@
|
|||
permissions:
|
||||
- access_settings.activity.read
|
||||
- access_settings.whitelist.create
|
||||
- access_settings.whitelist.delete
|
||||
- access_settings.whitelist.read
|
||||
- access_settings.whitelist.update
|
||||
- alerts.create
|
||||
- alerts.delete
|
||||
- alerts.read
|
||||
- alerts.update
|
||||
- api_keys.create
|
||||
- api_keys.delete
|
||||
- api_keys.read
|
||||
- api_keys.update
|
||||
- asm.groups.create
|
||||
- asm.groups.delete
|
||||
- asm.groups.read
|
||||
- asm.groups.update
|
||||
- billing.create
|
||||
- billing.delete
|
||||
- billing.read
|
||||
- billing.update
|
||||
- browsers.stats.read
|
||||
- categories.create
|
||||
- categories.delete
|
||||
- categories.read
|
||||
- categories.stats.read
|
||||
- categories.stats.sums.read
|
||||
- categories.update
|
||||
- clients.desktop.stats.read
|
||||
- clients.phone.stats.read
|
||||
- clients.stats.read
|
||||
- clients.tablet.stats.read
|
||||
- clients.webmail.stats.read
|
||||
- devices.stats.read
|
||||
- email_activity.read
|
||||
- geo.stats.read
|
||||
- ips.assigned.read
|
||||
- ips.pools.create
|
||||
- ips.pools.delete
|
||||
- ips.pools.ips.create
|
||||
- ips.pools.ips.delete
|
||||
- ips.pools.ips.read
|
||||
- ips.pools.ips.update
|
||||
- ips.pools.read
|
||||
- ips.pools.update
|
||||
- ips.read
|
||||
- ips.warmup.create
|
||||
- ips.warmup.delete
|
||||
- ips.warmup.read
|
||||
- ips.warmup.update
|
||||
- mail_settings.address_whitelist.read
|
||||
- mail_settings.address_whitelist.update
|
||||
- mail_settings.bounce_purge.read
|
||||
- mail_settings.bounce_purge.update
|
||||
- mail_settings.footer.read
|
||||
- mail_settings.footer.update
|
||||
- mail_settings.forward_bounce.read
|
||||
- mail_settings.forward_bounce.update
|
||||
- mail_settings.forward_spam.read
|
||||
- mail_settings.forward_spam.update
|
||||
- mail_settings.plain_content.read
|
||||
- mail_settings.plain_content.update
|
||||
- mail_settings.read
|
||||
- mail_settings.template.read
|
||||
- mail_settings.template.update
|
||||
- mail.batch.create
|
||||
- mail.batch.delete
|
||||
- mail.batch.read
|
||||
- mail.batch.update
|
||||
- mail.send
|
||||
- mailbox_providers.stats.read
|
||||
- marketing_campaigns.create
|
||||
- marketing_campaigns.delete
|
||||
- marketing_campaigns.read
|
||||
- marketing_campaigns.update
|
||||
- partner_settings.new_relic.read
|
||||
- partner_settings.new_relic.update
|
||||
- partner_settings.read
|
||||
- stats.global.read
|
||||
- stats.read
|
||||
- subusers.create
|
||||
- subusers.credits.create
|
||||
- subusers.credits.delete
|
||||
- subusers.credits.read
|
||||
- subusers.credits.remaining.create
|
||||
- subusers.credits.remaining.delete
|
||||
- subusers.credits.remaining.read
|
||||
- subusers.credits.remaining.update
|
||||
- subusers.credits.update
|
||||
- subusers.delete
|
||||
- subusers.monitor.create
|
||||
- subusers.monitor.delete
|
||||
- subusers.monitor.read
|
||||
- subusers.monitor.update
|
||||
- subusers.read
|
||||
- subusers.reputations.read
|
||||
- subusers.stats.monthly.read
|
||||
- subusers.stats.read
|
||||
- subusers.stats.sums.read
|
||||
- subusers.summary.read
|
||||
- subusers.update
|
||||
- suppression.blocks.create
|
||||
- suppression.blocks.delete
|
||||
- suppression.blocks.read
|
||||
- suppression.blocks.update
|
||||
- suppression.bounces.create
|
||||
- suppression.bounces.delete
|
||||
- suppression.bounces.read
|
||||
- suppression.bounces.update
|
||||
- suppression.create
|
||||
- suppression.delete
|
||||
- suppression.invalid_emails.create
|
||||
- suppression.invalid_emails.delete
|
||||
- suppression.invalid_emails.read
|
||||
- suppression.invalid_emails.update
|
||||
- suppression.read
|
||||
- suppression.spam_reports.create
|
||||
- suppression.spam_reports.delete
|
||||
- suppression.spam_reports.read
|
||||
- suppression.spam_reports.update
|
||||
- suppression.unsubscribes.create
|
||||
- suppression.unsubscribes.delete
|
||||
- suppression.unsubscribes.read
|
||||
- suppression.unsubscribes.update
|
||||
- suppression.update
|
||||
- teammates.create
|
||||
- teammates.read
|
||||
- teammates.update
|
||||
- teammates.delete
|
||||
- templates.create
|
||||
- templates.delete
|
||||
- templates.read
|
||||
- templates.update
|
||||
- templates.versions.activate.create
|
||||
- templates.versions.activate.delete
|
||||
- templates.versions.activate.read
|
||||
- templates.versions.activate.update
|
||||
- templates.versions.create
|
||||
- templates.versions.delete
|
||||
- templates.versions.read
|
||||
- templates.versions.update
|
||||
- tracking_settings.click.read
|
||||
- tracking_settings.click.update
|
||||
- tracking_settings.google_analytics.read
|
||||
- tracking_settings.google_analytics.update
|
||||
- tracking_settings.open.read
|
||||
- tracking_settings.open.update
|
||||
- tracking_settings.read
|
||||
- tracking_settings.subscription.read
|
||||
- tracking_settings.subscription.update
|
||||
- user.account.read
|
||||
- user.credits.read
|
||||
- user.email.create
|
||||
- user.email.delete
|
||||
- user.email.read
|
||||
- user.email.update
|
||||
- user.multifactor_authentication.create
|
||||
- user.multifactor_authentication.delete
|
||||
- user.multifactor_authentication.read
|
||||
- user.multifactor_authentication.update
|
||||
- user.password.read
|
||||
- user.password.update
|
||||
- user.profile.read
|
||||
- user.profile.update
|
||||
- user.scheduled_sends.create
|
||||
- user.scheduled_sends.delete
|
||||
- user.scheduled_sends.read
|
||||
- user.scheduled_sends.update
|
||||
- user.settings.enforced_tls.read
|
||||
- user.settings.enforced_tls.update
|
||||
- user.timezone.read
|
||||
- user.username.read
|
||||
- user.username.update
|
||||
- user.webhooks.event.settings.read
|
||||
- user.webhooks.event.settings.update
|
||||
- user.webhooks.event.test.create
|
||||
- user.webhooks.event.test.read
|
||||
- user.webhooks.event.test.update
|
||||
- user.webhooks.parse.settings.create
|
||||
- user.webhooks.parse.settings.delete
|
||||
- user.webhooks.parse.settings.read
|
||||
- user.webhooks.parse.settings.update
|
||||
- user.webhooks.parse.stats.read
|
||||
- whitelabel.create
|
||||
- whitelabel.delete
|
||||
- whitelabel.read
|
||||
- whitelabel.update
|
|
@ -1,3 +1,5 @@
|
|||
//go:generate generate_permissions permissions.yaml permissions.go sendgrid
|
||||
|
||||
package sendgrid
|
||||
|
||||
import (
|
||||
|
@ -13,17 +15,106 @@ import (
|
|||
|
||||
"github.com/trufflesecurity/trufflehog/v3/pkg/analyzer/analyzers"
|
||||
"github.com/trufflesecurity/trufflehog/v3/pkg/analyzer/config"
|
||||
"github.com/trufflesecurity/trufflehog/v3/pkg/analyzer/pb/analyzerpb"
|
||||
"github.com/trufflesecurity/trufflehog/v3/pkg/context"
|
||||
)
|
||||
|
||||
var _ analyzers.Analyzer = (*Analyzer)(nil)
|
||||
|
||||
type Analyzer struct {
|
||||
Cfg *config.Config
|
||||
}
|
||||
|
||||
func (Analyzer) Type() analyzerpb.AnalyzerType { return analyzerpb.AnalyzerType_Sendgrid }
|
||||
|
||||
func (a Analyzer) Analyze(_ context.Context, credInfo map[string]string) (*analyzers.AnalyzerResult, error) {
|
||||
key, ok := credInfo["key"]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("missing key in credInfo")
|
||||
}
|
||||
info, err := AnalyzePermissions(a.Cfg, key)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return secretInfoToAnalyzerResult(info), nil
|
||||
}
|
||||
|
||||
func secretInfoToAnalyzerResult(info *SecretInfo) *analyzers.AnalyzerResult {
|
||||
if info == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
var keyType string
|
||||
if slices.Contains(info.RawScopes, "user.email.read") {
|
||||
keyType = "full access"
|
||||
} else if slices.Contains(info.RawScopes, "billing.read") {
|
||||
keyType = "billing access"
|
||||
} else {
|
||||
keyType = "restricted access"
|
||||
}
|
||||
|
||||
result := analyzers.AnalyzerResult{
|
||||
AnalyzerType: analyzerpb.AnalyzerType_Sendgrid,
|
||||
Metadata: map[string]any{
|
||||
"key_type": keyType,
|
||||
"2fa_required": slices.Contains(info.RawScopes, "2fa_required"),
|
||||
},
|
||||
Bindings: []analyzers.Binding{},
|
||||
UnboundedResources: []analyzers.Resource{},
|
||||
}
|
||||
|
||||
for _, scope := range info.Scopes {
|
||||
resource := getCategoryResource(scope)
|
||||
|
||||
if len(scope.Permissions) == 0 {
|
||||
result.UnboundedResources = append(result.UnboundedResources, *resource)
|
||||
continue
|
||||
}
|
||||
|
||||
for _, permission := range scope.Permissions {
|
||||
result.Bindings = append(result.Bindings, analyzers.Binding{
|
||||
Resource: *resource,
|
||||
Permission: analyzers.Permission{
|
||||
Value: permission,
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return &result
|
||||
}
|
||||
|
||||
func getCategoryResource(scope SendgridScope) *analyzers.Resource {
|
||||
categoryResource := &analyzers.Resource{
|
||||
Name: scope.Category,
|
||||
FullyQualifiedName: scope.Category,
|
||||
Type: "category",
|
||||
Metadata: nil,
|
||||
}
|
||||
|
||||
if scope.SubCategory != "" {
|
||||
return &analyzers.Resource{
|
||||
Name: scope.SubCategory,
|
||||
FullyQualifiedName: fmt.Sprintf("%s/%s", scope.Category, scope.SubCategory),
|
||||
Type: "category",
|
||||
Metadata: nil,
|
||||
Parent: categoryResource,
|
||||
}
|
||||
}
|
||||
|
||||
return categoryResource
|
||||
}
|
||||
|
||||
type ScopesJSON struct {
|
||||
Scopes []string `json:"scopes"`
|
||||
}
|
||||
|
||||
type SecretInfo struct {
|
||||
RawScopes []string
|
||||
Scopes []SendgridScope
|
||||
}
|
||||
|
||||
func printPermissions(show_all bool) {
|
||||
func printPermissions(info *SecretInfo, show_all bool) {
|
||||
fmt.Print("\n\n")
|
||||
t := table.NewWriter()
|
||||
t.SetOutputMirror(os.Stdout)
|
||||
|
@ -33,7 +124,7 @@ func printPermissions(show_all bool) {
|
|||
t.AppendHeader(table.Row{"Scope", "Sub-Scope", "Access"})
|
||||
}
|
||||
// Print the scopes
|
||||
for _, s := range SCOPES {
|
||||
for _, s := range info.Scopes {
|
||||
writer := analyzers.GetWriterFromStatus(s.PermissionType)
|
||||
if show_all {
|
||||
t.AppendRow([]interface{}{writer(s.Category), writer(s.SubCategory), writer(s.PermissionType), writer(strings.Join(s.Permissions, "\n"))})
|
||||
|
@ -49,11 +140,11 @@ func printPermissions(show_all bool) {
|
|||
// It will return the most specific category possible.
|
||||
// For example, if the scope is "mail.send.read", it will return "Mail Send", not just "Mail"
|
||||
// since it's searching "mail.send.read" -> "mail.send" -> "mail"
|
||||
func getScopeIndex(scope string) int {
|
||||
func getScopeIndex(categories []SendgridScope, scope string) int {
|
||||
splitScope := strings.Split(scope, ".")
|
||||
for i := len(splitScope); i > 0; i-- {
|
||||
searchScope := strings.Join(splitScope[:i], ".")
|
||||
for i, s := range SCOPES {
|
||||
for i, s := range categories {
|
||||
for _, prefix := range s.Prefixes {
|
||||
if strings.HasPrefix(searchScope, prefix) {
|
||||
return i
|
||||
|
@ -64,24 +155,36 @@ func getScopeIndex(scope string) int {
|
|||
return -1
|
||||
}
|
||||
|
||||
func processPermissions(rawScopes []string) {
|
||||
func processPermissions(rawScopes []string) []SendgridScope {
|
||||
categoryPermissions := make([]SendgridScope, len(SCOPES))
|
||||
|
||||
// copy all scope categories to the categoryPermissions slice
|
||||
copy(categoryPermissions, SCOPES)
|
||||
for _, scope := range rawScopes {
|
||||
// Skip these scopes since they are not useful for this analysis
|
||||
if scope == "2fa_required" || scope == "sender_verification_eligible" {
|
||||
continue
|
||||
}
|
||||
ind := getScopeIndex(scope)
|
||||
|
||||
// must be part of generated permissions
|
||||
if _, ok := StringToPermission[scope]; !ok {
|
||||
continue
|
||||
}
|
||||
ind := getScopeIndex(categoryPermissions, scope)
|
||||
if ind == -1 {
|
||||
//color.Red("[!] Scope not found: %v", scope)
|
||||
continue
|
||||
}
|
||||
s := &SCOPES[ind]
|
||||
s := &categoryPermissions[ind]
|
||||
s.AddPermission(scope)
|
||||
}
|
||||
|
||||
// Run tests to determine the permission type
|
||||
for i := range SCOPES {
|
||||
SCOPES[i].RunTests()
|
||||
for i := range categoryPermissions {
|
||||
categoryPermissions[i].RunTests()
|
||||
}
|
||||
|
||||
return categoryPermissions
|
||||
}
|
||||
|
||||
func AnalyzeAndPrintPermissions(cfg *config.Config, key string) {
|
||||
|
@ -105,7 +208,7 @@ func AnalyzeAndPrintPermissions(cfg *config.Config, key string) {
|
|||
color.Yellow("[i] 2FA Required for this account")
|
||||
}
|
||||
|
||||
printPermissions(cfg.ShowAll)
|
||||
printPermissions(info, cfg.ShowAll)
|
||||
}
|
||||
|
||||
func AnalyzePermissions(cfg *config.Config, key string) (*SecretInfo, error) {
|
||||
|
@ -133,7 +236,10 @@ func AnalyzePermissions(cfg *config.Config, key string) (*SecretInfo, error) {
|
|||
// Now you can access the scopes
|
||||
rawScopes := jsonScopes.Scopes
|
||||
|
||||
processPermissions(rawScopes)
|
||||
categoryScope := processPermissions(rawScopes)
|
||||
|
||||
return &SecretInfo{RawScopes: rawScopes}, nil
|
||||
return &SecretInfo{
|
||||
RawScopes: rawScopes,
|
||||
Scopes: categoryScope,
|
||||
}, nil
|
||||
}
|
||||
|
|
97
pkg/analyzer/analyzers/sendgrid/sendgrid_test.go
Normal file
97
pkg/analyzer/analyzers/sendgrid/sendgrid_test.go
Normal file
File diff suppressed because one or more lines are too long
|
@ -60,6 +60,7 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result
|
|||
s1.Verified = verified
|
||||
s1.ExtraData = extraData
|
||||
s1.SetVerificationError(verificationErr)
|
||||
s1.AnalysisInfo = map[string]string{"key": token}
|
||||
}
|
||||
|
||||
results = append(results, s1)
|
||||
|
|
|
@ -126,7 +126,7 @@ func TestSendgrid_FromChunk(t *testing.T) {
|
|||
t.Errorf("Sendgrid.FromData() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
ignoreOpts := cmpopts.IgnoreFields(detectors.Result{}, "Raw", "verificationError")
|
||||
ignoreOpts := cmpopts.IgnoreFields(detectors.Result{}, "Raw", "verificationError", "AnalysisInfo", "ExtraData")
|
||||
if diff := cmp.Diff(got, tt.want, ignoreOpts); diff != "" {
|
||||
t.Errorf("Sendgrid.FromData() %s diff: (-got +want)\n%s", tt.name, diff)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue