
    bR                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d Z
d Zd Z G d	 d
e          Z G d de          ZdS )    N)
gp_pol_ext)misc)
get_string)logc                     g d}g d}| |v r&t          j        t          |j                            S |j        t
          j        k    r| |v r|j        dk    S |j        S )N)(VirtualKeyboardFeaturesDeviceArcDataSnapshotHours"RequiredClientCertificateForDevice RequiredClientCertificateForUserRegisteredProtocolHandlersWebUsbAllowDevicesForUrls DeviceAutoUpdateTimeRestrictionsDeviceUpdateStagingScheduleDeviceMinimumVersionDeviceDisplayResolutionExtensionSettingsKerberosAccounts$NetworkFileSharesPreconfiguredSharesNetworkThrottlingEnabledTPMFirmwareUpdateSettingsDeviceOffHoursParentAccessCodeConfigPerAppTimeLimitsPerAppTimeLimitsWhitelistPerAppTimeLimitsAllowlistUsageTimeLimitPluginVmImage DeviceLoginScreenPowerManagementPowerManagementIdleSettingsScreenLockDelaysScreenBrightnessPercentDevicePowerPeakShiftDayConfig(DeviceAdvancedBatteryChargeModeDayConfigPrintingPaperSizeDefaultAutoLaunchProtocolsFromOriginsBrowsingDataLifetimeDataLeakPreventionRulesList*DeviceLoginScreenWebUsbAllowDevicesForUrlsDeviceScheduledUpdateCheckKeyPermissionsManagedBookmarksManagedConfigurationPerOriginProxySettingsSystemProxySettingsWebAppInstallForceList(  (ShowAccessibilityOptionsInSystemTrayMenuLargeCursorEnabledSpokenFeedbackEnabledHighContrastEnabledVirtualKeyboardEnabledStickyKeysEnabledKeyboardDefaultToFunctionKeysDictationEnabledSelectToSpeakEnabledKeyboardFocusHighlightEnabledCursorHighlightEnabledCaretHighlightEnabledMonoAudioEnabledAccessibilityShortcutsEnabledAutoclickEnabled*DeviceLoginScreenDefaultLargeCursorEnabled-DeviceLoginScreenDefaultSpokenFeedbackEnabled+DeviceLoginScreenDefaultHighContrastEnabled.DeviceLoginScreenDefaultVirtualKeyboardEnabled#DeviceLoginScreenLargeCursorEnabled&DeviceLoginScreenSpokenFeedbackEnabled$DeviceLoginScreenHighContrastEnabled'DeviceLoginScreenVirtualKeyboardEnabled!DeviceLoginScreenDictationEnabled%DeviceLoginScreenSelectToSpeakEnabled'DeviceLoginScreenCursorHighlightEnabled&DeviceLoginScreenCaretHighlightEnabled!DeviceLoginScreenMonoAudioEnabled!DeviceLoginScreenAutoclickEnabled"DeviceLoginScreenStickyKeysEnabled.DeviceLoginScreenKeyboardFocusHighlightEnabled,DeviceLoginScreenShowOptionsInSystemTrayMenu.DeviceLoginScreenAccessibilityShortcutsEnabled FloatingAccessibilityMenuEnabled
ArcEnabledUnaffiliatedArcAllowed!AppRecommendationZeroStateEnabledDeviceBorealisAllowedUserBorealisAllowedSystemUse24HourClockDefaultSearchProviderEnabledChromeOsReleaseChannelDelegatedDeviceAutoUpdateDisabledDeviceAutoUpdateP2PEnabled DeviceUpdateHttpDownloadsEnabledRebootAfterUpdateBlockExternalExtensionsVoiceInteractionContextEnabledVoiceInteractionHotwordEnabledEnableMediaRouterShowCastIconInToolbarDriveDisabledDriveDisabledOverCellularDisableAuthNegotiateCnameLookupEnableAuthNegotiatePortBasicAuthOverHttpEnabled AuthNegotiateDelegateByKdcPolicyAllowCrossOriginAuthPromptNtlmV2Enabled"IntegratedWebAuthenticationAllowedBrowserSwitcherEnabled BrowserSwitcherKeepLastChromeTabBrowserSwitcherUseIeSitelistVirtualMachinesAllowedCrostiniAllowed!DeviceUnaffiliatedCrostiniAllowedCrostiniExportImportUIAllowedCrostiniPortForwardingAllowedNativeMessagingUserLevelHostsNetworkFileSharesAllowedNetBiosShareDiscoveryEnabledNTLMShareAuthenticationEnabledDeviceDataRoamingEnabledDeviceWiFiFastTransitionEnabledDeviceWiFiAllowedDeviceAllowBluetooth+DeviceAllowRedeemChromeOsRegistrationOffersDeviceQuirksDownloadEnabledSuggestedContentEnabled"DeviceShowLowDiskSpaceNotificationPasswordManagerEnabledPasswordLeakDetectionEnabledPluginVmAllowedPluginVmDataCollectionAllowedUserPluginVmAllowedDeviceRebootOnShutdown PowerManagementUsesAudioActivity PowerManagementUsesVideoActivityAllowWakeLocksAllowScreenWakeLocksWaitForInitialUserActivityPowerSmartDimEnabledDevicePowerPeakShiftEnabledDeviceBootOnAcEnabled&DeviceAdvancedBatteryChargeModeEnabledDeviceUsbPowerShareEnabledPrintingEnabledCloudPrintProxyEnabled&PrintingSendUsernameAndFilenameEnabledCloudPrintSubmitEnabledDisablePrintPreviewPrintHeaderFooter#PrintPreviewUseSystemDefaultPrinterUserNativePrintersAllowedUserPrintersAllowedDeletePrintJobHistoryAllowed%DeviceLoginScreenPrivacyScreenEnabledPrivacyScreenEnabledPinUnlockWeakPinsAllowedPinUnlockAutosubmitEnabled!RemoteAccessHostFirewallTraversalRemoteAccessHostRequireCurtain"RemoteAccessHostAllowClientPairing&RemoteAccessHostAllowRelayedConnection0RemoteAccessHostAllowUiAccessForRemoteAssistance!RemoteAccessHostAllowFileTransfer,RemoteAccessHostAllowRemoteAccessConnectionsAttestationEnabledForUserSafeBrowsingEnabled$SafeBrowsingExtendedReportingEnabledDeviceGuestModeEnabledDeviceAllowNewUsersDeviceShowUserNamesOnSigninDeviceEphemeralUsersEnabled$DeviceShowNumericKeyboardForPasswordDeviceFamilyLinkAccountsAllowedShowHomeButtonHomepageIsNewTabPageDeviceMetricsReportingEnabledDeviceWilcoDtcAllowed$AbusiveExperienceInterventionEnforceAccessibilityImageLabelsEnabledAdditionalDnsQueryTypesEnabledAdvancedProtectionAllowedAllowDeletingBrowserHistoryAllowDinosaurEasterEggAllowFileSelectionDialogsAllowScreenLockAllowSyncXHRInPageDismissalAlternateErrorPagesEnabledAlwaysOpenPdfExternallyAppCacheForceEnabledAudioCaptureAllowedAudioOutputAllowedAudioProcessHighPriorityEnabledAudioSandboxEnabledAutoFillEnabledAutofillAddressEnabledAutofillCreditCardEnabledAutoplayAllowedBackgroundModeEnabledBlockThirdPartyCookiesBookmarkBarEnabledBrowserAddPersonEnabledBrowserGuestModeEnabledBrowserGuestModeEnforcedBrowserLabsEnabled BrowserNetworkTimeQueriesEnabledBuiltInDnsClientEnabledCECPQ2Enabled'CaptivePortalAuthenticationIgnoresProxyChromeCleanupEnabledChromeCleanupReportingEnabledChromeOsLockOnIdleSuspendClickToCallEnabled"CloudManagementEnrollmentMandatory"CloudPolicyOverridesPlatformPolicyCloudUserPolicyMerge&CommandLineFlagSecurityWarningsEnabledComponentUpdatesEnabledDNSInterceptionChecksEnabled"DataLeakPreventionReportingEnabledDefaultBrowserSettingEnabled-DefaultSearchProviderContextMenuAccessAllowedDeveloperToolsDisabled&DeviceAllowMGSToStoreDisplayPropertiesDeviceDebugPacketCaptureAllowed'DeviceLocalAccountManagedSessionEnabled)DeviceLoginScreenPrimaryMouseButtonSwitch$DevicePciPeripheralDataAccessEnabledDevicePowerwashAllowedDeviceSystemWideTracingEnabledDisable3DAPIs DisableSafeBrowsingProceedAnywayDisableScreenshotsEasyUnlockAllowedEditBookmarksEnabledEmojiSuggestionEnabledEnableDeprecatedPrivetPrintingEnableOnlineRevocationChecksEnableSyncConsent$EnterpriseHardwarePlatformAPIEnabled,ExternalProtocolDialogShowAlwaysOpenCheckboxExternalStorageDisabledExternalStorageReadOnlyForceBrowserSigninForceEphemeralProfilesForceGoogleSafeSearchForceMaximizeOnFirstRunForceSafeSearchForceYouTubeSafetyModeFullscreenAlertEnabledFullscreenAllowed!GloballyScopeHTTPAuthCacheEnabledHardwareAccelerationModeEnabledHideWebStoreIconImportAutofillFormDataImportBookmarksImportHistoryImportHomepageImportSavedPasswordsImportSearchEngineIncognitoEnabledInsecureFormsWarningsEnabled%InsecurePrivateNetworkRequestsAllowedInstantTetheringAllowed IntensiveWakeUpThrottlingEnabledJavascriptEnabledLacrosAllowedLacrosSecondaryProfilesAllowedLockScreenMediaPlaybackEnabled!LoginDisplayPasswordButtonEnabled)ManagedGuestSessionPrivacyWarningsEnabledMediaRecommendationsEnabledMediaRouterCastAllowAllIPsMetricsReportingEnabledNTPCardsVisibleNTPCustomBackgroundEnabledNativeWindowOcclusionEnabledNearbyShareAllowedPaymentMethodQueryEnabledPdfAnnotationsEnabledPhoneHubAllowedPhoneHubNotificationsAllowedPhoneHubTaskContinuationAllowedPolicyAtomicGroupsEnabledPrimaryMouseButtonSwitchPromotionalTabsEnabledPromptForDownloadLocationQuicAllowedRendererCodeIntegrityEnabled,RequireOnlineRevocationChecksForLocalAnchorsRoamingProfileSupportEnabledSSLErrorOverrideAllowed$SafeBrowsingForTrustedSourcesEnabledSavingBrowserHistoryDisabledScreenCaptureAllowedScrollToTextFragmentEnabledSearchSuggestEnabled#SecondaryGoogleAccountSigninAllowed*SharedArrayBufferUnrestrictedAccessAllowedSharedClipboardEnabledShowAppsShortcutInBookmarkBarShowFullUrlsInAddressBarShowLogoutButtonInTraySignedHTTPExchangeEnabledSigninAllowedSigninInterceptionEnabledSitePerProcessSmartLockSigninAllowedSmsMessagesAllowedSpellCheckServiceEnabledSpellcheckEnabled$StartupBrowserWindowLaunchSuppressed$StricterMixedContentTreatmentEnabled#SuggestLogoutAfterClosingLastWindow&SuppressDifferentOriginSubframeDialogsSuppressUnsupportedOSWarningSyncDisabledTargetBlankImpliesNoOpenerTaskManagerEndProcessEnabledThirdPartyBlockingEnabledTouchVirtualKeyboardEnabledTranslateEnabledTripleDESEnabledUnifiedDesktopEnabledByDefault'UrlKeyedAnonymizedDataCollectionEnabledUserAgentClientHintsEnabledUserFeedbackAllowedVideoCaptureAllowedVmManagementCliAllowedVpnConfigAllowedWPADQuickCheckEnabledWebRtcAllowLegacyTLSProtocolsWebRtcEventLogCollectionAllowedWifiSyncAndroidAllowedWindowOcclusionEnabled   )jsonloadsr   datatyper   	REG_DWORD)nameedict_entriesboolss       :/usr/lib/python3/dist-packages/samba/gp/gp_chromium_ext.pyparse_entry_datarZ     sz    '. '. '.LP^' ^' ^'E~ |z*QV,,---	
4>	!	!demmv{6M    c                    |j                                         rT|j                            d          d         }|| vrg | |<   | |                             t          ||                     d S |j         }t          ||          | |<   d S )N\)	valuename	isnumerickeynamesplitappendrZ  )policiesrV  rU  s      rY  assign_entryre  f  s    { 3yt$$R(xHTN.tQ7788888{)$22r[  c                     d                     |dg          }|D ]a}d|j        v r|j                            |          rt	          ||           7|j                            |          rt	          | |           b| |fS )Nr]  Recommendedz
**delvals.)joinr_  ra  
startswithre  )managedrecommendedsectionentriesrecommended_sectionrV  s         rY  convert_pol_to_jsonro  p  s    ))Wm$<== % %1;&&9 344 	%a((((Y!!'** 	%!$$$Kr[  c                   D    e Zd ZdZdZd Zd Zd Zd Zd Z		 dd	Z
d
 ZdS )gp_chromium_extz/etc/chromium/policies/managedz"/etc/chromium/policies/recommendedc                     dS )NzGoogle/Chromium selfs    rY  __str__zgp_chromium_ext.__str__  s      r[  c                 z   	 t           j                            | j        d          }t          j        | j        d           t          |d          5 }t          j        ||           t          j	        d|           d d d            d S # 1 swxY w Y   d S # t          $ r t          j	        d|           Y d S w xY wNpolicies.jsonT)exist_okwzWrote Chromium preferencesz$Failed to write Chromium preferences)ospathrh  '_gp_chromium_ext__managed_policies_pathmakedirsopenrP  dumpr   debugPermissionError)ru  rj  managed_policiesfs       rY  set_managed_machine_policyz*gp_chromium_ext.set_managed_machine_policy  s.   		(!w||D,H,; =  =K4tDDDD&,, J	'1%%%	68HIIIJ J J J J J J J J J J J J J J J J J  	( 	( 	(I<&( ( ( ( ( (	(6   AB +B
=B 
BB BB B:9B:c                 z   	 t           j                            | j        d          }t          j        | j        d           t          |d          5 }t          j        ||           t          j	        d|           d d d            d S # 1 swxY w Y   d S # t          $ r t          j	        d|           Y d S w xY wrx  )r|  r}  rh  +_gp_chromium_ext__recommended_policies_pathr  r  rP  r  r   r  r  )ru  rk  recommended_policiesr  s       rY  set_recommended_machine_policyz.gp_chromium_ext.set_recommended_machine_policy  s0   		,#%7<<0P0?$A $A K84HHHH*C00 NA	+q)))	68LMMMN N N N N N N N N N N N N N N N N N  	, 	, 	,I<*, , , , , ,	,r  c                 6   t           j                            | j        d          }t           j                            |          rRt          |d          5 }t          j        |          }t          j	        d|           d d d            n# 1 swxY w Y   ni }|S Nry  rzRead Chromium preferences)
r|  r}  rh  r~  existsr  rP  loadr   r  )ru  r  r  rj  s       rY  get_managed_machine_policyz*gp_chromium_ext.get_managed_machine_policy  s    7<<(D(79 97>>*++ 	&,, I)A,,	57GHHHI I I I I I I I I I I I I I I G   *BBBc                 6   t           j                            | j        d          }t           j                            |          rRt          |d          5 }t          j        |          }t          j	        d|           d d d            n# 1 swxY w Y   ni }|S r  )
r|  r}  rh  r  r  r  rP  r  r   r  )ru  r  r  rk  s       rY  get_recommended_machine_policyz.gp_chromium_ext.get_recommended_machine_policy  s    !w||D,L,; =  =7>>.// 	*C00 MA"ill	57KLLLM M M M M M M M M M M M M M M Kr  Nc                 j   |Jt           j                            |d          | _        t           j                            |d          | _        |D ]\  }}| j                            |           t          |           |v r|t          |                                                    D ]\  }}|dk    r(| 	                    t          j        |                     n-|dk    r'|                     t          j        |                     | j                            t          |           |           | j                                         |D ]f}|j        r[d}	| j                            |j                   d}
t           j                            |j        |
          }|                     |          }|sk|                                 }|                                 }| j                            t          |           dt          j        |                     | j                            t          |           dt          j        |                     t-          |||	|j                  \  }}| 	                    |           |                     |           | j                                         hd S )Nrk  rj  Software\Policies\Google\ChromeMACHINE/Registry.pol)r|  r}  rh  r  r~  gp_dbset_guidstritemsr  rP  rQ  r  deletecommitfile_sys_pathrU  parser  r  storedumpsro  rm  )ru  deleted_gpo_listchanged_gpo_list
