org.freedesktop.PolicyKit1.Authority Interface
org.freedesktop.PolicyKit1.Authority Interface Authority Interface

## Methods

    Flags        CheckAuthorizationFlags
    Enumeration  ImplicitAuthorization
    ErrorDomain  org.freedesktop.PolicyKit1.Error.*
    Flags        AuthorityFeatures
    Structure    Subject
    Structure    Identity
    Structure    ActionDescription
    Structure    AuthorizationResult
    Structure    TemporaryAuthorization

    EnumerateActions                 (IN  String                         locale,
                                      OUT Array<ActionDescription>       action_descriptions)
    CheckAuthorization               (IN  Subject                        subject,
                                      IN  String                         action_id,
                                      IN  Dict<String,String>            details,
                                      IN  CheckAuthorizationFlags        flags,
                                      IN  String                         cancellation_id,
                                      OUT AuthorizationResult            result)
    CancelCheckAuthorization         (IN  String                         cancellation_id)
    RegisterAuthenticationAgent      (IN  Subject                        subject,
                                      IN  String                         locale,
                                      IN  String                         object_path)
    RegisterAuthenticationAgentWithOptions (IN  Subject                  subject,
                                      IN  String                         locale,
                                      IN  String                         object_path,
                                      IN  Dict<String,Variant>     options)
    UnregisterAuthenticationAgent    (IN  Subject                        subject,
                                      IN  String                         object_path)
    AuthenticationAgentResponse      (IN  String                         cookie,
                                      IN  Identity                       identity)
    AuthenticationAgentResponse2      (IN uint32 uid, IN  String                         cookie,
                                      IN  Identity                       identity)
    EnumerateTemporaryAuthorizations (IN  Subject                        subject,
                                      OUT Array<TemporaryAuthorization>  temporary_authorizations)
    RevokeTemporaryAuthorizations    (IN  Subject                        subject)
    RevokeTemporaryAuthorizationById (IN  String                         id)

## Signals

    Changed ()

## Properties

    BackendName         readable     String
    BackendVersion      readable     String
    BackendFeatures     readable     AuthorityFeatures

## Description

This D-Bus interface is implemented by the `/org/freedesktop/PolicyKit1/Authority` object on the well-known name `org.freedesktop.PolicyKit1` on the system message bus.

## Enumerations

### The CheckAuthorizationFlags Flags

    {
      None                 = 0x00000000,
      AllowUserInteraction = 0x00000001,
      AlwaysCheck          = 0x00000002
    }

Flags used in the CheckAuthorization() method.

`None`

  No flags set.

`AllowUserInteraction`

  If the Subject can obtain the authorization through authentication, and an authentication agent is available, then attempt to do so. Note, this means that the CheckAuthorization() method will block while the user is being asked to authenticate.

`AlwaysCheck`

  Check access against policy even if the Subject is the root user.

### The ImplicitAuthorization Enumeration

    {
      NotAuthorized                               = 0,
      AuthenticationRequired                      = 1,
      AdministratorAuthenticationRequired         = 2,
      AuthenticationRequiredRetained              = 3,
      AdministratorAuthenticationRequiredRetained = 4,
      Authorized                                  = 5
    }

An enumeration for granting implicit authorizations.

`NotAuthorized`

  The Subject is not authorized.

`AuthenticationRequired`

  Authentication is required.

`AdministratorAuthenticationRequired`

  Authentication as an administrator is required.

`AuthenticationRequiredRetained`

  Authentication is required. If the authorization is obtained, it is retained.

`AdministratorAuthenticationRequiredRetained`

  Authentication as an administrator is required. If the authorization is obtained, it is retained.

`Authorized`

  The subject is authorized.

### The org.freedesktop.PolicyKit1.Error.* Error Domain

    {
      org.freedesktop.PolicyKit1.Error.Failed,
      org.freedesktop.PolicyKit1.Error.Cancelled,
      org.freedesktop.PolicyKit1.Error.NotSupported,
      org.freedesktop.PolicyKit1.Error.NotAuthorized,
      org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique
    }

