PolkitAuthorizationClaim *claim,
PolkitBackendPendingCall *pending_call)
{
+ gchar *inquirer_str;
+ gchar *subject_str;
+ PolkitSubject *inquirer;
+ PolkitSubject *subject;
+ const gchar *action_id;
+
+ inquirer = polkit_backend_pending_call_get_caller (pending_call);
+ subject = polkit_authorization_claim_get_subject (claim);
+ action_id = polkit_authorization_claim_get_action_id (claim);
+
+ inquirer_str = polkit_subject_to_string (inquirer);
+ subject_str = polkit_subject_to_string (subject);
+
+ g_debug ("%s is inquiring whether %s is authorized for %s",
+ inquirer_str,
+ subject_str,
+ action_id);
+
polkit_backend_pending_call_return_error (pending_call,
POLKIT_ERROR,
POLKIT_ERROR_NOT_SUPPORTED,
"Not implemented");
+
+ g_free (inquirer_str);
+ g_free (subject_str);
}
{
EggDBusMethodInvocation *method_invocation;
PolkitBackendServer *server;
+ PolkitSubject *inquirer;
} PolkitBackendPendingCallPrivate;
G_DEFINE_TYPE (PolkitBackendPendingCall, polkit_backend_pending_call, G_TYPE_OBJECT);
g_object_unref (priv->method_invocation);
g_object_unref (priv->server);
+ if (priv->inquirer != NULL)
+ g_object_unref (priv->inquirer);
+
G_OBJECT_CLASS (polkit_backend_pending_call_parent_class)->finalize (object);
}
PolkitSubject *
polkit_backend_pending_call_get_caller (PolkitBackendPendingCall *pending_call)
{
- /* TODO: implement */
- return NULL;
+ PolkitBackendPendingCallPrivate *priv;
+
+ priv = POLKIT_BACKEND_PENDING_CALL_GET_PRIVATE (pending_call);
+
+ if (priv->inquirer != NULL)
+ goto out;
+
+ priv->inquirer = polkit_system_bus_name_new (egg_dbus_method_invocation_get_caller (priv->method_invocation));
+
+ out:
+ return priv->inquirer;
}
void