Skip to content
This repository was archived by the owner on Aug 7, 2020. It is now read-only.

Commit a0fb231

Browse files
Merge pull request #128 from tenable/task/as-49
Add support for user authorizations endpoints and bump to 1.9.0
2 parents 7eed6f6 + 44e4445 commit a0fb231

File tree

7 files changed

+362
-6
lines changed

7 files changed

+362
-6
lines changed

.gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ tenable_io.ini
1212
# Test state / virtualenvs
1313
.cache
1414
.tox
15-
.venv
16-
.venv3
15+
.venv*
1716

1817
# IntelliJ / PyCharm IDE
1918
.idea/

CHANGELOG.rst

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
CHANGELOG
33
=========
44

5+
1.9.0
6+
==========
7+
* Added: Support for user authorizations endpoints
8+
59
1.8.0
610
==========
711
* Added: Support for creating dynamic tags

tenable_io/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.8.0"
1+
__version__ = "1.9.0"

tenable_io/api/models.py

+23
Original file line numberDiff line numberDiff line change
@@ -2149,6 +2149,9 @@ def __init__(
21492149
type=None,
21502150
login_fail_count=None,
21512151
last_login_attempt=None,
2152+
uuid=None,
2153+
uuid_id=None,
2154+
container_uuid=None
21522155
):
21532156
self.id = id
21542157
self.username = username
@@ -2159,6 +2162,9 @@ def __init__(
21592162
self.type = type
21602163
self.login_fail_count = login_fail_count
21612164
self.last_login_attempt = last_login_attempt
2165+
self.uuid = uuid
2166+
self.uuid_id = uuid_id
2167+
self.container_uuid = container_uuid
21622168

21632169

21642170
class UserKeys(BaseModel):
@@ -2209,6 +2215,23 @@ def users(self, users):
22092215
self._users = users
22102216

22112217

2218+
class UserAuthorizations(BaseModel):
2219+
2220+
def __init__(
2221+
self,
2222+
account_uuid=None,
2223+
user_uuid=None,
2224+
api_permitted=None,
2225+
password_permitted=None,
2226+
saml_permitted=None
2227+
):
2228+
self.account_uuid = account_uuid
2229+
self.user_uuid = user_uuid
2230+
self.api_permitted = api_permitted
2231+
self.password_permitted = password_permitted
2232+
self.saml_permitted = saml_permitted
2233+
2234+
22122235
class AssetSeverity(BaseModel):
22132236

22142237
def __init__(

tenable_io/api/users.py

+35-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from json import loads
22

33
from tenable_io.api.base import BaseApi, BaseRequest
4-
from tenable_io.api.models import User, UserKeys, UserList
4+
from tenable_io.api.models import User, UserKeys, UserList, UserAuthorizations
55

66

77
class UsersApi(BaseApi):
@@ -95,6 +95,27 @@ def enabled(self, user_id, enabled):
9595
self._client.put('users/%(user_id)s/enabled', {'enabled': enabled}, {'user_id': user_id})
9696
return True
9797

98+
def authorizations(self, user_id):
99+
"""Returns authorizations for a specified user.
100+
101+
:param user_id: The user ID.
102+
:raise TenableIOApiException: When API error is encountered.
103+
:return: An instance of :class:`tenable_io.api.models.UserAuthorizations`
104+
"""
105+
response = self._client.get('users/%(user_id)s/authorizations', {'user_id': user_id})
106+
return UserAuthorizations.from_json(response.text)
107+
108+
def update_authorizations(self, user_id, authorizations_update):
109+
"""Updates a user's authorizations.
110+
111+
:param user_id: The user ID.
112+
:param authorizations_update: An instance of :class:`UserAuthorizationsRequest`.
113+
:raise TenableIOApiException: When API error is encountered.
114+
:return: True if successful.
115+
"""
116+
self._client.put('users/%(user_id)s/authorizations', authorizations_update, {'user_id': user_id})
117+
return True
118+
98119

99120
class UserCreateRequest(BaseRequest):
100121

@@ -126,3 +147,16 @@ def __init__(
126147
self.permissions = permissions
127148
self.name = name
128149
self.email = email
150+
151+
class UserAuthorizationsRequest(BaseRequest):
152+
153+
def __init__(
154+
self,
155+
api_permitted=None,
156+
password_permitted=None,
157+
saml_permitted=None
158+
):
159+
self.api_permitted = api_permitted
160+
self.password_permitted = password_permitted
161+
self.saml_permitted = saml_permitted
162+

0 commit comments

Comments
 (0)