1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import web
18
19 from pulp.server.api.user import UserApi
20 from pulp.server.api.auth import AuthApi
21 from pulp.server.webservices.controllers.base import JSONController
22 from pulp.server.webservices.role_check import RoleCheck
23
24
25
26 api = UserApi()
27 auth_api = AuthApi()
28
29
30
31 -class Users(JSONController):
32
33 @JSONController.error_handler
34 @RoleCheck(admin=True)
36 """
37 List all available users.
38 @return: a list of all users
39 """
40
41 return self.ok(api.users())
42
43 @JSONController.error_handler
44 @RoleCheck(admin=True)
46 """
47 Create a new user
48 @return: user that was created
49 """
50 user_data = self.params()
51 user = api.create(user_data['login'], user_data['password'],
52 user_data['name'])
53 return self.created(user['id'], user)
54
55 @JSONController.error_handler
56 @RoleCheck(admin=True)
58 """
59 @return: True on successful deletion of all users
60 """
61 api.clean()
62 return self.ok(True)
63
64
65 -class User(JSONController):
66
67 @JSONController.error_handler
68 @RoleCheck(admin=True)
69 - def GET(self, login):
70 """
71 Get a users information
72 @param login: user login
73 @return: user metadata
74 """
75 return self.ok(api.user(login))
76
77 @JSONController.error_handler
78 @RoleCheck(admin=True)
79 - def PUT(self, login):
87
88 @JSONController.error_handler
89 @RoleCheck(admin=True)
91 """
92 Delete a user
93 @param login: login of user to delete
94 @return: True on successful deletion of user
95 """
96 api.delete(login=login)
97 return self.ok(True)
98
100
101 @JSONController.error_handler
102 @RoleCheck(admin=True)
104 '''
105 Creates and returns an authentication certificate for the currently
106 logged in user.
107 '''
108 private_key, cert = auth_api.admin_certificate()
109 certificate = {'certificate': cert, 'private_key': private_key}
110 return self.ok(certificate)
111
112
113
114 URLS = (
115 '/$', 'Users',
116 '/admin_certificate/$', 'AdminAuthCertificates',
117 '/([^/]+)/$', 'User',
118 )
119
120 application = web.application(URLS, globals())
121