
    ehB                         d dl Z d dlZd dlmZ d dlZ ej
                  dd       d dlmZmZm	Z	 d dl
mZmZ ddlmZ dd	lmZ dd
lmZ  G d d      Z G d de      Zy)    N)gettextGtkz3.0)	GdkPixbufGior   )current_distrois_dark_theme   )DialogUaAttach)DialogUaDetach)DialogUaFipsEnablec                       e Zd Zd Zy)	UaServicec                 J    || _         || _        || _        || _        d| _        y NF)
bus_objectnameentitledstatusrequest_in_progress)selfr   r   r   r   s        F/usr/lib/python3/dist-packages/softwareproperties/gtk/UbuntuProPage.py__init__zUaService.__init__    s&    $	 #(     N)__name__
__module____qualname__r    r   r   r   r      s    )r   r   c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)UbuntuProPagec                     | _         |j                   _        |j                   _        |j                   _        |j                   _        |j
                   _        |j                   _        |j                   _        |j                   _        |j                   _	        t        d      t        d      d _        |j                   _        |j                   _        |j                   _        t        d      t        d      d _        |j                    _        |j"                   _        |j$                   _        |j&                   _        t        d      t        d      d _        |j*                   _        |j,                   _        |j.                   _        |j0                   _        |j2                   _        |j4                   _        |j6                   _        t9         j                        rKt:        j<                  j?                  t@        jB                  jE                  |jF                  d      d	d
