Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
mentors.debian.net
debexpo
Commits
5fd73540
Commit
5fd73540
authored
Oct 21, 2012
by
Clément Schreiner
Browse files
Now uses the new gpg wrapper.
parent
898c372f
Changes
1
Hide whitespace changes
Inline
Side-by-side
debexpo/controllers/my.py
View file @
5fd73540
...
...
@@ -42,7 +42,8 @@ import tempfile
from
debexpo.lib.base
import
*
from
debexpo.lib
import
constants
,
form
from
debexpo.lib.schemas
import
DetailsForm
,
GpgForm
,
PasswordForm
,
OtherDetailsForm
,
MetricsForm
from
debexpo.lib.gnupg
import
GnuPG
from
debexpo.lib.utils
import
get_gnupg
from
debexpo.model
import
meta
from
debexpo.model.users
import
User
...
...
@@ -68,7 +69,7 @@ class MyController(BaseController):
"""
c
.
config
=
config
self
.
user
=
None
self
.
gnupg
=
GnuPG
()
self
.
gnupg
=
get_gnupg
()
def
_details
(
self
):
"""
...
...
@@ -96,14 +97,13 @@ class MyController(BaseController):
Handles a user submitting the GPG form.
"""
log
.
debug
(
'GPG form validated successfully'
)
self
.
gpg
=
GnuPG
()
# Should the key be deleted?
if
self
.
form_result
[
'delete_gpg'
]
and
self
.
user
.
gpg
is
not
None
:
keyid
=
self
.
gnupg
.
extract_key_id
(
self
.
user
.
gpg_id
)
keyid
=
self
.
gnupg
.
string2key
(
self
.
user
.
gpg_id
)
.
id
log
.
debug
(
'Deleting current GPG key %s'
%
(
keyid
))
(
out
,
err
)
=
self
.
gnupg
.
remove_signature
(
keyid
)
if
err
!=
0
:
result
=
self
.
gnupg
.
remove_signature
(
keyid
)
if
result
.
code
!=
0
:
log
.
error
(
"gpg failed to delete keyring: %s"
%
(
out
))
abort
(
500
)
self
.
user
.
gpg
=
None
...
...
@@ -113,17 +113,16 @@ class MyController(BaseController):
if
'gpg'
in
self
.
form_result
and
self
.
form_result
[
'gpg'
]
is
not
None
:
log
.
debug
(
'Setting a new GPG key'
)
self
.
user
.
gpg
=
self
.
form_result
[
'gpg'
].
value
(
self
.
user
.
gpg_id
,
_
)
=
self
.
gnupg
.
parse_key_id
(
self
.
user
.
gpg
)
temp
=
tempfile
.
NamedTemporaryFile
(
delete
=
True
)
temp
.
write
(
self
.
user
.
gpg
)
temp
.
flush
()
(
out
,
err
)
=
self
.
gpg
.
add_signature
(
temp
.
name
)
temp
.
close
()
if
err
!=
0
:
log
.
error
(
"gpg failed to import keyring: %s"
%
(
out
))
(
key
,
uids
)
=
self
.
gnupg
.
parse_key_block
(
self
.
user
.
gpg
)
self
.
user
.
gpg_id
=
key
.
id
result
=
self
.
gnupg
.
add_signature
(
data
=
self
.
user
.
gpg
)
log
.
debug
(
result
.
out
)
if
result
.
code
!=
0
:
log
.
error
(
"gpg failed to import keyring: %s"
%
(
result
.
err
))
abort
(
500
)
log
.
debug
(
out
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment