a i @stddlZddlZddlmZddlmZmZmZddlm Z ddl m Z ddl m Z mZmZmZGddde ZdS) N)config)dbus_to_python%dbus_introspection_prepare_properties!dbus_introspection_add_properties)log)DbusServiceObject)handle_exceptionsdbus_handle_exceptionsdbus_service_methoddbus_polkit_require_authcseZdZdZejjZefddZ e ddZ e ddZ e dd Z eejd d d e d/ddZeejddd e d0ddZeejjeejdde d1ddZejjejddddZeejjeejdde d2fdd Zeejjdde d3dd Zeejjdde d4d!d"Zeejje d5d#d$Zejjejjdde d%d&Zeejje d6d'd(Zejjejjdde d)d*Z eejjdde d7d+d,Z!ejjejjdde d-d.Z"Z#S)8FirewallDConfigPolicyTcs`tt|j|i|||_||_||_||_|d|_|d|_d|j|_ t |tj j dS)Nrzconfig.policy.%d) superr __init__parentrobjitem_idbusnamepath _log_prefixrdbusDBUS_INTERFACE_CONFIG_POLICY)selfrZconfZpolicyrargskwargs __class__A/usr/lib/python3.9/site-packages/firewall/server/config_policy.pyrs   zFirewallDConfigPolicy.__init__cCsdSNrrrrr__del__#szFirewallDConfigPolicy.__del__cCs |dSr)Zremove_from_connectionr rrr unregister'sz FirewallDConfigPolicy.unregistercCs|dkrt|jjS|dkr,t|jjS|dkrBt|jjS|dkrXt|jjS|dkrnt|jjStj d|dS)NnamefilenamerdefaultbuiltinzDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist) rStringrr#r$rZBooleanr%r& exceptions DBusException)r property_namerrr _get_property/sz#FirewallDConfigPolicy._get_propertyssv) in_signature out_signatureNcCsLt|t}t|t}td|j|||tjjkrBtj d|| |S)Nz%s.Get('%s', '%s')Jorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist) rstrrdebug1rrrrr(r)r+)rinterface_namer*senderrrrGet@s    zFirewallDConfigPolicy.Getsza{sv}cCs`t|t}td|j||tjjkr6tj d|i}dD]}| |||<q>tj |ddS)Nz%s.GetAll('%s')r0)r#r$rr%r&svZ signature) rr1rr2rrrrr(r)r+Z Dictionary)rr3r4retxrrrGetAllQs  zFirewallDConfigPolicy.GetAllZssv)r.cCslt|t}t|t}t|}td|j||||j||tjj krXtj d|tj d|dS)Nz%s.Set('%s', '%s', '%s')r0zGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-only) rr1rr2rr accessCheckrrrr(r))rr3r*Z new_valuer4rrrSetbs$     zFirewallDConfigPolicy.Setzsa{sv}asr8cCs2t|t}t|}t|}td|j|||dS)Nz&%s.PropertiesChanged('%s', '%s', '%s'))rr1rr2r)rr3Zchanged_propertiesZinvalidated_propertiesrrrPropertiesChangedvs   z'FirewallDConfigPolicy.PropertiesChanged)r/cs8td|jtt||j|j}t ||t j j S)Nz%s.Introspect()) rZdebug2rrr IntrospectrrZget_busrrrr)rr4datarrrr?s   z FirewallDConfigPolicy.IntrospectcCs td|j|j|j}|S)z get settings for policy z%s.getSettings())rr2rrZget_policy_object_config_dictr)rr4settingsrrr getSettingssz!FirewallDConfigPolicy.getSettingscCsFt|}td|j|j||j|j||_| |jj dS)z#update settings for policy z%s.update('...')N) rrr2rrr<rZset_policy_object_config_dictrUpdatedr#)rrAr4rrrupdates  zFirewallDConfigPolicy.updatecCs<td|j|j||j|j|_||jj dS)z1load default settings for builtin policy z%s.loadDefaults()N) rr2rrr<rZload_policy_object_defaultsrrCr#rr4rrr loadDefaultss z"FirewallDConfigPolicy.loadDefaultscCstd|j|fdS)Nz%s.Updated('%s')rr2rrr#rrrrCszFirewallDConfigPolicy.UpdatedcCs:td|j|j||j|j|j|jdS)zremove policy z%s.removePolicy()N) rr2rrr<rZremove_policy_objectrZ removePolicyrErrrremoves zFirewallDConfigPolicy.removecCstd|j|fdS)Nz%s.Removed('%s')rGrHrrrRemovedszFirewallDConfigPolicy.RemovedcCsFt|t}td|j||j||j|j ||_ | |dS)zrename policy z%s.rename('%s')N) rr1rr2rrr<rZrename_policy_objectrRenamed)rr#r4rrrrenames   zFirewallDConfigPolicy.renamecCstd|j|fdS)Nz%s.Renamed('%s')rGrHrrrrKszFirewallDConfigPolicy.Renamed)N)N)N)N)N)N)N)N)N)$__name__ __module__ __qualname__Z persistentrrZPK_ACTION_CONFIGZdefault_polkit_auth_requiredrrr r!r"r+r ZPROPERTIES_IFACEr5r;r r=Zservicesignalr>ZPK_ACTION_INFOZINTROSPECTABLE_IFACEr?rrBrDrFrCrIrJrLrK __classcell__rrrrr sx               r )rZ dbus.serviceZfirewallrZfirewall.dbus_utilsrrrZfirewall.core.loggerrZfirewall.server.dbusrZfirewall.server.decoratorsrr r r r rrrrs