raster pushed a commit to branch enlightenment-0.24.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=68dc80f25a0b86074ce40075ab6eccbdc06a46f8

commit 68dc80f25a0b86074ce40075ab6eccbdc06a46f8
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon May 25 13:43:28 2020 +0100

    polkit - fix user id we're authing to and be explicit which one it is
    
    @fix
---
 src/bin/e_ckpasswd_main.c    |  4 ++--
 src/modules/polkit/auth_ui.c | 26 +++++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_ckpasswd_main.c b/src/bin/e_ckpasswd_main.c
index 08de4bc3d..576af98dc 100644
--- a/src/bin/e_ckpasswd_main.c
+++ b/src/bin/e_ckpasswd_main.c
@@ -214,7 +214,7 @@ polkit_auth(const char *cookie, unsigned int auth_uid)
    if (!m) BARF("Cannot get method call: AuthenticationAgentResponse2");
    iter = eldbus_message_iter_get(m);
    if (!iter) BARF("Cannot set iter on proxy");
-   if (!eldbus_message_iter_arguments_append(iter, "us", uid, cookie))
+   if (!eldbus_message_iter_arguments_append(iter, "us", auth_uid, cookie))
      BARF("Cannot append 'us' args");
    if (!eldbus_message_iter_arguments_append(iter, "(sa{sv})", &subj))
      BARF("Cannot append '(sa{sv})' args");
@@ -366,7 +366,7 @@ main(int argc, char **argv)
         fprintf(stderr, "AUTH: Password OK\n");
         if (polkit_mode == 1)
           {
-             if (polkit_auth(polkit_cookie, polkit_uid) == 0)
+             if (polkit_auth(polkit_cookie, uid) == 0)
                {
                   fprintf(stderr, "AUTH: Polkit AuthenticationAgentResponse2 
success\n");
                   return 0;
diff --git a/src/modules/polkit/auth_ui.c b/src/modules/polkit/auth_ui.c
index fc146c4bc..d8d10aa87 100644
--- a/src/modules/polkit/auth_ui.c
+++ b/src/modules/polkit/auth_ui.c
@@ -42,6 +42,7 @@ _cb_ok(void *data EINA_UNUSED, Evas_Object *obj,
    if (!ps) return;
    if (ps->exe_exit_handler) return;
    elm_object_disabled_set(evas_object_data_get(obj, "label"), EINA_TRUE);
+   elm_object_disabled_set(evas_object_data_get(obj, "label2"), EINA_TRUE);
    elm_object_disabled_set(evas_object_data_get(obj, "entry"), EINA_TRUE);
    e_dialog_button_disable_num_set(evas_object_data_get(obj, "dia"), 0, 1);
    e_dialog_button_disable_num_set(evas_object_data_get(obj, "dia"), 1, 1);
@@ -86,7 +87,9 @@ void
 auth_ui(Polkit_Session *ps)
 {
    E_Dialog *dia;
-   Evas_Object *o, *win, *box, *fr, *lab, *ent;
+   Evas_Object *o, *win, *box, *fr, *lab, *lab2, *ent;
+   char buf[512];
+   struct passwd *pass;
 
    dia = e_dialog_new(NULL, "E", "_polkit_auth");
    e_dialog_title_set(dia, _("Please enter password"));
@@ -133,6 +136,26 @@ auth_ui(Polkit_Session *ps)
    evas_object_show(o);
    evas_object_data_set(win, "label", o);
 
+   fr = o = elm_frame_add(win);
+   elm_object_style_set(o, "pad_medium");
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(o, 0.0, 0.0);
+   elm_box_pack_end(box, o);
+   evas_object_show(o);
+
+   pass = getpwuid(ps->target_uid);
+   if ((pass) && (pass->pw_name))
+     snprintf(buf, sizeof(buf), _("Enter password for <b>%s</b>"), 
pass->pw_name);
+   else
+     snprintf(buf, sizeof(buf), _("Enter passowrd for UID %u"), 
ps->target_uid);
+   lab2 = o = elm_label_add(win);
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
+   elm_object_text_set(o, buf);
+   elm_object_content_set(fr, o);
+   evas_object_show(o);
+   evas_object_data_set(win, "label2", o);
+
    fr = o = elm_frame_add(win);
    elm_object_style_set(o, "pad_medium");
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
@@ -149,6 +172,7 @@ auth_ui(Polkit_Session *ps)
    elm_object_part_text_set(o, "elm.guide", "Enter Password");
    evas_object_data_set(o, "session", ps);
    evas_object_data_set(o, "label", lab);
+   evas_object_data_set(o, "label2", lab2);
    evas_object_data_set(o, "entry", ent);
    evas_object_data_set(o, "dia", dia);
    evas_object_smart_callback_add(o, "activated", _cb_ok, win);

-- 


Reply via email to