d      }nJt:        j<                  j?                  t@        jB                  jE                  |jF                  d      d	d
d      }|jH                  jK                  |        j                  jM                  d       |jN                  jQ                  d jR                         |jT                  jQ                  d jV                          j                  jQ                  d jX                         _-         j                  jQ                  d j\                         _/         j                   jQ                  d j`                         _1        |j*                  jQ                  d jd                         |j0                  jQ                  d jf                         |jh                  jQ                  d jj                         tm               }|jn                  e|jn                  jp                  } j                  js                  t        d      |z          j                  js                  t        d      |z         nH j                  js                  t        d              j                  js                  t        d             d  _:        tv        jx                  j{                         }|K|j}                  dd      }|7tv        j~                  j                  d      }|j                  d      r| _:         jt                  r j"                  jQ                  d j                         _C         jt                  jQ                  d j                         _E         j                   jt                  d       t        j                         j                  dd       _I        d _J        i  _K         fd} fd}	 fd}
j                  dd      }|j                  d|d !       |j                  d"|	d !       j                  |
dd#d$d%&       |j                  d !      }|D ]  } ||||           y )'Nz-Could not enable ESM Infra. Please try again.z.Could not disable ESM Infra. Please try again.)enabledisablez,Could not enable ESM Apps. Please try again.z-Could not disable ESM Apps. Please try again.z-Could not enable Livepatch. Please try again.z.Could not disable Livepatch. Please try again.zubuntu-pro-logo-dark.svg2   Tzubuntu-pro-logo.svgclickedznotify::activeznotify::expandedzX<b>ESM Infra</b> provides security updates for over 2,300 Ubuntu Main packages until %d.z]<b>ESM Apps</b>; provides security updates for over 23,000 Ubuntu Universe packages until %d.zO<b>ESM Infra</b> provides security updates for over 2,300 Ubuntu Main packages.zT<b>ESM Apps</b>; provides security updates for over 23,000 Ubuntu Universe packages.zcom.ubuntu.update-notifiershow-livepatch-status-icontoggledz#changed::show-livepatch-status-iconcom.canonical.UbuntuAdvantage&/com/canonical/UbuntuAdvantage/ManagerFc                     | dk(  r|d   d   _         nX| j                  d      rG|j                  d      }j                  d|       }t	        ||d   |d   |d	         j
                  | <   j                          y )
Nr)   %com.canonical.UbuntuAdvantage.ManagerAttached(/com/canonical/UbuntuAdvantage/Services/%com.canonical.UbuntuAdvantage.Servicer(   NameEntitledStatus)attached
startswithget
get_objectr   servicesupdate_status)pathinterfaces_and_properties
propertiesr   busr   s       r   on_interfaces_addedz3UbuntuProPage.__init__.<locals>.on_interfaces_added   s    ?? 9:a bcm n!KL6::;bc
 ^^,KTR
&/
Jv<NPZ[ePfhrs{h|&}d# r   c                 d    d|v rj                   j                  |        j                          y )Nr.   )r6   popr7   )r8   
interfacesr   s     r   on_interfaces_removedz5UbuntuProPage.__init__.<locals>.on_interfaces_removed   s)    6*D!!$' r   c                 "   d }|dk(  r| dk(  r ||dj                         _         nW|j                  d      rF| dk(  rAj                  |   } ||d|j                        |_         ||d|j                        |_        j                          y )	Nc                 0    | j                  |      }||}|S N)r4   )r:   r   defaultvalues       r   get_propertyzKUbuntuProPage.__init__.<locals>.on_properties_changed.<locals>.get_property   s    "t,=#Er   r)   r+   r,   r-   r.   r0   r1   )r2   r3   r6   r   r   r7   )	interfacechanged_propertiesinvalidated_propertiesr8   rF   servicer   s         r   on_properties_changedz5UbuntuProPage.__init__.<locals>.on_properties_changed   s    
 ??IQxDx ,-?T]] [!KLQZ  _F  RF---#/0BJPWP`P`#a !-.@(GNN![ r   /InterfacesAddedz"org.freedesktop.DBus.ObjectManager)dbus_interfaceInterfacesRemovedPropertiesChangedzorg.freedesktop.DBus.Propertiesr8   )bus_namesignal_namerN   path_keyword)O_parentstack_ua_attachbox_ua_attachedbox_ua_unattachedstack_ua_mainbox_ua_optionsbox_ua_fips_setupswitch_ua_esm_infralabel_ua_esm_infralabel_ua_esm_infra_error_!label_ua_esm_infra_error_messagesswitch_ua_esm_appslabel_ua_esm_appslabel_ua_esm_apps_error label_ua_esm_apps_error_messagesswitch_ua_livepatchcheckbutton_livepatch_topbarlabel_ua_livepatchlabel_ua_livepatch_error!label_ua_livepatch_error_messagesbutton_ua_fipslabel_ua_fips_statuslabel_ua_fips_descriptionbutton_ua_usglabel_ua_usg_buttonlabel_ua_usg_statuslabel_ua_usg_descriptionr   r   Pixbufnew_from_file_at_scaleosr8   joindatadirimage_ubuntu_pro_logoset_from_pixbufset_visiblebutton_ua_attachconnecton_button_ua_attach_clickedbutton_ua_detachon_button_ua_detach_clickedon_ua_esm_infra_changedon_ua_esm_infra_changed_handleron_ua_esm_apps_changedon_ua_esm_apps_changed_handleron_ua_livepatch_changedon_ua_livepatch_changed_handleron_button_ua_fips_clickedon_button_ua_usg_clicked!expander_compliance_and_hardening*on_compliance_and_hardening_expand_changedr   eol_esmyear
set_markupupdate_notifier_settingsr   SettingsSchemaSourceget_defaultlookupSettingsnewhas_key'on_checkbutton_livepatch_topbar_toggled/on_checkbutton_livepatch_topbar_toggled_handler#on_update_notifier_settings_changed+on_update_notifier_settings_changed_handlerdbus	SystemBusr5   	ua_objectr2   r6   connect_to_signaladd_signal_receiverGetManagedObjects)r   parentubuntu_pro_logodistroeol_yearsourceschemasettingsr<   r@   rK   object_manager_objectobjectsr8   r;   s   `             @r   r   zUbuntuProPage.__init__)   s   %55%55!'!9!9#11$33!'!9!9#)#=#= "(";";(.(G(G%GHIJ2
. #)";";!'!9!9'-'E'E$FGHI1
- $*#=#= ,2,O,O)"(";";(.(G(G%GHIJ2
. %33$*$?$?!)/)I)I&#11#)#=#= #)#=#= (.(G(G%--.'..EEbggllSYSaSac}F~  AC  EG  IM  NO'..EEbggllSYSaSacxFy{}  @B  DH  IO$$44_E 	&&t,''	43S3ST''	43S3ST/3/G/G/O/OP`bfb~b~/,.2.E.E.M.MN^`d`{`{.|+/3/G/G/O/OP`bfb~b~/,%%i1O1OP$$Y0M0MN00889KTM|M|}  !>>%~~**H##..q  2L  0M  PX  0X  Y""--a  1P  /Q  T\  /\  ]##..q  2C  0D  E""--a  1G  /H  I(,%))557]]#?FF!<<++,HI>>">?4<D1((4CGCdCdClClmvx|  ye  ye  DfD@?C?\?\?d?d  fK  MQ  Mu  Mu  @vD<44T5R5RTpqnn(GIqr 	!	!	! !$/NPS T//0ACV  hL/  	M//0CEZ  lP/  	Q 5@_  nA  Rs  BH  	I'99Im9n 	5Dgdm4	5r   c                 h    | j                   j                         D ]  }|j                  |k(  s|c S  y rC   )r6   valuesr   )r   r   rJ   s      r   get_servicezUbuntuProPage.get_service   s4    }}++- 	G||t#	 r   c                    | j                   r&| j                  j                  | j                         n%| j                  j                  | j                         d }d }d fd}| j                  d      }| j                  | j                  | j                  fD ]$  }|j                   ||      xr	  ||              &  || j                  || j                         | j                  d      }| j                  | j                  | j                  fD ]$  }|j                   ||      xr	  ||              &  || j                  || j                         | j                  d      }| j                  | j                   | j"                  fD ]$  }|j                   ||      xr	  ||              &  || j                  || j$                         | j&                  j                  | j(                  d uxr | j                  j+                                | j                  d      }| j                  d	      }	 ||      xs  ||	      }
| j,                  j                   ||      xr |
        |