Errors that can be returned by various method calls.

`org.freedesktop.PolicyKit1.Error.Failed`

  The operation failed.

`org.freedesktop.PolicyKit1.Error.Cancelled`

  The operation was cancelled.

`org.freedesktop.PolicyKit1.Error.NotSupported`

  The operation is not supported.

`org.freedesktop.PolicyKit1.Error.NotAuthorized`

  You are not authorized to perform the requested operation.

`org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique`

  The passed cancellation_id is already in use.

### The AuthorityFeatures Flags

    {
      None                   = 0x00000000,
      TemporaryAuthorization = 0x00000001
    }

Flags describing features supported by the Authority implementation.

`None`

  No flags set.

`TemporaryAuthorization`

  The authority supports temporary authorizations that can be obtained through authentication.

## Structures

### The Subject Structure

    {
      String               subject_kind,
      Dict<String,Variant> subject_details
    }

This struct describes subjects such as UNIX processes. It is typically used to check if a given process is authorized for an action.

The following kinds of subjects are known:

Unix Process

`subject_kind` should be set to `unix-process` with keys `pidfd` (of type `int32`) and `uid` (of type `int32`) (if the operating system supports ProcessID File Descriptors), or alternatively with keys `pid` (of type `uint32`), `uid` (of type `int32`) and `start-time` (of type `uint64`).

Unix Session

`subject_kind` should be set to `unix-session` with the key `session-id` (of type `string`).

System Bus Name

`subject_kind` should be set to `system-bus-name` with the key `name` (of type `string`).

`String subject_kind`

  The type of the subject.

`Dict<String,Variant> subject_details`

  Details about the subject. Depending of the value of subject_kind, a set of well-defined key/value pairs are guaranteed to be available.

### The Identity Structure

    {
      String               identity_kind,
      Dict<String,Variant> identity_details
    }

This struct describes identities such as UNIX users and UNIX groups. It is typically used to check if a given process is authorized for an action.

The following kinds of identities are known:

Unix User

`identity_kind` should be set to `unix-user` with key `uid` (of type `uint32`).

Unix Group

`identity_kind` should be set to `unix-group` with key `gid` (of type `uint32`).

`String identity_kind`

  Type of identity.

`Dict<String,Variant> identity_details`

  Details about the identity. Depending of the value of identity_kind, a set of well-defined key/value pairs are guaranteed to be available.

### The ActionDescription Structure

    {
      String                action_id,
      String                description,
      String                message,
      String                vendor_name,
      String                vendor_url,
      String                icon_name,
      ImplicitAuthorization implicit_any,
      ImplicitAuthorization implicit_inactive,
      ImplicitAuthorization implicit_active,
      Dict<String,String>   annotations
    }

This struct describes actions registered with the PolicyKit daemon.

`String action_id`

  Action Identifier.

`String description`

  Localized description of the action.

`String message`

  Localized message to be displayed when making the user authenticate for an action.

`String vendor_name`

  Name of the provider of the action or the empty string.

`String vendor_url`

  A URL pointing to a place with more information about the action or the empty string.

`String icon_name`

  The themed icon describing the action or the empty string if no icon is set.

`ImplicitAuthorization implicit_any`

  A value from the ImplicitAuthorization. enumeration for implicit authorizations that apply to any Subject.

`ImplicitAuthorization implicit_inactive`

  A value from the ImplicitAuthorization. enumeration for implicit authorizations that apply any Subject in an inactive user session on the local console.

`ImplicitAuthorization implicit_active`

  A value from the ImplicitAuthorization. enumeration for implicit authorizations that apply any Subject in an active user session on the local console.

`Dict<String,String> annotations`

  Annotations for the action.

### The AuthorizationResult Structure

    {
      Boolean             is_authorized,
      Boolean             is_challenge,
      Dict<String,String> details
    }

Describes the result of calling CheckAuthorization().

