Skip to content
Back to top
View this page

# Permission Store

## Description

Database to store permissions

The permission store can be used by portals to store permissions that sandboxed applications have to various resources, such as files outside the sandbox.

Since the resources managed by portals can be varied, the permission store is fairly free-form: there can be multiple tables; resources are identified by an ID, as are applications, and permissions are stored as string arrays. None of these strings are interpreted by the permission store in any way.

In addition, the permission store allows to associate extra data (in the form of a GVariant) with each resource.

This document describes version 2 of the permission store interface.

## Properties

### org.freedesktop.impl.portal.PermissionStore:version

    version readable u

## Methods

### org.freedesktop.impl.portal.PermissionStore.Lookup

    Lookup (
      IN table s,
      IN id s,
      OUT permissions a{sas},
      OUT data v
    )

Looks up the entry for a resource in one of the tables and returns all associated application permissions and data.

table

  the name of the table to use

id

  the resource ID to look up

permissions

  map from application ID to permissions

data

  data that is associated with the resource

### org.freedesktop.impl.portal.PermissionStore.Set

    Set (
      IN table s,
      IN create b,
      IN id s,
      IN app_permissions a{sas},
      IN data v
    )

Writes the entry for a resource in the given table.

table

  the name of the table to use

create

  whether to create the table if it does not exist

id

  the resource ID to modify

app_permissions

  map from application ID to permissions

data

  data to associate with the resource

### org.freedesktop.impl.portal.PermissionStore.Delete

    Delete (
      IN table s,
      IN id s
    )

Removes the entry for a resource in the given table.

table

  the name of the table to use

id

  the resource ID to delete

### org.freedesktop.impl.portal.PermissionStore.SetValue

    SetValue (
      IN table s,
      IN create b,
      IN id s,
      IN data v
    )

Sets just the data for a resource in the given table.

table

  the name of the table to use

create

  whether to create the table if it does not exist

id

  the resource ID to modify

data

  data to associate with the resource

### org.freedesktop.impl.portal.PermissionStore.SetPermission

    SetPermission (
      IN table s,
      IN create b,
      IN id s,
      IN app s,
      IN permissions as
    )

Sets the permissions for an application and a resource in the given table.

table

  the name of the table to use

create

  whether to create the table if it does not exist

id

  the resource ID to modify

app

  the application ID to modify

permissions

  permissions to set

### org.freedesktop.impl.portal.PermissionStore.DeletePermission

    DeletePermission (
      IN table s,
      IN id s,
      IN app s
    )

Removes the entry for an application and a resource in the given table.

This method was added in version 2.

table

  the name of the table to use

id

  the resource ID to modify

app

  the application ID to modify

### org.freedesktop.impl.portal.PermissionStore.GetPermission

    GetPermission (
      IN table s,
      IN id s,
      IN app s,
      OUT permissions as
    )

Gets the entry for an application and a resource in the given table.

table

  the name of the table to use

id

  the resource ID to modify

app

  the application ID to modify

permissions

  permissions to get

### org.freedesktop.impl.portal.PermissionStore.List

    List (
      IN table s,
      OUT ids as
    )

Returns all the resources that are present in the table.

table

  the name of the table to use

ids

  IDs of all resources that are present in the table

## Signals

### org.freedesktop.impl.portal.PermissionStore::Changed

    Changed (
      table s,
      id s,
      deleted b,
      data v,
      permissions a{sas}
    )

The Changed signal is emitted when the entry for a resource is modified or deleted. If the entry was deleted, then `data` and `permissions` contain the last values that were found in the database. If the entry was modified, they contain the new values.

table

  the name of the table

id

deleted

  whether the resource was deleted

data

  the data that is associated the resource

permissions

  the permissions that are associated with the resource