## Item ACLs

Item ACLs — Access control lists for keyring items.

## Synopsis

    typedef             GnomeKeyringAccessControl;
    typedef             GnomeKeyringApplicationRef;
    enum                GnomeKeyringAccessType;
    GnomeKeyringApplicationRef * gnome_keyring_application_ref_new
                                                            (void);
    GnomeKeyringApplicationRef * gnome_keyring_application_ref_copy
                                                            (const GnomeKeyringApplicationRef *app);
    void                gnome_keyring_application_ref_free  (GnomeKeyringApplicationRef *app);
    GnomeKeyringAccessControl * gnome_keyring_access_control_new
                                                            (const GnomeKeyringApplicationRef *application,
                                                             GnomeKeyringAccessType types_allowed);
    GnomeKeyringAccessControl * gnome_keyring_access_control_copy
                                                            (GnomeKeyringAccessControl *ac);
    void                gnome_keyring_access_control_free   (GnomeKeyringAccessControl *ac);
    GList *             gnome_keyring_acl_copy              (GList *list);
    void                gnome_keyring_acl_free              (GList *acl);
    char *              gnome_keyring_item_ac_get_display_name
                                                            (GnomeKeyringAccessControl *ac);
    void                gnome_keyring_item_ac_set_display_name
                                                            (GnomeKeyringAccessControl *ac,
                                                             const char *value);
    char *              gnome_keyring_item_ac_get_path_name (GnomeKeyringAccessControl *ac);
    void                gnome_keyring_item_ac_set_path_name (GnomeKeyringAccessControl *ac,
                                                             const char *value);
    GnomeKeyringAccessType  gnome_keyring_item_ac_get_access_type
                                                            (GnomeKeyringAccessControl *ac);
    void                gnome_keyring_item_ac_set_access_type
                                                            (GnomeKeyringAccessControl *ac,
                                                             const GnomeKeyringAccessType value);

## Description

Each item has an access control list, which specifies the applications that can read, write or delete an item. The read access applies only to reading the secret. All applications can read other parts of the item. ACLs are accessed and changed `gnome_keyring_item_get_acl()` and `gnome_keyring_item_set_acl()`.

## Details

### GnomeKeyringAccessControl

    typedef struct GnomeKeyringAccessControl GnomeKeyringAccessControl;

### GnomeKeyringApplicationRef

    typedef struct GnomeKeyringApplicationRef GnomeKeyringApplicationRef;

### enum GnomeKeyringAccessType

    typedef enum {
    	GNOME_KEYRING_ACCESS_READ = 1<<0,
    	GNOME_KEYRING_ACCESS_WRITE = 1<<1,
    	GNOME_KEYRING_ACCESS_REMOVE = 1<<2
    } GnomeKeyringAccessType;

### gnome_keyring_application_ref_new ()

    GnomeKeyringApplicationRef * gnome_keyring_application_ref_new
                                                            (void);

Create a new application reference.

Returns : | A new GnomeKeyringApplicationRef pointer.

### gnome_keyring_application_ref_copy ()

    GnomeKeyringApplicationRef * gnome_keyring_application_ref_copy
                                                            (const GnomeKeyringApplicationRef *app);

Copy an application reference.

`app` : | A GnomeKeyringApplicationRef pointer
Returns : | A new GnomeKeyringApplicationRef pointer.

### gnome_keyring_application_ref_free ()

    void                gnome_keyring_application_ref_free  (GnomeKeyringApplicationRef *app);

Free an application reference.

`app` : | A GnomeKeyringApplicationRef pointer

### gnome_keyring_access_control_new ()

    GnomeKeyringAccessControl * gnome_keyring_access_control_new
                                                            (const GnomeKeyringApplicationRef *application,
                                                             GnomeKeyringAccessType types_allowed);

Create a new access control for an item. Combine the various access rights allowed.

`application` : | A GnomeKeyringApplicationRef pointer
`types_allowed` : | Access types allowed.
Returns : | The new GnomeKeyringAccessControl pointer. Use `gnome_keyring_access_control_free()` to free the memory.

### gnome_keyring_access_control_copy ()

    GnomeKeyringAccessControl * gnome_keyring_access_control_copy
                                                            (GnomeKeyringAccessControl *ac);

Copy an access control for an item.

`ac` : | A GnomeKeyringAcessControl pointer
Returns : | The new GnomeKeyringAccessControl pointer. Use `gnome_keyring_access_control_free()` to free the memory.

### gnome_keyring_access_control_free ()

    void                gnome_keyring_access_control_free   (GnomeKeyringAccessControl *ac);

Free an access control for an item.

`ac` : | A GnomeKeyringAccessControl pointer

### gnome_keyring_acl_copy ()

    GList *             gnome_keyring_acl_copy              (GList *list);

Copy an access control list.

`list` : | A list of GnomeKeyringAccessControl pointers.
Returns : | A new list of GnomeKeyringAccessControl items. Use `gnome_keyring_acl_free()` to free the memory.

### gnome_keyring_acl_free ()

    void                gnome_keyring_acl_free              (GList *acl);

Free an access control list.

`acl` : | A list of GnomeKeyringAccessControl pointers.

### gnome_keyring_item_ac_get_display_name ()

    char *              gnome_keyring_item_ac_get_display_name
                                                            (GnomeKeyringAccessControl *ac);

Get the access control application's display name.

`ac` : | A GnomeKeyringAccessControl pointer.
Returns : | A newly allocated string containing the display name.

### gnome_keyring_item_ac_set_display_name ()

    void                gnome_keyring_item_ac_set_display_name
                                                            (GnomeKeyringAccessControl *ac,
                                                             const char *value);

Set the access control application's display name.

`ac` : | A GnomeKeyringAcccessControl pointer.
`value` : | The new application display name.

### gnome_keyring_item_ac_get_path_name ()

    char *              gnome_keyring_item_ac_get_path_name (GnomeKeyringAccessControl *ac);

Get the access control application's full path name.

`ac` : | A GnomeKeyringAccessControl pointer.
Returns : | A newly allocated string containing the display name.

### gnome_keyring_item_ac_set_path_name ()

    void                gnome_keyring_item_ac_set_path_name (GnomeKeyringAccessControl *ac,
                                                             const char *value);

Set the access control application's full path name.

`ac` : | A GnomeKeyringAccessControl pointer
`value` : | The new application full path.

### gnome_keyring_item_ac_get_access_type ()

    GnomeKeyringAccessType  gnome_keyring_item_ac_get_access_type
                                                            (GnomeKeyringAccessControl *ac);

Get the application access rights for the access control.

`ac` : | A GnomeKeyringAccessControl pointer.
Returns : | The access rights.

### gnome_keyring_item_ac_set_access_type ()

    void                gnome_keyring_item_ac_set_access_type
                                                            (GnomeKeyringAccessControl *ac,
                                                             const GnomeKeyringAccessType value);

Set the application access rights for the access control.

`ac` : | A GnomeKeyringAccessControl pointer.
`value` : | The new access rights.