`Boolean is_authorized`

  TRUE if the given Subject is authorized for the given action.

`Boolean is_challenge`

  TRUE if the given Subject could be authorized if more information was provided, and CheckAuthorizationFlags.AllowUserInteraction wasn't passed or no suitable authentication agent was available.

`Dict<String,String> details`

  Details for the result. Known key/value-pairs include `polkit.temporary_authorization_id` (if the authorization is temporary, this is set to the opaque temporary authorization id), `polkit.retains_authorization_after_challenge` (Set to a non-empty string if the authorization will be retained after authentication (if is_challenge is TRUE)), `polkit.dismissed` (Set to a non-empty string if the authentication dialog was dismissed by the user).

### The TemporaryAuthorization Structure

    {
      String  id,
      String  action_id,
      Subject subject,
      UInt64  time_obtained,
      UInt64  time_expires
    }

This struct describes a temporary authorization.

`String id`

  An opaque identifier for the temporary authorization.

`String action_id`

  The action the temporary authorization is for.

`Subject subject`

  The subject the temporary authorization is for.

`UInt64 time_obtained`

  When the temporary authorization was obtained, in seconds since the Epoch Jan 1, 1970 0:00 UTC. Note that the PolicyKit daemon is using monotonic time internally so the returned value may change if system time changes.

`UInt64 time_expires`

  When the temporary authorization is set to expire, in seconds since the Epoch Jan 1, 1970 0:00 UTC. Note that the PolicyKit daemon is using monotonic time internally so the returned value may change if system time changes.

## Method Details

### EnumerateActions ()

    EnumerateActions (IN  String                    locale,
                      OUT Array<ActionDescription>  action_descriptions)

Enumerates all registered PolicyKit actions.

`IN String locale`:

  The locale to get descriptions in or the blank string to use the system locale.

`OUT Array<ActionDescription> action_descriptions`:

  An array of ActionDescription structs.

### CheckAuthorization ()

    CheckAuthorization (IN  Subject                  subject,
                        IN  String                   action_id,
                        IN  Dict<String,String>      details,
                        IN  CheckAuthorizationFlags  flags,
                        IN  String                   cancellation_id,
                        OUT AuthorizationResult      result)

Checks if subject is authorized to perform the action with identifier action_id

If cancellation_id is non-empty and already in use for the caller, the org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique error is returned.

Note that CheckAuthorizationFlags.AllowUserInteraction SHOULD be passed ONLY if the event that triggered the authorization check is stemming from an user action, e.g. the user pressing a button or attaching a device.

`IN Subject subject`:

  A Subject struct.

`IN String action_id`:

  Identifier for the action that subject is attempting to do.

`IN Dict<String,String> details`:

  Details describing the action. Keys starting with `polkit.` are can only be set if defined in this document.

  Known keys include `polkit.message` and `polkit.gettext_domain` that can be used to override the message shown to the user. This latter is needed because the user could be running an authentication agent in another locale than the calling process.

  The (translated version of) `polkit.message` may include references to other keys that are expanded with their respective values. For example if the key `device_file` has the value `/dev/sda` then the message "`Authenticate to format $(device_file)`" is expanded to "`Authenticate to format /dev/sda`".

  The key `polkit.icon_name` is used to override the icon shown in the authentication dialog.

  If non-empty, then the request will fail with org.freedesktop.PolicyKit1.Error.Failed unless the process doing the check itsef is sufficiently authorized (e.g. running as uid 0).

`IN CheckAuthorizationFlags flags`:

  A set of CheckAuthorizationFlags.

`IN String cancellation_id`:

  A unique id used to cancel the the authentication check via CancelCheckAuthorization() or the empty string if cancellation is not needed.

`OUT AuthorizationResult result`:

  An AuthorizationResult structure.

### CancelCheckAuthorization ()

    CancelCheckAuthorization (IN  String  cancellation_id)

Cancels an authorization check.

`IN String cancellation_id`:

  The cancellation_id passed to CheckAuthorization().

