## SignonIdentityInfo SignonIdentityInfo — Extra data for a SignonIdentity. |

## Functions

SignonIdentityInfo * | signon_identity_info_new ()
SignonIdentityInfo * | signon_identity_info_copy ()
void | signon_identity_info_free ()
void | signon_identity_info_add_access_control ()
GList * | signon_identity_info_get_access_control_list ()
const gchar * | signon_identity_info_get_caption ()
gint | signon_identity_info_get_id ()
SignonIdentityType | signon_identity_info_get_identity_type ()
const GHashTable * | signon_identity_info_get_methods ()
const gchar * const * | signon_identity_info_get_realms ()
gboolean | signon_identity_info_get_storing_secret ()
const gchar * | signon_identity_info_get_username ()
void | signon_identity_info_remove_method ()
void | signon_identity_info_set_access_control_list ()
void | signon_identity_info_set_caption ()
void | signon_identity_info_set_identity_type ()
void | signon_identity_info_set_method ()
void | signon_identity_info_set_realms ()
void | signon_identity_info_set_secret ()
void | signon_identity_info_set_username ()

## Types and Values

| SignonIdentityInfo
enum | SignonIdentityType

## Object Hierarchy

        GBoxed
        ╰── SignonIdentityInfo
        GFlags
        ╰── SignonIdentityType

## Description

Extra data retreived from a SignonIdentity.

## Functions

### signon_identity_info_new ()

    SignonIdentityInfo *
    signon_identity_info_new ();

Creates a new SignonIdentityInfo item.

#### Returns

a new SignonIdentityInfo item.

### signon_identity_info_copy ()

    SignonIdentityInfo *
    signon_identity_info_copy (const SignonIdentityInfo *other);

Get a newly-allocated copy of `info` .

#### Parameters

other | the SignonIdentityInfo. |

#### Returns

a copy of the given SignonIdentityInfo, or `NULL` on failure.

### signon_identity_info_free ()

    void
    signon_identity_info_free (SignonIdentityInfo *info);

Destroys the given SignonIdentityInfo item.

#### Parameters

info | the SignonIdentityInfo. |

### signon_identity_info_add_access_control ()

    void
    signon_identity_info_add_access_control
                                   (SignonIdentityInfo *info,
                                    const gchar *system_context,
                                    const gchar *application_context);

Add an ACL to this identity. This is an helper function.

#### Parameters

info | the SignonIdentityInfo. |
system_context | the system context to add. |
application_context | the application context to add. |

### signon_identity_info_get_access_control_list ()

    GList *
    signon_identity_info_get_access_control_list
                                   (const SignonIdentityInfo *info);

Get an array of ACL statements of the identity.

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

a GList of SignonSecurityContext representing ACL statements. Each element should be freed with `signon_security_context_copy()` after use.

[transfer full][element-type SignonSecurityContext]

### signon_identity_info_get_caption ()

    const gchar *
    signon_identity_info_get_caption (const SignonIdentityInfo *info);

Get the display name of `info` .

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

the display name for the identity.

### signon_identity_info_get_id ()

    gint
    signon_identity_info_get_id (const SignonIdentityInfo *info);

Get the numeric ID of `info` .

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

the numeric ID of the identity.

### signon_identity_info_get_identity_type ()

    SignonIdentityType
    signon_identity_info_get_identity_type
                                   (const SignonIdentityInfo *info);

Get the type of the identity.

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

the type of the identity.

### signon_identity_info_get_methods ()

    const GHashTable *
    signon_identity_info_get_methods (const SignonIdentityInfo *info);

Get a hash table of the methods and mechanisms of `info` .

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

the table of allowed methods and mechanisms.

[transfer none][element-type utf8 GStrv]

### signon_identity_info_get_realms ()

    const gchar * const *
    signon_identity_info_get_realms (const SignonIdentityInfo *info);

Get an array of the realms of `info` .

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

