1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# Copyright 2014-2015 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
"""API handler: `Account`."""
from __future__ import (
absolute_import,
print_function,
unicode_literals,
)
str = None
__metaclass__ = type
__all__ = [
'AccountHandler',
]
from maasserver.api.support import (
operation,
OperationsHandler,
)
from maasserver.api.utils import get_mandatory_param
from piston.utils import rc
class AccountHandler(OperationsHandler):
"""Manage the current logged-in user."""
api_doc_section_name = "Logged-in user"
create = read = update = delete = None
@operation(idempotent=False)
def create_authorisation_token(self, request):
"""Create an authorisation OAuth token and OAuth consumer.
:return: a json dict with three keys: 'token_key',
'token_secret' and 'consumer_key' (e.g.
{token_key: 's65244576fgqs', token_secret: 'qsdfdhv34',
consumer_key: '68543fhj854fg'}).
:rtype: string (json)
"""
profile = request.user.userprofile
consumer, token = profile.create_authorisation_token()
return {
'token_key': token.key, 'token_secret': token.secret,
'consumer_key': consumer.key,
}
@operation(idempotent=False)
def delete_authorisation_token(self, request):
"""Delete an authorisation OAuth token and the related OAuth consumer.
:param token_key: The key of the token to be deleted.
:type token_key: unicode
"""
profile = request.user.userprofile
token_key = get_mandatory_param(request.data, 'token_key')
profile.delete_authorisation_token(token_key)
return rc.DELETED
@classmethod
def resource_uri(cls, *args, **kwargs):
return ('account_handler', [])
|