-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathsecurity_example.py
132 lines (109 loc) · 3.06 KB
/
security_example.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
128
129
130
131
132
#
# Copyright (c) 2017-2018 LabKey Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from labkey.api_wrapper import APIWrapper
from labkey.exceptions import ServerNotFoundError
labkey_server = "localhost:8080"
project_name = "Home" # Project folder name
contextPath = "labkey"
api = APIWrapper(labkey_server, project_name, contextPath, use_ssl=False)
###############
# add User
###############
new_user_email = "[email protected]"
result = api.security.create_user(new_user_email)
if result is not None:
print(result)
else:
print("Add users: no results returned")
exit()
###############
# Show Users
###############
try:
result = api.security.get_user_by_email(new_user_email)
except ValueError:
print("User not found")
if result is not None:
print(result)
else:
print("Show users: no results returned")
exit()
###############
# reset User's password
###############
new_user_id = result["userId"]
result = api.security.reset_password(new_user_email)
if result is not None:
print(result)
else:
print("Reset password: no results returned")
exit()
###############
# add permissions to User
###############
# List Security Roles
result = api.security.get_roles()
if result is not None:
print(result)
else:
print("No results returned")
exit()
author_role = None
for role in result["roles"]:
if role["name"] == "Author":
author_role = role
try:
result = api.security.add_to_role(role=author_role, user_id=new_user_id)
except ServerNotFoundError:
print("resource not found, check that '" + project_name + "' project exists")
if result is not None:
print(result)
else:
print("Add user permissions: no results returned")
exit()
###############
# add user to group
###############
site_group_id = -1 # This needs to be the ID of a Project Group within the project specified above
if site_group_id == -1:
print(
"NOTE: To successfully complete this sample code a 'site_group_id' must be set in the file."
)
exit()
result = api.security.add_to_group(new_user_id, site_group_id)
if result is not None:
print(result)
else:
print("Add user to group: no results returned")
exit()
###############
# deactivate User
###############
result = api.security.deactivate_users([new_user_id])
if result is not None:
print(result)
else:
print("Deactivate user: no results returned")
exit()
###############
# delete User
###############
result = api.security.delete_users([new_user_id])
if result is not None:
print(result)
else:
print("Delete user: no results returned")
exit()