policy_dirguidsettings	attributerd  gporl  pol_filer}  pol_confrj  rk  s                  rY  process_group_policyz$gp_chromium_ext.process_group_policy  s   !/1w||J<I0K 0KD,+-7<<
I+N+ND(. 		  		 ND(J%%%4yyH$$+3CII+>+D+D+F+F < <'Ix I--77
88L8LMMMM"m33;;DJx<P<PQQQJ%%c$ii;;;;J# 	$ 	$C  $>
##CH---1w||C$5x@@::d++ 99;;"AACC
  TItz'7J7JKKK
  TM!%K!8!8: : :':7/:G/7/?(A (A$ //88833K@@@
!!###)	$ 	$r[  c                    i }d}d}|j         r{t          j                            |j         |          }|                     |          }|s|S |j        D ]5}|j                            |          r|j        ||j        d|j	        <   6|S )Nr  r  r]  )
r  r|  r}  rh  r  rm  ra  ri  rR  r_  )ru  r  outputr  rl  r}  r  rV  s           rY  rsopzgp_chromium_ext.rsop  s    )6 	I7<< 18<<Dzz$''H % I I9''00 IBC&Fqyyy!++>?r[  )N)__name__
__module____qualname__r~  r  rv  r  r  r  r  r  r  rs  r[  rY  rq  rq  {  s        >"F! ! !
( 
( 
(
, 
, 
,	 	 		 	 	 )-%$ %$ %$ %$N    r[  rq  c                       e Zd ZdZdZd ZdS )gp_chrome_extz /etc/opt/chrome/policies/managedz$/etc/opt/chrome/policies/recommendedc                     dS )NzGoogle/Chromers  rt  s    rY  rv  zgp_chrome_ext.__str__  s    r[  N)r  r  r  %_gp_chrome_ext__managed_policies_path)_gp_chrome_ext__recommended_policies_pathrv  rs  r[  rY  r  r    s/        @"H    r[  r  )r|  rP  samba.gp.gpclassr   samba.dcerpcr   samba.commonr   samba.gp.util.loggingr   rZ  re  ro  rq  r  rs  r[  rY  <module>r     s   " 
			  ' ' ' ' ' '       # # # # # # % % % % % %L L L\
3 3 3	  	  	 i i i i ij i i iV    O     r[  