a `NULL` terminated array of realms.

[transfer none]

### signon_identity_info_get_storing_secret ()

    gboolean
    signon_identity_info_get_storing_secret
                                   (const SignonIdentityInfo *info);

Get whether the secret of `info` should be stored.

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

`TRUE` if Signon must store the secret, `FALSE` otherwise.

### signon_identity_info_get_username ()

    const gchar *
    signon_identity_info_get_username (const SignonIdentityInfo *info);

Get the username of `info` .

#### Parameters

info | the SignonIdentityInfo. |

#### Returns

the username, or `NULL`.

### signon_identity_info_remove_method ()

    void
    signon_identity_info_remove_method (SignonIdentityInfo *info,
                                        const gchar *method);

Remove `method` from the list of allowed authentication methods. If all methods are removed, then all methods are allowed.

#### Parameters

info | the SignonIdentityInfo. |
method | an authentication method. |

### signon_identity_info_set_access_control_list ()

    void
    signon_identity_info_set_access_control_list
                                   (SignonIdentityInfo *info,
                                    GList *access_control_list);

Specifies the ACL for this identity. The actual meaning of the ACL depends on the security framework used by signond.

#### Parameters

info | the SignonIdentityInfo. |
access_control_list | a GList of SignonSecurityContext representing ACL security domains. | [element-type SignonSecurityContext]

### signon_identity_info_set_caption ()

    void
    signon_identity_info_set_caption (SignonIdentityInfo *info,
                                      const gchar *caption);

Sets the caption (display name) for the identity.

#### Parameters

info | the SignonIdentityInfo. |
caption | the caption. |

### signon_identity_info_set_identity_type ()

    void
    signon_identity_info_set_identity_type
                                   (SignonIdentityInfo *info,
                                    SignonIdentityType type);

Specifies the type of this identity.

#### Parameters

info | the SignonIdentityInfo. |
type | the type of the identity. |

### signon_identity_info_set_method ()

    void
    signon_identity_info_set_method (SignonIdentityInfo *info,
                                     const gchar *method,
                                     const gchar * const *mechanisms);

Adds a method to the list of allowed methods. If this method is not called even once, then all methods are allowed. Mechanisms are method-specific variants of authentication.

#### Parameters

info | the SignonIdentityInfo. |
method | an authentication method. |
mechanisms | a `NULL`-termianted list of mechanisms. | [array zero-terminated=1]

### signon_identity_info_set_realms ()

    void
    signon_identity_info_set_realms (SignonIdentityInfo *info,
                                     const gchar * const *realms);

Specify what realms this identity can be used in.

#### Parameters

info | the SignonIdentityInfo. |
realms | a `NULL`-terminated list of realms. | [array zero-terminated=1]

### signon_identity_info_set_secret ()

    void
    signon_identity_info_set_secret (SignonIdentityInfo *info,
                                     const gchar *secret,
                                     gboolean store_secret);

Sets the secret (password) for the identity, and whether the signon daemon should remember it.

#### Parameters

info | the SignonIdentityInfo. |
secret | the secret. |
store_secret | whether signond should store the secret in its DB. |

### signon_identity_info_set_username ()

    void
    signon_identity_info_set_username (SignonIdentityInfo *info,
                                       const gchar *username);

Sets the username for the identity.

#### Parameters

info | the SignonIdentityInfo. |
username | the username. |

## Types and Values

### SignonIdentityInfo

    typedef struct _SignonIdentityInfo SignonIdentityInfo;

Opaque struct. Use the accessor functions below.

### enum SignonIdentityType

Types used in SignonIdentityInfo.

#### Members

SIGNON_IDENTITY_TYPE_OTHER | an identity that is not an app, web or network |
SIGNON_IDENTITY_TYPE_APP | an application identity |
SIGNON_IDENTITY_TYPE_WEB | a web identity |
SIGNON_IDENTITY_TYPE_NETWORK | a network server identity |