Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mxrch
GitHub Repository: mxrch/GHunt
Path: blob/master/ghunt/parsers/clientauthconfig.py
253 views
1
from typing import *
2
from ghunt.objects.apis import Parser
3
4
5
class CacBrand(Parser):
6
def __init__(self):
7
self.brand_id: str = ""
8
self.project_ids: List[list] = []
9
self.project_numbers: List[str] = []
10
self.display_name: str = ""
11
self.icon_url: str = ""
12
self.stored_icon_url: str = ""
13
self.support_email: str = ""
14
self.home_page_url: str = ""
15
self.terms_of_service_urls: List[list] = []
16
self.privacy_policy_urls: List[list] = []
17
self.direct_notice_to_parents_url: str = ""
18
self.brand_state: CacBrandState = CacBrandState()
19
self.clients: List[list] = []
20
self.review: CacReview = CacReview()
21
self.is_org_internal: bool = False
22
self.risc_configuration: CacRiscConfiguration = CacRiscConfiguration()
23
self.consistency_token: str = ""
24
self.creation_time: str = ""
25
self.verified_brand: CacVerifiedBrand = CacVerifiedBrand()
26
27
def _scrape(self, base_model_data: Dict[str, any]):
28
self.brand_id = base_model_data.get('brandId')
29
self.project_ids = base_model_data.get('projectIds')
30
self.project_numbers = base_model_data.get('projectNumbers')
31
self.display_name = base_model_data.get('displayName')
32
self.icon_url = base_model_data.get('iconUrl')
33
self.stored_icon_url = base_model_data.get('storedIconUrl')
34
self.support_email = base_model_data.get('supportEmail')
35
self.home_page_url = base_model_data.get('homePageUrl')
36
self.terms_of_service_urls = base_model_data.get('termsOfServiceUrls')
37
self.privacy_policy_urls = base_model_data.get('privacyPolicyUrls')
38
self.direct_notice_to_parents_url = base_model_data.get('directNoticeToParentsUrl')
39
if (brand_state_data := base_model_data.get('brandState')):
40
self.brand_state._scrape(brand_state_data)
41
self.clients = base_model_data.get('clients')
42
if (review_data := base_model_data.get('review')):
43
self.review._scrape(review_data)
44
self.is_org_internal = base_model_data.get('isOrgInternal')
45
if (risc_configuration_data := base_model_data.get('riscConfiguration')):
46
self.risc_configuration._scrape(risc_configuration_data)
47
self.consistency_token = base_model_data.get('consistencyToken')
48
self.creation_time = base_model_data.get('creationTime')
49
if (verified_brand_data := base_model_data.get('verifiedBrand')):
50
self.verified_brand._scrape(verified_brand_data)
51
52
class CacBrandState(Parser):
53
def __init__(self):
54
self.state: str = ""
55
self.admin_id: str = ""
56
self.reason: str = ""
57
self.limits: CacLimits = CacLimits()
58
self.brand_setup: str = ""
59
self.creation_flow: str = ""
60
self.update_timestamp: str = ""
61
62
def _scrape(self, brand_state_data: Dict[str, any]):
63
self.state = brand_state_data.get('state')
64
self.admin_id = brand_state_data.get('adminId')
65
self.reason = brand_state_data.get('reason')
66
if (limits_data := brand_state_data.get('limits')):
67
self.limits._scrape(limits_data)
68
self.brand_setup = brand_state_data.get('brandSetup')
69
self.creation_flow = brand_state_data.get('creationFlow')
70
self.update_timestamp = brand_state_data.get('updateTimestamp')
71
72
class CacLimits(Parser):
73
def __init__(self):
74
self.approval_quota_multiplier: int = 0
75
self.max_domain_count: int = 0
76
self.default_max_client_count: int = 0
77
78
def _scrape(self, limits_data: Dict[str, int]):
79
self.approval_quota_multiplier = limits_data.get('approvalQuotaMultiplier')
80
self.max_domain_count = limits_data.get('maxDomainCount')
81
self.default_max_client_count = limits_data.get('defaultMaxClientCount')
82
83
class CacReview(Parser):
84
def __init__(self):
85
self.has_abuse_verdict: bool = False
86
self.is_published: bool = False
87
self.review_state: str = ""
88
self.high_risk_scopes_privilege: str = ""
89
self.low_risk_scopes: List[list] = []
90
self.pending_scopes: List[list] = []
91
self.exempt_scopes: List[list] = []
92
self.approved_scopes: List[list] = []
93
self.historical_approved_scopes: List[list] = []
94
self.pending_domains: List[str] = []
95
self.approved_domains: List[list] = []
96
self.enforce_request_scopes: bool = False
97
self.category: List[list] = []
98
self.decision_timestamp: str = ""
99
100
def _scrape(self, review_data: Dict[str, any]):
101
self.has_abuse_verdict = review_data.get('hasAbuseVerdict')
102
self.is_published = review_data.get('isPublished')
103
self.review_state = review_data.get('reviewState')
104
self.high_risk_scopes_privilege = review_data.get('highRiskScopesPrivilege')
105
self.low_risk_scopes = review_data.get('lowRiskScopes')
106
self.pending_scopes = review_data.get('pendingScopes')
107
self.exempt_scopes = review_data.get('exemptScopes')
108
self.approved_scopes = review_data.get('approvedScopes')
109
self.historical_approved_scopes = review_data.get('historicalApprovedScopes')
110
self.pending_domains = review_data.get('pendingDomains')
111
self.approved_domains = review_data.get('approvedDomains')
112
self.enforce_request_scopes = review_data.get('enforceRequestScopes')
113
self.category = review_data.get('category')
114
self.decision_timestamp = review_data.get('decisionTimestamp')
115
116
class CacRiscConfiguration(Parser):
117
def __init__(self):
118
self.enabled: bool = False
119
self.delivery_method: str = ""
120
self.receiver_supported_event_type: List[list] = []
121
self.legal_agreement: List[str] = []
122
123
def _scrape(self, risc_configuration_data: Dict[str, any]):
124
self.enabled = risc_configuration_data.get('enabled')
125
self.delivery_method = risc_configuration_data.get('deliveryMethod')
126
self.receiver_supported_event_type = risc_configuration_data.get('receiverSupportedEventType')
127
self.legal_agreement = risc_configuration_data.get('legalAgreement')
128
129
class CacVerifiedBrand(Parser):
130
def __init__(self):
131
self.display_name: CacDisplayName = CacDisplayName()
132
self.stored_icon_url: CacStoredIconUrl = CacStoredIconUrl()
133
self.support_email: CacSupportEmail = CacSupportEmail()
134
self.home_page_url: CacHomePageUrl = CacHomePageUrl()
135
self.privacy_policy_url: CacPrivacyPolicyUrl = CacPrivacyPolicyUrl()
136
self.terms_of_service_url: CacTermsOfServiceUrl = CacTermsOfServiceUrl()
137
138
def _scrape(self, verified_brand_data: Dict[str, any]):
139
if (display_name_data := verified_brand_data.get('displayName')):
140
self.display_name._scrape(display_name_data)
141
if (stored_icon_url_data := verified_brand_data.get('storedIconUrl')):
142
self.stored_icon_url._scrape(stored_icon_url_data)
143
if (support_email_data := verified_brand_data.get('supportEmail')):
144
self.support_email._scrape(support_email_data)
145
if (home_page_url_data := verified_brand_data.get('homePageUrl')):
146
self.home_page_url._scrape(home_page_url_data)
147
if (privacy_policy_url_data := verified_brand_data.get('privacyPolicyUrl')):
148
self.privacy_policy_url._scrape(privacy_policy_url_data)
149
if (terms_of_service_url_data := verified_brand_data.get('termsOfServiceUrl')):
150
self.terms_of_service_url._scrape(terms_of_service_url_data)
151
152
class CacDisplayName(Parser):
153
def __init__(self):
154
self.value: str = ""
155
self.reason: str = ""
156
157
def _scrape(self, display_name_data: Dict[str, str]):
158
self.value = display_name_data.get('value')
159
self.reason = display_name_data.get('reason')
160
161
class CacStoredIconUrl(Parser):
162
def __init__(self):
163
self.value: str = ""
164
self.reason: str = ""
165
166
def _scrape(self, stored_icon_url_data: Dict[str, str]):
167
self.value = stored_icon_url_data.get('value')
168
self.reason = stored_icon_url_data.get('reason')
169
170
class CacSupportEmail(Parser):
171
def __init__(self):
172
self.value: str = ""
173
self.reason: str = ""
174
175
def _scrape(self, support_email_data: Dict[str, str]):
176
self.value = support_email_data.get('value')
177
self.reason = support_email_data.get('reason')
178
179
class CacHomePageUrl(Parser):
180
def __init__(self):
181
self.value: str = ""
182
self.reason: str = ""
183
184
def _scrape(self, home_page_url_data: Dict[str, str]):
185
self.value = home_page_url_data.get('value')
186
self.reason = home_page_url_data.get('reason')
187
188
class CacPrivacyPolicyUrl(Parser):
189
def __init__(self):
190
self.value: str = ""
191
self.reason: str = ""
192
193
def _scrape(self, privacy_policy_url_data: Dict[str, str]):
194
self.value = privacy_policy_url_data.get('value')
195
self.reason = privacy_policy_url_data.get('reason')
196
197
class CacTermsOfServiceUrl(Parser):
198
def __init__(self):
199
self.value: str = ""
200
self.reason: str = ""
201
202
def _scrape(self, terms_of_service_url_data: Dict[str, str]):
203
self.value = terms_of_service_url_data.get('value')
204
self.reason = terms_of_service_url_data.get('reason')
205
206
207