1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 try:
18 import json
19 except ImportError:
20 import simplejson as json
21
22 from cm_api.endpoints.types import BaseApiObject, ApiList
23
24 USERS_PATH = "/users"
25
27 """
28 Get all users.
29
30 @param resource_root: The root Resource object
31 @param view: View to materialize ('full' or 'summary').
32 @return: A list of ApiUser objects.
33 """
34 dic = resource_root.get(USERS_PATH,
35 params=view and dict(view=view) or None)
36 return ApiList.from_json_dict(ApiUser, dic, resource_root)
37
39 """
40 Look up a user by username.
41
42 @param resource_root: The root Resource object
43 @param username: Username to look up
44 @return: An ApiUser object
45 """
46 dic = resource_root.get('%s/%s' % (USERS_PATH, username))
47 return ApiUser.from_json_dict(dic, resource_root)
48
50 """
51 Grant admin access to a user. If the user already has admin access, this
52 does nothing.
53
54 @param resource_root: The root Resource object
55 @param username: Username to give admin access to.
56 @return: An ApiUser object
57 """
58 apiuser = ApiUser(resource_root, username, roles=['ROLE_ADMIN'])
59 body = json.dumps(apiuser.to_json_dict())
60 resp = resource_root.put('%s/%s' % (USERS_PATH, username), data=body)
61 return ApiUser.from_json_dict(resp, resource_root)
62
64 """
65 Revoke admin access from a user. If the user does not have admin access,
66 this does nothing.
67
68 @param resource_root: The root Resource object
69 @param username: Username to give admin access to.
70 @return: An ApiUser object
71 """
72 apiuser = ApiUser(resource_root, username, roles=[])
73 body = json.dumps(apiuser.to_json_dict())
74 resp = resource_root.put('%s/%s' % (USERS_PATH, username), data=body)
75 return ApiUser.from_json_dict(resp, resource_root)
76
77 -def create_user(resource_root, username, password, roles):
78 """
79 Create a user.
80
81 @param resource_root: The root Resource object
82 @param username: Username
83 @param password: Password
84 @param roles: List of roles for the user. This should be [] for a
85 regular user, or ['ROLE_ADMIN'] for an admin.
86 @return: An ApiUser object
87 """
88 apiuser = ApiUser(resource_root, username, password=password, roles=roles)
89 apiuser_list = ApiList([apiuser])
90 body = json.dumps(apiuser_list.to_json_dict())
91 resp = resource_root.post(USERS_PATH, data=body)
92 return ApiList.from_json_dict(ApiUser, resp, resource_root)[0]
93
95 """
96 Delete user by username.
97
98 @param resource_root: The root Resource object
99 @param: username Username
100 @return: An ApiUser object
101 """
102 resp = resource_root.delete('%s/%s' % (USERS_PATH, username))
103 return ApiUser.from_json_dict(resp, resource_root)
104
106 _ATTRIBUTES = {
107 'name' : None,
108 'password' : None,
109 'roles' : None,
110 }
111
112 - def __init__(self, resource_root, name=None, password=None, roles=None):
114
116 """
117 Grant admin access to a user. If the user already has admin access, this
118 does nothing.
119
120 @return: An ApiUser object
121 """
122 return _grant_admin_role(self._get_resource_root(), self.name)
123
125 """
126 Revoke admin access from a user. If the user does not have admin access,
127 this does nothing.
128
129 @return: An ApiUser object
130 """
131 return _revoke_admin_role(self._get_resource_root(), self.name)
132