### RegisterAuthenticationAgent ()

    RegisterAuthenticationAgent (IN  Subject  subject,
                                 IN  String   locale,
                                 IN  String   object_path)

Register an authentication agent.

Note that this should be called by same effective UID which will be passed to AuthenticationAgentResponse2().

`IN Subject subject`:

  The subject to register the authentication agent for, typically a session subject.

`IN String locale`:

  The locale of the authentication agent.

`IN String object_path`:

  The object path of authentication agent object on the unique name of the caller.

### RegisterAuthenticationAgentWithOptions ()

    RegisterAuthenticationAgentWithOptions (IN  Subject  subject,
                                            IN  String                   locale,
                                            IN  String                   object_path,
                                            IN  Dict<String,Variant>     options)

Like RegisterAuthenticationAgent but takes additional options. If the option `fallback` (of type `Boolean`) is TRUE, then the authentcation agent will only be used as a fallback, e.g. if another agent (without the `fallback` option set TRUE) is available, it will be used instead.

### UnregisterAuthenticationAgent ()

    UnregisterAuthenticationAgent (IN  Subject  subject,
                                   IN  String   object_path)

Unregister an authentication agent.

`IN Subject subject`:

  The subject passed to RegisterAuthenticationAgent().

`IN String object_path`:

  The object_path passed to RegisterAuthenticationAgent().

### AuthenticationAgentResponse ()

    AuthenticationAgentResponse (IN  String    cookie,
                                 IN  Identity  identity)

Method for authentication agents to invoke on successful authentication, intended only for use by a privileged helper process internal to polkit. This method will fail unless a sufficiently privileged +caller invokes it. Deprecated in favor of AuthenticationAgentResponse2().

`IN String cookie`:

  The cookie identifying the authentication request that was passed to the authentication agent.

`IN Identity identity`:

  A Identity struct describing what identity was authenticated.

### AuthenticationAgentResponse2 ()

    AuthenticationAgentResponse2 (IN  uint32 uid,
                                  IN  String cookie,
                                  IN  Identity  identity)

Method for authentication agents to invoke on successful authentication, intended only for use by a privileged helper process internal to polkit. This method will fail unless a sufficiently privileged caller invokes it. Note this method was introduced in 0.114 and should be preferred over AuthenticationAgentResponse() as it fixes a security issue.

`IN uint32 uid`:

  The user id of the agent; normally this is the owner of the parent pid of the process that invoked the internal setuid helper.

`IN String cookie`:

  The cookie identifying the authentication request that was passed to the authentication agent.

`IN Identity identity`:

  A Identity struct describing what identity was authenticated.

### EnumerateTemporaryAuthorizations ()

    EnumerateTemporaryAuthorizations (IN  Subject                        subject,
                                      OUT Array<TemporaryAuthorization>  temporary_authorizations)

Retrieves all temporary authorizations that applies to subject.

`IN Subject subject`:

  The subject to get temporary authorizations for.

`OUT Array<TemporaryAuthorization> temporary_authorizations`:

  An array of TemporaryAuthorization structs.

### RevokeTemporaryAuthorizations ()

    RevokeTemporaryAuthorizations (IN  Subject  subject)

Revokes all temporary authorizations that applies to subject.

`IN Subject subject`:

  The subject to revoke temporary authorizations from.

### RevokeTemporaryAuthorizationById ()

    RevokeTemporaryAuthorizationById (IN  String  id)

Revokes all temporary authorizations that applies to subject.

`IN String id`:

  The opaque identifier of the temporary authorization.

## Signal Details

### The "Changed" signal

    Changed ()

This signal is emitted when actions and/or authorizations change

## Property Details

### The "BackendName" property

    BackendName     readable     String

The name of the currently used Authority backend.

### The "BackendVersion" property

    BackendVersion     readable     String

The version of the currently used Authority backend.

### The "BackendFeatures" property

    BackendFeatures     readable     AuthorityFeatures

The features supported by the currently used Authority backend.