diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2018-05-16 11:22:51 +0200 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2018-05-16 11:22:51 +0200 |
commit | 01120ec3d2eecd11e23f008feed020def7ea0e88 (patch) | |
tree | 0019f45ca3f7d35d8131abb6733a729e26cf08e9 /lisp | |
parent | 4c3cd27df9c0735d907813a8c16a87acc54b9edc (diff) | |
download | emacs-01120ec3d2eecd11e23f008feed020def7ea0e88.tar.gz emacs-01120ec3d2eecd11e23f008feed020def7ea0e88.tar.bz2 emacs-01120ec3d2eecd11e23f008feed020def7ea0e88.zip |
Fix creation of Secret Service items in auth-source
* lisp/auth-source.el (auth-source-secrets-create): Use ´apply'.
(auth-source-secrets-saver): Handle `auth-source-save-behavior'
equal t.
* lisp/net/secrets.el (secrets-get-items): Do not call
`secrets-open-session' here ...
(top): ... but here.
* test/lisp/auth-source-tests.el
(auth-source-test-secrets-create-secret): Bind
`auth-source-save-behavior' to t. Cleanup.
* test/lisp/net/secrets-tests.el (secrets-test00-availability):
After loading secets.el, a session is already opened.
(secrets-test02-collections, secrets-test03-items)
(secrets-test04-search): Open a new session.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/auth-source.el | 5 | ||||
-rw-r--r-- | lisp/net/secrets.el | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lisp/auth-source.el b/lisp/auth-source.el index 8b54c8118d2..918d785eaef 100644 --- a/lisp/auth-source.el +++ b/lisp/auth-source.el @@ -1733,7 +1733,7 @@ authentication tokens: (secret (plist-get artificial :secret)) (secret (if (functionp secret) (funcall secret) secret))) (lambda () - (apply 'auth-source-secrets-saver collection item secret args)))) + (auth-source-secrets-saver collection item secret args)))) (list artificial))) @@ -1742,8 +1742,9 @@ authentication tokens: Respects `auth-source-save-behavior'." (let ((prompt (format "Save auth info to secrets collection %s? " collection)) (done (not (eq auth-source-save-behavior 'ask))) + (doit (eq auth-source-save-behavior t)) (bufname "*auth-source Help*") - doit k) + k) (while (not done) (setq k (auth-source-read-char-choice prompt '(?y ?n ?N ??))) (cl-case k diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el index 22a4e8c7b0a..45c98cae60d 100644 --- a/lisp/net/secrets.el +++ b/lisp/net/secrets.el @@ -575,7 +575,6 @@ If successful, return the object path of the collection." (defun secrets-get-items (collection-path) "Return the object paths of all available items in COLLECTION-PATH." (unless (secrets-empty-path collection-path) - (secrets-open-session) (dbus-get-property :session secrets-service collection-path secrets-interface-collection "Items"))) @@ -911,6 +910,8 @@ to their attributes." (when (dbus-ping :session secrets-service 100) + (secrets-open-session) + ;; We must reset all variables, when there is a new instance of the ;; "org.freedesktop.secrets" service. (dbus-register-signal |