This repository has been archived by the owner on Jan 2, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
User.py
127 lines (101 loc) · 3.64 KB
/
User.py
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import base64
import os
import packages.requests as requests
def check_login(username, password):
"""
Check User Credentials
:param username: Admin Username
:type username: str
:param password: Admin Password
:type password: str
:return: If credentials are valid
:rtype: bool
"""
r = requests.get(os.getenv("key_server_site") + "/rest/user/verify", auth=(username, password))
return r.status_code == 200
def list_users(username, password):
"""
List Users
:param username: Admin Username
:type username: str
:param password: Admin Password
:type password: str
:return: List of all Users
:rtype: list
"""
users = requests.get(os.getenv("key_server_site") + "/rest/user/list", auth=(username, password))
try:
assert users.status_code == 200
return users.json()
except AssertionError:
exit("Problem listing Users (Check Server Logs for Details) - HTTP Status: %i" % users.status_code)
def create_new(admin_username, admin_password, username, password, email):
"""
Create a new User
:param admin_username: Admin Username
:type admin_username: str
:param admin_password: Admin Password
:type admin_password: str
:param username: Username for new User
:type username: str
:param password: Password for New User
:type password: str
:param email: Email Address for New User
:type email: str
:return: New User
:rtype: dict
"""
user = requests.post(os.getenv("key_server_site") + "/rest/user/create",
auth=(admin_username, admin_password),
json={"username": username,
"password": base64.b64encode(password),
"email": email})
try:
assert user.status_code == 201
return user.json()
except AssertionError:
exit("Problem creating new user (Check Server Logs for Details) - HTTP Status: %i" % user.status_code)
def update_user(admin_username, admin_password, username, password=None, email=None):
"""
Update a User
:param admin_username: Admin Username
:type admin_username: str
:param admin_password: Admin Password
:type admin_password: str
:param username: Username for User
:type username: str
:param password: New Password for User
:type password: str
:param email: New Email Address for User
:type email: str
:return: Updated User
:rtype: dict
"""
if password is not None:
password = base64.b64encode(password)
user = requests.put(os.getenv("key_server_site") + "/rest/user/update",
auth=(admin_username, admin_password),
json={"username": username,
"password": password,
"email": email})
try:
assert user.status_code == 202
return user.json()
except AssertionError:
exit("Problem updating user (Check Server Logs for Details) - HTTP Status: %i" % user.status_code)
def delete_user(admin_username, admin_password, username):
"""
Delete User
:param admin_username: Admin Username
:type admin_username: str
:param admin_password: Admin Password
:type admin_password: str
:param username: Username to delete
:type username: str
:return: If the user was deleted successfully
:rtype: bool
"""
user = requests.delete(os.getenv("key_server_site") + "/rest/user/delete",
auth=(admin_username, admin_password),
json={"username": username})
return user.status_code == 202