## GstRTSPPermissions GstRTSPPermissions — Roles and associated permissions |

## Functions

GstRTSPPermissions * | gst_rtsp_permissions_new ()
GstRTSPPermissions * | gst_rtsp_permissions_ref ()
void | gst_rtsp_permissions_unref ()
void | gst_rtsp_permissions_add_role ()
void | gst_rtsp_permissions_add_role_valist ()
void | gst_rtsp_permissions_add_role_empty ()
void | gst_rtsp_permissions_add_role_from_structure ()
void | gst_rtsp_permissions_add_permission_for_role ()
void | gst_rtsp_permissions_remove_role ()
const GstStructure * | gst_rtsp_permissions_get_role ()
gboolean | gst_rtsp_permissions_is_allowed ()

## Types and Values

struct | GstRTSPPermissions

## Object Hierarchy

        GBoxed
        ╰── GstRTSPPermissions

## Description

The GstRTSPPermissions object contains an array of roles and associated permissions. The roles are represented with a string and the permissions with a generic GstStructure.

The permissions are deliberately kept generic. The possible values of the roles and GstStructure keys and values are only determined by the GstRTSPAuth object that performs the checks on the permissions and the current GstRTSPToken.

As a convenience function, `gst_rtsp_permissions_is_allowed()` can be used to check if the permissions contains a role that contains the boolean value `TRUE` for the the given key.

Last reviewed on 2013-07-15 (1.0.0)

## Functions

### gst_rtsp_permissions_new ()

    GstRTSPPermissions *
    gst_rtsp_permissions_new (void);

Create a new empty Authorization permissions.

#### Returns

a new empty authorization permissions.

[transfer full]

### gst_rtsp_permissions_ref ()

    GstRTSPPermissions *
    gst_rtsp_permissions_ref (GstRTSPPermissions *permissions);

Increase the refcount of this permissions.

#### Parameters

permissions | The permissions to refcount |

#### Returns

`permissions` (for convenience when doing assignments).

[transfer full]

### gst_rtsp_permissions_unref ()

    void
    gst_rtsp_permissions_unref (GstRTSPPermissions *permissions);

Decrease the refcount of an permissions, freeing it if the refcount reaches 0.

#### Parameters

permissions | the permissions to refcount. | [transfer full]

### gst_rtsp_permissions_add_role ()

    void
    gst_rtsp_permissions_add_role (GstRTSPPermissions *permissions,
                                   const gchar *role,
                                   const gchar *fieldname,
                                   ...);

Add a new `role` to `permissions` with the given variables. The fields are the same layout as `gst_structure_new()`.

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |
fieldname | the first field name |
... | additional arguments |

### gst_rtsp_permissions_add_role_valist ()

    void
    gst_rtsp_permissions_add_role_valist (GstRTSPPermissions *permissions,
                                          const gchar *role,
                                          const gchar *fieldname,
                                          va_list var_args);

Add a new `role` to `permissions` with the given variables. Structure fields are set according to the varargs in a manner similar to `gst_structure_new()`.

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |
fieldname | the first field name |
var_args | additional fields to add |

### gst_rtsp_permissions_add_role_empty ()

    void
    gst_rtsp_permissions_add_role_empty (GstRTSPPermissions *permissions,
                                         const gchar *role);

Add a new `role` to `permissions` without any permissions. You can add permissions for the role with `gst_rtsp_permissions_add_permission_for_role()`.

[rename-to gst_rtsp_permissions_add_role]

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |

Since: 1.14

### gst_rtsp_permissions_add_role_from_structure ()

    void
    gst_rtsp_permissions_add_role_from_structure
                                   (GstRTSPPermissions *permissions,
                                    GstStructure *structure);

Add a new role to `permissions` based on `structure` , for example given a role named `tester`, which should be granted a permission named `permission1`, the structure could be created with:

`gst_structure_new ("tester", "permission1", G_TYPE_BOOLEAN, TRUE, NULL);`

Since: 1.14

### gst_rtsp_permissions_add_permission_for_role ()

    void
    gst_rtsp_permissions_add_permission_for_role
                                   (GstRTSPPermissions *permissions,
                                    const gchar *role,
                                    const gchar *permission,
                                    gboolean allowed);

Add a new `permission` for `role` to `permissions` with the access in `allowed` .

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |
permission | the permission |
allowed | whether the role has this permission or not |

Since: 1.14

### gst_rtsp_permissions_remove_role ()

    void
    gst_rtsp_permissions_remove_role (GstRTSPPermissions *permissions,
                                      const gchar *role);

Remove all permissions for `role` in `permissions` .

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |

### gst_rtsp_permissions_get_role ()

    const GstStructure *
    gst_rtsp_permissions_get_role (GstRTSPPermissions *permissions,
                                   const gchar *role);

Get all permissions for `role` in `permissions` .

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |

#### Returns

the structure with permissions for `role` . It remains valid for as long as `permissions` is valid.

[transfer none]

### gst_rtsp_permissions_is_allowed ()

    gboolean
    gst_rtsp_permissions_is_allowed (GstRTSPPermissions *permissions,
                                     const gchar *role,
                                     const gchar *permission);

Check if `role` in `permissions` is given permission for `permission` .

#### Parameters

permissions | a GstRTSPPermissions |
role | a role |
permission | a permission |

#### Returns

`TRUE` if `role` is allowed `permission` .

## Types and Values

### struct GstRTSPPermissions

    struct GstRTSPPermissions {
      GstMiniObject mini_object;
    };

The opaque permissions structure. It is used to define the permissions of objects in different roles.

## See Also

GstRTSPToken, GstRTSPAuth