## PolkitBackendInteractiveAuthority PolkitBackendInteractiveAuthority — Interactive Authority |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

                        PolkitBackendInteractiveAuthority;
    struct              PolkitBackendInteractiveAuthorityClass;
    GList *             polkit_backend_interactive_authority_get_admin_identities
                                                            (PolkitBackendInteractiveAuthority *authority,
                                                             PolkitSubject *caller,
                                                             PolkitSubject *subject,
                                                             PolkitIdentity *user_for_subject,
                                                             const gchar *action_id,
                                                             PolkitDetails *details);
    PolkitImplicitAuthorization polkit_backend_interactive_authority_check_authorization_sync
                                                            (PolkitBackendInteractiveAuthority *authority,
                                                             PolkitSubject *caller,
                                                             PolkitSubject *subject,
                                                             PolkitIdentity *user_for_subject,
                                                             gboolean subject_is_local,
                                                             gboolean subject_is_active,
                                                             const gchar *action_id,
                                                             PolkitDetails *details,
                                                             PolkitImplicitAuthorization implicit,
                                                             PolkitDetails *out_details);

## Object Hierarchy

      GObject
       +----PolkitBackendAuthority
             +----PolkitBackendInteractiveAuthority
                   +----PolkitBackendLocalAuthority

## Description

An subclass of PolkitBackendAuthority that supports interaction with authentication agents.

## Details

### PolkitBackendInteractiveAuthority

    typedef struct _PolkitBackendInteractiveAuthority PolkitBackendInteractiveAuthority;

The PolkitBackendInteractiveAuthority struct should not be accessed directly.

### struct PolkitBackendInteractiveAuthorityClass

    struct PolkitBackendInteractiveAuthorityClass {
      PolkitBackendAuthorityClass parent_class;

      /* VTable */
      GList *                     (*get_admin_identities)          (PolkitBackendInteractiveAuthority *authority,
                                                                    PolkitSubject                     *caller,
                                                                    PolkitSubject                     *subject,
                                                                    PolkitIdentity                    *user_for_subject,
                                                                    const gchar                       *action_id,
                                                                    PolkitDetails                     *details);

      PolkitImplicitAuthorization (*check_authorization_sync) (PolkitBackendInteractiveAuthority *authority,
                                                               PolkitSubject                     *caller,
                                                               PolkitSubject                     *subject,
                                                               PolkitIdentity                    *user_for_subject,
                                                               gboolean                           subject_is_local,
                                                               gboolean                           subject_is_active,
                                                               const gchar                       *action_id,
                                                               PolkitDetails                     *details,
                                                               PolkitImplicitAuthorization        implicit,
                                                               PolkitDetails                     *out_details);
    };

Class structure for PolkitBackendInteractiveAuthority.

PolkitBackendAuthorityClass `parent_class`; | The parent class.
`get_admin_identities` () | Returns list of identities for administrator authentication or `NULL` to use the default implementation. See `polkit_backend_interactive_authority_get_admin_identities()` for details.
`check_authorization_sync` () | Checks for an authorization or `NULL` to use the default implementation. See `polkit_backend_interactive_authority_check_authorization_sync()` for details.

### polkit_backend_interactive_authority_get_admin_identities ()

    GList *             polkit_backend_interactive_authority_get_admin_identities
                                                            (PolkitBackendInteractiveAuthority *authority,
                                                             PolkitSubject *caller,
                                                             PolkitSubject *subject,
                                                             PolkitIdentity *user_for_subject,
                                                             const gchar *action_id,
                                                             PolkitDetails *details);

Gets a list of identities to use for administrator authentication.

The default implementation returns a list with a single element for the super user.

`authority` : | A PolkitBackendInteractiveAuthority.
`caller` : | The subject that is inquiring whether `subject` is authorized.
`subject` : | The subject we are about to authenticate for.
`user_for_subject` : | The user of the subject we are about to authenticate for.
`action_id` : | The action we are about to authenticate for.
`details` : | Details about the action.
Returns : | A list of PolkitIdentity objects. Free each element `g_object_unref()`, then free the list with `g_list_free()`.

### polkit_backend_interactive_authority_check_authorization_sync ()

    PolkitImplicitAuthorization polkit_backend_interactive_authority_check_authorization_sync
                                                            (PolkitBackendInteractiveAuthority *authority,
                                                             PolkitSubject *caller,
                                                             PolkitSubject *subject,
                                                             PolkitIdentity *user_for_subject,
                                                             gboolean subject_is_local,
                                                             gboolean subject_is_active,
                                                             const gchar *action_id,
                                                             PolkitDetails *details,
                                                             PolkitImplicitAuthorization implicit,
                                                             PolkitDetails *out_details);

Checks whether `subject` is authorized to perform the action specified by `action_id` and `details`. The implementation may append key/value pairs to `out_details` to return extra information to `caller`.

The default implementation of this method simply returns `implicit`.

`authority` : | A PolkitBackendInteractiveAuthority.
`caller` : | The subject that is inquiring whether `subject` is authorized.
`subject` : | The subject we are checking an authorization for.
`user_for_subject` : | The user of the subject we are checking an authorization for.
`subject_is_local` : | `TRUE` if the session for `subject` is local.
`subject_is_active` : | `TRUE` if the session for `subject` is active.
`action_id` : | The action we are checking an authorization for.
`details` : | Details about the action.
`implicit` : | A PolkitImplicitAuthorization value computed from the policy file and `subject`.
`out_details` : | A PolkitDetails object that will be return to `caller`.
Returns : | A PolkitImplicitAuthorization that specifies if the subject is authorized or whether authentication is required.