diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/polkit/polkitauthority.c | 14 | ||||
-rw-r--r-- | src/polkitbackend/polkitbackendinteractiveauthority.c | 9 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/polkit/polkitauthority.c b/src/polkit/polkitauthority.c index cc24e6c..3dc257f 100644 --- a/src/polkit/polkitauthority.c +++ b/src/polkit/polkitauthority.c @@ -869,6 +869,17 @@ check_authorization_cb (GDBusProxy *proxy, * from. You can then call * polkit_authority_check_authorization_finish() to get the result of * the operation. + * + * Known keys in @details include <literal>polkit.message</literal> + * and <literal>polkit.message.gettext-domain</literal> that can be + * used to override the message shown to the user (the user might be + * running an authentication agent in another locale than the calling + * process so that's why both the message and gettext domain is + * needed). + * + * If @details is non-empty then the request will fail with + * #POLKIT_ERROR_FAILED unless the process doing the check itsef is + * sufficiently authorized (e.g. running as uid 0). **/ void polkit_authority_check_authorization (PolkitAuthority *authority, @@ -985,6 +996,9 @@ polkit_authority_check_authorization_finish (PolkitAuthority *authority * operation to complete because it involves waiting for the user to * authenticate. * + * See polkit_authority_check_authorization_sync() for how @details is + * handled. + * * Returns: (transfer full): A #PolkitAuthorizationResult or %NULL if @error is set. Free with g_object_unref(). */ PolkitAuthorizationResult * diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c index 59b2fb7..462f334 100644 --- a/src/polkitbackend/polkitbackendinteractiveauthority.c +++ b/src/polkitbackend/polkitbackendinteractiveauthority.c @@ -1743,6 +1743,7 @@ get_localized_data_for_challenge (PolkitBackendInteractiveAuthority *authority, gchar *message; gchar *icon_name; PolkitDetails *localized_details; + const gchar *message_to_use; priv = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_GET_PRIVATE (authority); @@ -1768,6 +1769,14 @@ get_localized_data_for_challenge (PolkitBackendInteractiveAuthority *authority, } g_setenv ("LANG", locale, TRUE); + message_to_use = polkit_details_lookup (details, "polkit.message"); + if (message_to_use != NULL) + { + const gchar *gettext_domain; + gettext_domain = polkit_details_lookup (details, "polkit.message.gettext-domain"); + message = g_strdup (g_dgettext (gettext_domain, message_to_use)); + } + /* call into extension points to get localized auth dialog data - the list is sorted by priority */ action_lookup_list = get_action_lookup_list (); for (l = action_lookup_list; l != NULL; l = l->next) |