r&| j.                  j                  | j0                         n%| j.                  j                  | j2                         | j                  d
      } ||      sQ |      r%| j4                  j7                  t9        d             n$| j4                  j7                  t9        d             | j:                  j                   ||      xr	  ||              y )Nc                 ,    | d uxr | j                   dk(  S )Nyes)r   rJ   s    r   entitled_to_servicez8UbuntuProPage.update_status.<locals>.entitled_to_service   s    $&D7+;+;u+DDr   c                 &    | d uxr | j                   S rC   )r   r   s    r   service_request_in_progressz@UbuntuProPage.update_status.<locals>.service_request_in_progress   s    $&F7+F+FFr   c                 ,    | d uxr | j                   dk(  S )Nenabled)r   r   s    r   service_is_enabledz7UbuntuProPage.update_status.<locals>.service_is_enabled   s    $&F7>>Y+FFr   c                     ||j                   ry | j                  |       | j                   |             | j                  |       y rC   )r   handler_block
set_activehandler_unblock)switchrJ   handlerr   s      r   update_switchz2UbuntuProPage.update_status.<locals>.update_switch   sD    "w'B'B  )09:""7+r   	esm-infraesm-apps	livepatchfipszfips-updatesusgzDisable _USGzEnable _USG)r2   rU   set_visible_childrV   rW   r   r[   r\   r]   set_sensitiver~   r`   ra   rb   r   rd   rf   rg   r   re   r   
get_activeri   rX   rZ   rY   rm   	set_labelr^   rl   )r   r   r   r   esm_infra_servicewidgetesm_apps_servicelivepatch_servicefips_servicefips_updates_servicefips_in_progressusg_servicer   s               @r   r7   zUbuntuProPage.update_status   s   ==  2243G3GH  2243I3IJ	E	G	G	, !,,[9//1H1H$JgJgh 	@F  !45F!G!~Pkl}P~L~	@d..0A4CgCgh++J7..0F0FHdHde 	~F  !45E!F!|Ojk{O|K|}	~d--/?AdAde ,,[9//1H1H$JgJgh 	@F  !45F!G!~Pkl}P~L~	@d..0A4CgCgh))778U8U]a8a  9Lfjf~f~  gJ  gJ  gL  	M''/#//?6|DyHcdxHy))*=l*K*dTdPde001G1GH001D1DE&&u-*;7!+.((221^3DE((221]3CD(()<[)I)zRmnyRzNz{r   c                     t        | j                  j                  | j                  j                  | j                        }|j                          y rC   )r
   rT   window_mainrt   r   runr   buttondialogs      r   rz   z)UbuntuProPage.on_button_ua_attach_clicked   4     8 8$,,:N:NPTP^P^_

r   c                     t        | j                  j                  | j                  j                  | j                        }|j                          y rC   )r   rT   r   rt   r   r   r   s      r   r|   z)UbuntuProPage.on_button_ua_detach_clicked   r   r   c                 *    j                  d        j                  |      y  fd} fd}r j                  j                  ||dd       nj                  j	                  ||dd       d_         j                          y )NFc                  4    d_          j                          y r   )r   r7   )r   rJ   s   r   on_replyz3UbuntuProPage.set_service_enabled.<locals>.on_reply   s    */G' r   c                     t        |        <j                  d       rj                  d          nj                  d          d_        j	                          y )NTr!   r"   F)printrw   r   r   r7   )errorr   error_labelerror_label_messagesr   rJ   s    r   on_errorz3UbuntuProPage.set_service_enabled.<locals>.on_error   s]    %L&''-))*>x*HI))*>y*IJ*/G' r   r.   iX  )reply_handlererror_handlerrN   timeoutT)rw   r   r   EnableDisabler   r7   )r   service_namer   r   r   r   r   rJ   s   ` ```  @r   set_service_enabledz!UbuntuProPage.set_service_enabled   s    "##E*""<0?	!		! 		! %%HH  fM  WZ%  [&&XX  gN  X[&  \&*#r   c                     | j                  d| j                  j                         | j                  | j                         y )Nr   )r   r[   r   r]   r_   r   r   params      r   r}   z%UbuntuProPage.on_ua_esm_infra_changed   >      d.F.F.Q.Q.SUYUrUrtx  u[  u[  	\r   c                     | j                  d| j                  j                         | j                  | j                         y )Nr   )r   r`   r   rb   rc   r   s      r   r   z$UbuntuProPage.on_ua_esm_apps_changed  s>      T-D-D-O-O-QSWSoSoqu  rW  rW  	Xr   c                     | j                  d| j                  j                         | j                  | j                         y )Nr   )r   rd   r   rg   rh   r   s      r   r   z%UbuntuProPage.on_ua_livepatch_changed  r   r   c                     | j                   j                  | j                         | j                   j                  d| j                  j                                | j                   j                  | j                         y Nr&   )r   r   r   set_booleanre   r   r   )r   r   s     r   r   z5UbuntuProPage.on_checkbutton_livepatch_topbar_toggled  s]    %%33D4d4de%%112NPTPqPqP|P|P~%%55d6f6fgr   c                     | j                   j                  | j                         | j                   j                  | j                  j                  d             | j                   j                  | j                         y r   )re   r   r   r   r   get_booleanr   )r   r   keys      r   r   z1UbuntuProPage.on_update_notifier_settings_changed  s\    ))778l8lm))44T5R5R5^5^_{5|}))99$:n:nor   c                    t        | j                  j                  | j                  j                  | j                        }|j                         }|y t        j                  | j                  j                  t        j                  j                  t        j                  j                  d       }|j                  t        d      t        j                  j                         |j                  t        d      t        j                  j                          |j#                  t        d             |j                         }|j%                          |t        j                  j                   k7  ry | j'                  |dd d        y )N)r   flagstypemessage_formatzNo, go backzEnable FIPSzmEnabling FIPS could take a few minutes. This action cannot be reversed. Are you sure you want to enable FIPS?T)r   rT   r   rt   r   r   r   MessageDialogDialogFlagsMODALMessageTypeQUESTION
add_buttonr^   ResponseTypeCANCELOKr   destroyr   )r   r   r   r   results        r   r   z'UbuntuProPage.on_button_ua_fips_clicked  s   #DLL$<$<dll>R>RTXTbTbczz|""$,,*B*B),)>)>(+(@(@268 	!M*C,<,<,C,CD!M*C,<,<,?,?@!  L  M  	NS%%(((  tT4@r   c                 z    | j                  d      }|d uxr |j                  dk(  }| j                  d| d d        y )Nr   r   )r   r   r   )r   r   rJ   
is_enableds       r   r   z&UbuntuProPage.on_button_ua_usg_clicked%  s@    ""5)D(HW^^y-H
  JdCr   c                 P    | j                   j                  j                  dd       y )Nr	   )rT   r   resize)r   r   r   s      r   r   z8UbuntuProPage.on_compliance_and_hardening_expand_changed*  s      ''1-r   N)r   r   r   r   r   r7   rz   r|   r   r}   r   r   r   r   r   r   r   r   r   r   r   r   '   sS    v5p3|j4\X\h
p
A(D
.r   r   )r   rr   r   r^   girequire_versiongi.repositoryr   r   r   softwareproperties.gtk.utilsr   r   r
   r   r   r   objectr   r   r   r   <module>r     sO   &  	   	   5%   - - F * * 2) )D.F D.r   