summaryrefslogtreecommitdiff
path: root/src/polkitbackend/polkitbackendlocalauthority.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/polkitbackend/polkitbackendlocalauthority.c')
-rw-r--r--src/polkitbackend/polkitbackendlocalauthority.c56
1 files changed, 42 insertions, 14 deletions
diff --git a/src/polkitbackend/polkitbackendlocalauthority.c b/src/polkitbackend/polkitbackendlocalauthority.c
index c4dbba8..db49f99 100644
--- a/src/polkitbackend/polkitbackendlocalauthority.c
+++ b/src/polkitbackend/polkitbackendlocalauthority.c
@@ -38,19 +38,22 @@ typedef struct
} PolkitBackendLocalAuthorityPrivate;
-static void polkit_backend_local_authority_enumerate_actions (PolkitBackendAuthority *authority,
- const gchar *locale,
- PolkitBackendPendingCall *pending_call);
+static void polkit_backend_local_authority_enumerate_actions (PolkitBackendAuthority *authority,
+ const gchar *locale,
+ PolkitBackendPendingCall *pending_call);
-static void polkit_backend_local_authority_enumerate_users (PolkitBackendAuthority *authority,
- PolkitBackendPendingCall *pending_call);
+static void polkit_backend_local_authority_enumerate_users (PolkitBackendAuthority *authority,
+ PolkitBackendPendingCall *pending_call);
-static void polkit_backend_local_authority_enumerate_groups (PolkitBackendAuthority *authority,
- PolkitBackendPendingCall *pending_call);
+static void polkit_backend_local_authority_enumerate_groups (PolkitBackendAuthority *authority,
+ PolkitBackendPendingCall *pending_call);
-static void polkit_backend_local_authority_check_claim (PolkitBackendAuthority *authority,
- PolkitAuthorizationClaim *claim,
- PolkitBackendPendingCall *pending_call);
+static void polkit_backend_local_authority_enumerate_sessions (PolkitBackendAuthority *authority,
+ PolkitBackendPendingCall *pending_call);
+
+static void polkit_backend_local_authority_check_claim (PolkitBackendAuthority *authority,
+ PolkitAuthorizationClaim *claim,
+ PolkitBackendPendingCall *pending_call);
G_DEFINE_TYPE (PolkitBackendLocalAuthority, polkit_backend_local_authority, POLKIT_BACKEND_TYPE_AUTHORITY);
@@ -100,10 +103,11 @@ polkit_backend_local_authority_class_init (PolkitBackendLocalAuthorityClass *kla
gobject_class->finalize = polkit_backend_local_authority_finalize;
- authority_class->enumerate_actions = polkit_backend_local_authority_enumerate_actions;
- authority_class->enumerate_users = polkit_backend_local_authority_enumerate_users;
- authority_class->enumerate_groups = polkit_backend_local_authority_enumerate_groups;
- authority_class->check_claim = polkit_backend_local_authority_check_claim;
+ authority_class->enumerate_actions = polkit_backend_local_authority_enumerate_actions;
+ authority_class->enumerate_users = polkit_backend_local_authority_enumerate_users;
+ authority_class->enumerate_groups = polkit_backend_local_authority_enumerate_groups;
+ authority_class->enumerate_sessions = polkit_backend_local_authority_enumerate_sessions;
+ authority_class->check_claim = polkit_backend_local_authority_check_claim;
g_type_class_add_private (klass, sizeof (PolkitBackendLocalAuthorityPrivate));
}
@@ -135,6 +139,8 @@ polkit_backend_local_authority_enumerate_actions (PolkitBackendAuthority *auth
actions);
}
+/* ---------------------------------------------------------------------------------------------------- */
+
static void
polkit_backend_local_authority_enumerate_users (PolkitBackendAuthority *authority,
PolkitBackendPendingCall *pending_call)
@@ -179,6 +185,8 @@ polkit_backend_local_authority_enumerate_users (PolkitBackendAuthority *author
;
}
+/* ---------------------------------------------------------------------------------------------------- */
+
static void
polkit_backend_local_authority_enumerate_groups (PolkitBackendAuthority *authority,
PolkitBackendPendingCall *pending_call)
@@ -223,6 +231,26 @@ polkit_backend_local_authority_enumerate_groups (PolkitBackendAuthority *autho
;
}
+/* ---------------------------------------------------------------------------------------------------- */
+
+static void
+polkit_backend_local_authority_enumerate_sessions (PolkitBackendAuthority *authority,
+ PolkitBackendPendingCall *pending_call)
+{
+ PolkitBackendLocalAuthority *local_authority;
+ PolkitBackendLocalAuthorityPrivate *priv;
+ GList *list;
+
+ local_authority = POLKIT_BACKEND_LOCAL_AUTHORITY (authority);
+ priv = POLKIT_BACKEND_LOCAL_AUTHORITY_GET_PRIVATE (local_authority);
+
+ list = polkit_backend_session_monitor_get_sessions (priv->session_monitor);
+
+ polkit_backend_authority_enumerate_sessions_finish (pending_call, list);
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
static void
polkit_backend_local_authority_check_claim (PolkitBackendAuthority *authority,
PolkitAuthorizationClaim *claim,