Add tab for user actions. First action is a password change

This commit is contained in:
Cam
2024-01-23 10:20:02 -06:00
parent 8d88e32d91
commit 5861cc7d7e
27 changed files with 1643 additions and 14 deletions

View File

@ -1 +1 @@
3.0.51
3.0.52

View File

@ -3,4 +3,3 @@ six >= 1.10
python_dateutil >= 2.5.3
setuptools >= 21.0.0
urllib3 >= 1.15.1
openziti >= 0.8.1

View File

@ -27,6 +27,7 @@ from zrok_api.configuration import Configuration
from zrok_api.models.access_request import AccessRequest
from zrok_api.models.access_response import AccessResponse
from zrok_api.models.auth_user import AuthUser
from zrok_api.models.change_password_request import ChangePasswordRequest
from zrok_api.models.configuration import Configuration
from zrok_api.models.create_frontend_request import CreateFrontendRequest
from zrok_api.models.create_frontend_response import CreateFrontendResponse

View File

@ -32,6 +32,99 @@ class AccountApi(object):
api_client = ApiClient()
self.api_client = api_client
def change_password(self, **kwargs): # noqa: E501
"""change_password # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.change_password(async_req=True)
>>> result = thread.get()
:param async_req bool
:param ChangePasswordRequest body:
:return: None
If the method is called asynchronously,
returns the request thread.
"""
kwargs['_return_http_data_only'] = True
if kwargs.get('async_req'):
return self.change_password_with_http_info(**kwargs) # noqa: E501
else:
(data) = self.change_password_with_http_info(**kwargs) # noqa: E501
return data
def change_password_with_http_info(self, **kwargs): # noqa: E501
"""change_password # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.change_password_with_http_info(async_req=True)
>>> result = thread.get()
:param async_req bool
:param ChangePasswordRequest body:
:return: None
If the method is called asynchronously,
returns the request thread.
"""
all_params = ['body'] # noqa: E501
all_params.append('async_req')
all_params.append('_return_http_data_only')
all_params.append('_preload_content')
all_params.append('_request_timeout')
params = locals()
for key, val in six.iteritems(params['kwargs']):
if key not in all_params:
raise TypeError(
"Got an unexpected keyword argument '%s'"
" to method change_password" % key
)
params[key] = val
del params['kwargs']
collection_formats = {}
path_params = {}
query_params = []
header_params = {}
form_params = []
local_var_files = {}
body_params = None
if 'body' in params:
body_params = params['body']
# HTTP header `Accept`
header_params['Accept'] = self.api_client.select_header_accept(
['application/zrok.v1+json']) # noqa: E501
# HTTP header `Content-Type`
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
['application/zrok.v1+json']) # noqa: E501
# Authentication setting
auth_settings = [] # noqa: E501
return self.api_client.call_api(
'/changePassword', 'POST',
path_params,
query_params,
header_params,
body=body_params,
post_params=form_params,
files=local_var_files,
response_type=None, # noqa: E501
auth_settings=auth_settings,
async_req=params.get('async_req'),
_return_http_data_only=params.get('_return_http_data_only'),
_preload_content=params.get('_preload_content', True),
_request_timeout=params.get('_request_timeout'),
collection_formats=collection_formats)
def invite(self, **kwargs): # noqa: E501
"""invite # noqa: E501

View File

@ -219,9 +219,12 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
:return: The token for basic HTTP authentication.
"""
return urllib3.util.make_headers(
basic_auth=self.username + ':' + self.password
).get('authorization')
token = ""
if self.username or self.password:
token = urllib3.util.make_headers(
basic_auth=self.username + ':' + self.password
).get('authorization')
return token
def auth_settings(self):
"""Gets Auth Settings dict for api client.

View File

@ -17,6 +17,7 @@ from __future__ import absolute_import
from zrok_api.models.access_request import AccessRequest
from zrok_api.models.access_response import AccessResponse
from zrok_api.models.auth_user import AuthUser
from zrok_api.models.change_password_request import ChangePasswordRequest
from zrok_api.models.configuration import Configuration
from zrok_api.models.create_frontend_request import CreateFrontendRequest
from zrok_api.models.create_frontend_response import CreateFrontendResponse

View File

@ -0,0 +1,162 @@
# coding: utf-8
"""
zrok
zrok client access # noqa: E501
OpenAPI spec version: 0.3.0
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
import pprint
import re # noqa: F401
import six
class ChangePasswordRequest(object):
"""NOTE: This class is auto generated by the swagger code generator program.
Do not edit the class manually.
"""
"""
Attributes:
swagger_types (dict): The key is attribute name
and the value is attribute type.
attribute_map (dict): The key is attribute name
and the value is json key in definition.
"""
swagger_types = {
'email': 'str',
'old_password': 'str',
'new_password': 'str'
}
attribute_map = {
'email': 'email',
'old_password': 'oldPassword',
'new_password': 'newPassword'
}
def __init__(self, email=None, old_password=None, new_password=None): # noqa: E501
"""ChangePasswordRequest - a model defined in Swagger""" # noqa: E501
self._email = None
self._old_password = None
self._new_password = None
self.discriminator = None
if email is not None:
self.email = email
if old_password is not None:
self.old_password = old_password
if new_password is not None:
self.new_password = new_password
@property
def email(self):
"""Gets the email of this ChangePasswordRequest. # noqa: E501
:return: The email of this ChangePasswordRequest. # noqa: E501
:rtype: str
"""
return self._email
@email.setter
def email(self, email):
"""Sets the email of this ChangePasswordRequest.
:param email: The email of this ChangePasswordRequest. # noqa: E501
:type: str
"""
self._email = email
@property
def old_password(self):
"""Gets the old_password of this ChangePasswordRequest. # noqa: E501
:return: The old_password of this ChangePasswordRequest. # noqa: E501
:rtype: str
"""
return self._old_password
@old_password.setter
def old_password(self, old_password):
"""Sets the old_password of this ChangePasswordRequest.
:param old_password: The old_password of this ChangePasswordRequest. # noqa: E501
:type: str
"""
self._old_password = old_password
@property
def new_password(self):
"""Gets the new_password of this ChangePasswordRequest. # noqa: E501
:return: The new_password of this ChangePasswordRequest. # noqa: E501
:rtype: str
"""
return self._new_password
@new_password.setter
def new_password(self, new_password):
"""Sets the new_password of this ChangePasswordRequest.
:param new_password: The new_password of this ChangePasswordRequest. # noqa: E501
:type: str
"""
self._new_password = new_password
def to_dict(self):
"""Returns the model properties as a dict"""
result = {}
for attr, _ in six.iteritems(self.swagger_types):
value = getattr(self, attr)
if isinstance(value, list):
result[attr] = list(map(
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
value
))
elif hasattr(value, "to_dict"):
result[attr] = value.to_dict()
elif isinstance(value, dict):
result[attr] = dict(map(
lambda item: (item[0], item[1].to_dict())
if hasattr(item[1], "to_dict") else item,
value.items()
))
else:
result[attr] = value
if issubclass(ChangePasswordRequest, dict):
for key, value in self.items():
result[key] = value
return result
def to_str(self):
"""Returns the string representation of the model"""
return pprint.pformat(self.to_dict())
def __repr__(self):
"""For `print` and `pprint`"""
return self.to_str()
def __eq__(self, other):
"""Returns true if both objects are equal"""
if not isinstance(other, ChangePasswordRequest):
return False
return self.__dict__ == other.__dict__
def __ne__(self, other):
"""Returns true if both objects are not equal"""
return not self == other

View File

@ -42,11 +42,11 @@ class RESTResponse(io.IOBase):
def getheaders(self):
"""Returns a dictionary of the response headers."""
return self.urllib3_response.getheaders()
return self.urllib3_response.headers
def getheader(self, name, default=None):
"""Returns a given response header."""
return self.urllib3_response.getheader(name, default)
return self.urllib3_response.headers.get(name, default)
class RESTClientObject(object):