## InfGtkPermissionsDialog InfGtkPermissionsDialog — A dialog to view and modify the ACL of a directory node |

## Stability Level

Unstable, unless otherwise indicated

## Functions

InfGtkPermissionsDialog * | inf_gtk_permissions_dialog_new ()
void | inf_gtk_permissions_dialog_set_node ()

## Properties

InfBrowser * | browser | Read / Write / Construct Only
InfBrowserIter * | browser-iter | Read / Write / Construct Only

## Types and Values

struct | InfGtkPermissionsDialog
struct | InfGtkPermissionsDialogClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBin
                        ╰── GtkWindow
                            ╰── GtkDialog
                                ╰── InfGtkPermissionsDialog

## Implemented Interfaces

InfGtkPermissionsDialog implements AtkImplementorIface and GtkBuildable.

## Includes

    #include <libinfgtk/inf-gtk-permissions-dialog.h>

## Description

InfGtkPermissionsDialog is a dialog widget which allows to view and modify the ACL of a node in a infinote directory. It shows a list of all available users and allows the permissions for each of them to be changed, using a InfGtkAclSheetView widget.

If the "can-query-acl" permission is not granted for the local user, the dialog only shows the permissions for the default user and the local user. The dialog also comes with a status text to inform the user why certain functionality is not available.

The dialog class reacts to changes to the ACL in real time, and also if the node that is being monitored is removed.

## Functions

### inf_gtk_permissions_dialog_new ()

    InfGtkPermissionsDialog *
    inf_gtk_permissions_dialog_new (GtkWindow *parent,
                                    GtkDialogFlags dialog_flags,
                                    InfBrowser *browser,
                                    const InfBrowserIter *iter);

Creates a new InfGtkPermissionsDialog, showing the ACL for the node `iter` points to inside `browser` . If `browser` is `NULL`, `iter` must be `NULL`, too. In that case no permissions are shown, and the node to be shown can be set later with `inf_gtk_permissions_dialog_set_node()`.

[constructor]

#### Parameters

parent | Parent GtkWindow of the dialog. |
dialog_flags | Flags for the dialog, see GtkDialogFlags. |
browser | The InfBrowser containing the node to show permissions for, or `NULL`. | [allow-none]
iter | An iterator pointing to the node to show permissions for, or `NULL`. | [allow-none]

#### Returns

A new InfGtkPermissionsDialog. Free with `gtk_widget_destroy()` when no longer needed.

[transfer full]

### inf_gtk_permissions_dialog_set_node ()

    void
    inf_gtk_permissions_dialog_set_node (InfGtkPermissionsDialog *dialog,
                                         InfBrowser *browser,
                                         const InfBrowserIter *iter);

Changes the node the dialog shows permissions for. To unset the node, both `browser` and `iter` should be `NULL`.

#### Parameters

dialog | A InfGtkPermissionsDialog. |
browser | The InfBrowser containing the node to show permissions for, or `NULL`. | [allow-none]
iter | An iterator pointing to the node to show permissions for, or `NULL`. | [allow-none]

## Types and Values

### struct InfGtkPermissionsDialog

    struct InfGtkPermissionsDialog;

InfGtkPermissionsDialog is an opaque data type. You should only access it via the public API functions.

### struct InfGtkPermissionsDialogClass

    struct InfGtkPermissionsDialogClass {
    };

This structure does not contain any public fields.

## Property Details

### The `“browser”` property

      “browser”                  InfBrowser *

The browser with the node for which to show the permissions.

Flags: Read / Write / Construct Only

### The `“browser-iter”` property

      “browser-iter”             InfBrowserIter *

An iterator pointing to the node inside the browser for which to show the permissions.

Flags: Read / Write / Construct Only