ó
æ”\c           @   s>   d  d l  Z  d  d l Z e j j ƒ  Z d d d „  ƒ  YZ d S(   iÿÿÿÿNt   polkitc           B   s   e  Z d  „  Z d „  Z RS(   c         C   sL   t  j ƒ  |  _ |  j j d d d t ƒ|  _ t  j |  j d d ƒ|  _ d  S(   Ns   org.freedesktop.PolicyKit1s%   /org/freedesktop/PolicyKit1/Authorityt   follow_name_owner_changest   dbus_interfaces$   org.freedesktop.PolicyKit1.Authority(   t   dbust	   SystemBust   _bust
   get_objectt   Truet   _proxyt	   Interfacet
   _authority(   t   self(    (    s6   /usr/lib/python2.7/site-packages/tuned/utils/polkit.pyt   __init__   s    c   
      C   s   | d k s | d k r t Si  } d } d } d i | d 6f } y& |  j j | | | | | ƒ d } Wnˆ t j j t f k
 rñ } t j	 d | ƒ y |  j
 j | ƒ }	 Wn+ t j j k
 rÙ } t j	 d | ƒ d SX|	 d k rê d	 Sd
 Sn X| rü d Sd S(   sÿ   Check authorization, return codes:
			1  - authorized
			2  - polkit error, but authorized with fallback method
			0  - unauthorized
			-1 - polkit error and unauthorized by the fallback method
			-2 - polkit error and unable to use the fallback method
		i   t    s   system-bus-namet   namei    s   error querying polkit: %ss,   error using falback authorization method: %siþÿÿÿi   iÿÿÿÿN(   t   Nonet   FalseR
   t   CheckAuthorizationR   t
   exceptionst   DBusExceptiont
   ValueErrort   logt   errorR   t   get_unix_user(
   R   t   sendert	   action_idt   detailst   flagst   cancellation_idt   subjectt   rett   et   uid(    (    s6   /usr/lib/python2.7/site-packages/tuned/utils/polkit.pyt   check_authorization   s&    	&(   t   __name__t
   __module__R   R!   (    (    (    s6   /usr/lib/python2.7/site-packages/tuned/utils/polkit.pyR       s   	(    (   R   t
   tuned.logst   tunedt   logst   getR   R    (    (    (    s6   /usr/lib/python2.7/site-packages/tuned/utils/polkit.pyt   <module>   s   