Merge ~adam-collard/maas:rename-apikey-ws into maas:master

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: 96a4191c1f64f090f2a3c9bf55b5e9ca6c9df624
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~adam-collard/maas:rename-apikey-ws
Merge into: maas:master
Diff against target: 52 lines (+24/-0)
2 files modified
src/maasserver/websockets/handlers/tests/test_user.py (+15/-0)
src/maasserver/websockets/handlers/user.py (+9/-0)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander unittests Pending
Review via email: mp+371998@code.launchpad.net

Commit message

Add websocket handler to rename token

Fixes LP:1830178

To post a comment you must log in.
Revision history for this message
Alberto Donato (ack) wrote :

+1, LGTM

Minor nitpicks inline

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/websockets/handlers/tests/test_user.py b/src/maasserver/websockets/handlers/tests/test_user.py
2index 85ccd9d..56b248d 100644
3--- a/src/maasserver/websockets/handlers/tests/test_user.py
4+++ b/src/maasserver/websockets/handlers/tests/test_user.py
5@@ -157,6 +157,21 @@ class TestUserHandler(MAASServerTestCase):
6 self.assertIsNotNone(event)
7 self.assertEqual(event.description, "Created token.")
8
9+ def test_update_token_name(self):
10+ user = factory.make_User()
11+ handler = UserHandler(user, {}, None)
12+ new_token_name = factory.make_string()
13+ observed = handler.create_authorisation_token({})
14+ handler.update_token_name({'key': observed['key'],
15+ 'name': new_token_name})
16+ auth_token = user.userprofile.get_authorisation_tokens().get(
17+ key=observed['key'])
18+ self.assertEqual(auth_token.consumer.name, new_token_name)
19+ event = Event.objects.filter(
20+ type__level=AUDIT).order_by('-created').first()
21+ self.assertIsNotNone(event)
22+ self.assertEqual(event.description, "Modified consumer name of token.")
23+
24 def test_delete_authorisation_token(self):
25 user = factory.make_User()
26 handler = UserHandler(user, {}, None)
27diff --git a/src/maasserver/websockets/handlers/user.py b/src/maasserver/websockets/handlers/user.py
28index 5f6623b..4784833 100644
29--- a/src/maasserver/websockets/handlers/user.py
30+++ b/src/maasserver/websockets/handlers/user.py
31@@ -48,6 +48,7 @@ class UserHandler(Handler):
32 'auth_user',
33 'mark_intro_complete',
34 'create_authorisation_token',
35+ 'update_token_name',
36 'delete_authorisation_token',
37 ]
38 fields = [
39@@ -211,6 +212,14 @@ class UserHandler(Handler):
40 },
41 }
42
43+ def update_token_name(self, params):
44+ """Modify the consumer name of an existing token"""
45+ profile = self.user.userprofile
46+ profile.modify_consumer_name(params['key'], params['name'])
47+ self.create_audit_event(
48+ EVENT_TYPES.AUTHORISATION, "Modified consumer name of token.")
49+ return {}
50+
51 def delete_authorisation_token(self, params):
52 """Delete an authorisation token for the user.
53

Subscribers

People subscribed via source and target branches