]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug#49289 also for other auth-source backends
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 18 Jun 2024 14:43:53 +0000 (16:43 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sat, 22 Jun 2024 15:38:14 +0000 (17:38 +0200)
* lisp/auth-source.el (auth-info-password): Revert commit 59261e6f4fe.
(auth-source-secrets-create, auth-source-plstore-create):
Search also for :user.  (Bug#49289)

(cherry picked from commit ce85d3811daea42db78fc1c5bc4a7375ac5e209d)

lisp/auth-source.el

index 9ec9ede80e061e546341d6dfb21df8912c711399..90b58f560c0b19d4fb716aaa3f51ec97dfdfc877 100644 (file)
@@ -869,9 +869,9 @@ while \(:host t) would find all host entries."
 (defun auth-info-password (auth-info)
   "Return the :secret password from the AUTH-INFO."
   (let ((secret (plist-get auth-info :secret)))
-    (while (functionp secret)
-      (setq secret (funcall secret)))
-    secret))
+    (if (functionp secret)
+        (funcall secret)
+      secret)))
 
 (defun auth-source-pick-first-password (&rest spec)
   "Pick the first secret found by applying `auth-source-search' to SPEC."
@@ -1692,7 +1692,7 @@ authentication tokens:
     items))
 
 (cl-defun auth-source-secrets-create (&rest spec
-                                      &key backend host port create
+                                      &key backend host port create user
                                       &allow-other-keys)
   (let* ((base-required '(host user port secret label))
          ;; we know (because of an assertion in auth-source-search) that the
@@ -1700,6 +1700,7 @@ authentication tokens:
          (create-extra (if (eq t create) nil create))
          (current-data (car (auth-source-search :max 1
                                                 :host host
+                                                :user user
                                                 :port port)))
          (required (append base-required create-extra))
          (collection (oref backend source))
@@ -2162,7 +2163,7 @@ entries for git.gnus.org:
     items))
 
 (cl-defun auth-source-plstore-create (&rest spec
-                                      &key backend host port create
+                                      &key backend host port create user
                                       &allow-other-keys)
   (let* ((base-required '(host user port secret))
          (base-secret '(secret))
@@ -2172,9 +2173,11 @@ entries for git.gnus.org:
          (create-extra-secret (plist-get create :encrypted))
          (create-extra (if (eq t create) nil
                          (or (append (plist-get create :unencrypted)
-                                     create-extra-secret) create)))
+                                     create-extra-secret)
+                             create)))
          (current-data (car (auth-source-search :max 1
                                                 :host host
+                                                :user user
                                                 :port port)))
          (required (append base-required create-extra))
          (required-secret (append base-secret create-extra-secret))