core: remove permission callback

Remove the core permission check callback. We can now use the per
client permission configuration.
Rework the flatpak module to use the permissions. When a client
connects, do the portal call and iterate all globals, updating the
permissions. Also update the permissions of newly added globals.
The client is owner of itself.
This commit is contained in:
Wim Taymans 2018-01-24 16:13:28 +01:00
parent ff17fb68b5
commit f115646bcd
6 changed files with 107 additions and 200 deletions

View file

@ -68,6 +68,11 @@ struct pw_protocol {
void *user_data; /**< user data for the implementation */
};
/** the permission function. It returns the allowed access permissions for \a global
* for \a client */
typedef uint32_t (*pw_permission_func_t) (struct pw_global *global,
struct pw_client *client, void *data);
struct pw_client {
struct pw_core *core; /**< core object */
struct spa_list link; /**< link in core object client list */
@ -127,9 +132,6 @@ struct pw_core {
struct pw_type type; /**< type map and common types */
pw_permission_func_t permission_func; /**< get permissions of an object */
void *permission_data; /**< data passed to permission function */
struct pw_map globals; /**< map of globals */
struct spa_list protocol_list; /**< list of protocols */
@ -422,6 +424,7 @@ struct pw_control {
void *user_data;
};
/** Find a good format between 2 ports */
int pw_core_find_format(struct pw_core *core,
struct pw_port *output,