diff --git a/controller/changePassword.go b/controller/changePassword.go index ab05a494..a767ac6b 100644 --- a/controller/changePassword.go +++ b/controller/changePassword.go @@ -19,7 +19,7 @@ func newChangePasswordHandler(cfg *config.Config) *changePasswordHandler { } func (handler *changePasswordHandler) Handle(params account.ChangePasswordParams, principal *rest_model_zrok.Principal) middleware.Responder { - if params.Body == nil || params.Body.Email == "" || params.Body.OldPassword == "" || params.Body.NewPassword == "" { + if params.Body.Email == "" || params.Body.OldPassword == "" || params.Body.NewPassword == "" { logrus.Error("missing email, old, or new password") return account.NewChangePasswordUnauthorized() } diff --git a/rest_client_zrok/account/change_password_parameters.go b/rest_client_zrok/account/change_password_parameters.go index 8ab0d86c..565e059b 100644 --- a/rest_client_zrok/account/change_password_parameters.go +++ b/rest_client_zrok/account/change_password_parameters.go @@ -14,8 +14,6 @@ import ( "github.com/go-openapi/runtime" cr "github.com/go-openapi/runtime/client" "github.com/go-openapi/strfmt" - - "github.com/openziti/zrok/rest_model_zrok" ) // NewChangePasswordParams creates a new ChangePasswordParams object, @@ -64,7 +62,7 @@ ChangePasswordParams contains all the parameters to send to the API endpoint type ChangePasswordParams struct { // Body. - Body *rest_model_zrok.ChangePasswordRequest + Body ChangePasswordBody timeout time.Duration Context context.Context @@ -120,13 +118,13 @@ func (o *ChangePasswordParams) SetHTTPClient(client *http.Client) { } // WithBody adds the body to the change password params -func (o *ChangePasswordParams) WithBody(body *rest_model_zrok.ChangePasswordRequest) *ChangePasswordParams { +func (o *ChangePasswordParams) WithBody(body ChangePasswordBody) *ChangePasswordParams { o.SetBody(body) return o } // SetBody adds the body to the change password params -func (o *ChangePasswordParams) SetBody(body *rest_model_zrok.ChangePasswordRequest) { +func (o *ChangePasswordParams) SetBody(body ChangePasswordBody) { o.Body = body } @@ -137,10 +135,8 @@ func (o *ChangePasswordParams) WriteToRequest(r runtime.ClientRequest, reg strfm return err } var res []error - if o.Body != nil { - if err := r.SetBodyParam(o.Body); err != nil { - return err - } + if err := r.SetBodyParam(o.Body); err != nil { + return err } if len(res) > 0 { diff --git a/rest_client_zrok/account/change_password_responses.go b/rest_client_zrok/account/change_password_responses.go index 195afe8b..981c0d81 100644 --- a/rest_client_zrok/account/change_password_responses.go +++ b/rest_client_zrok/account/change_password_responses.go @@ -6,11 +6,13 @@ package account // Editing this file might prove futile when you re-run the swagger generate command import ( + "context" "fmt" "io" "github.com/go-openapi/runtime" "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" "github.com/openziti/zrok/rest_model_zrok" ) @@ -347,3 +349,47 @@ func (o *ChangePasswordInternalServerError) readResponse(response runtime.Client return nil } + +/* +ChangePasswordBody change password body +swagger:model ChangePasswordBody +*/ +type ChangePasswordBody struct { + + // email + Email string `json:"email,omitempty"` + + // new password + NewPassword string `json:"newPassword,omitempty"` + + // old password + OldPassword string `json:"oldPassword,omitempty"` +} + +// Validate validates this change password body +func (o *ChangePasswordBody) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change password body based on context it is used +func (o *ChangePasswordBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangePasswordBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangePasswordBody) UnmarshalBinary(b []byte) error { + var res ChangePasswordBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/rest_server_zrok/embedded_spec.go b/rest_server_zrok/embedded_spec.go index b2497856..30a4042b 100644 --- a/rest_server_zrok/embedded_spec.go +++ b/rest_server_zrok/embedded_spec.go @@ -137,7 +137,17 @@ func init() { "name": "body", "in": "body", "schema": { - "$ref": "#/definitions/changePasswordRequest" + "properties": { + "email": { + "type": "string" + }, + "newPassword": { + "type": "string" + }, + "oldPassword": { + "type": "string" + } + } } } ], @@ -1706,20 +1716,6 @@ func init() { } } }, - "changePasswordRequest": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "newPassword": { - "type": "string" - }, - "oldPassword": { - "type": "string" - } - } - }, "configuration": { "type": "object", "properties": { @@ -2446,7 +2442,17 @@ func init() { "name": "body", "in": "body", "schema": { - "$ref": "#/definitions/changePasswordRequest" + "properties": { + "email": { + "type": "string" + }, + "newPassword": { + "type": "string" + }, + "oldPassword": { + "type": "string" + } + } } } ], @@ -4017,20 +4023,6 @@ func init() { } } }, - "changePasswordRequest": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "newPassword": { - "type": "string" - }, - "oldPassword": { - "type": "string" - } - } - }, "configuration": { "type": "object", "properties": { diff --git a/rest_server_zrok/operations/account/change_password.go b/rest_server_zrok/operations/account/change_password.go index 5324b58e..5a0be969 100644 --- a/rest_server_zrok/operations/account/change_password.go +++ b/rest_server_zrok/operations/account/change_password.go @@ -6,9 +6,12 @@ package account // Editing this file might prove futile when you re-run the generate command import ( + "context" "net/http" "github.com/go-openapi/runtime/middleware" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" "github.com/openziti/zrok/rest_model_zrok" ) @@ -69,3 +72,46 @@ func (o *ChangePassword) ServeHTTP(rw http.ResponseWriter, r *http.Request) { o.Context.Respond(rw, r, route.Produces, route, res) } + +// ChangePasswordBody change password body +// +// swagger:model ChangePasswordBody +type ChangePasswordBody struct { + + // email + Email string `json:"email,omitempty"` + + // new password + NewPassword string `json:"newPassword,omitempty"` + + // old password + OldPassword string `json:"oldPassword,omitempty"` +} + +// Validate validates this change password body +func (o *ChangePasswordBody) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change password body based on context it is used +func (o *ChangePasswordBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangePasswordBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangePasswordBody) UnmarshalBinary(b []byte) error { + var res ChangePasswordBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/rest_server_zrok/operations/account/change_password_parameters.go b/rest_server_zrok/operations/account/change_password_parameters.go index 5afcfb6e..6dab80da 100644 --- a/rest_server_zrok/operations/account/change_password_parameters.go +++ b/rest_server_zrok/operations/account/change_password_parameters.go @@ -12,8 +12,6 @@ import ( "github.com/go-openapi/runtime" "github.com/go-openapi/runtime/middleware" "github.com/go-openapi/validate" - - "github.com/openziti/zrok/rest_model_zrok" ) // NewChangePasswordParams creates a new ChangePasswordParams object @@ -36,7 +34,7 @@ type ChangePasswordParams struct { /* In: body */ - Body *rest_model_zrok.ChangePasswordRequest + Body ChangePasswordBody } // BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface @@ -50,7 +48,7 @@ func (o *ChangePasswordParams) BindRequest(r *http.Request, route *middleware.Ma if runtime.HasBody(r) { defer r.Body.Close() - var body rest_model_zrok.ChangePasswordRequest + var body ChangePasswordBody if err := route.Consumer.Consume(r.Body, &body); err != nil { res = append(res, errors.NewParseError("body", "body", "", err)) } else { @@ -65,7 +63,7 @@ func (o *ChangePasswordParams) BindRequest(r *http.Request, route *middleware.Ma } if len(res) == 0 { - o.Body = &body + o.Body = body } } } diff --git a/sdk/python/sdk/zrok/zrok_api/__init__.py b/sdk/python/sdk/zrok/zrok_api/__init__.py index da69dcbe..0bd11dfa 100644 --- a/sdk/python/sdk/zrok/zrok_api/__init__.py +++ b/sdk/python/sdk/zrok/zrok_api/__init__.py @@ -28,7 +28,7 @@ from zrok_api.models.access_request import AccessRequest from zrok_api.models.access_response import AccessResponse from zrok_api.models.account_body import AccountBody from zrok_api.models.auth_user import AuthUser -from zrok_api.models.change_password_request import ChangePasswordRequest +from zrok_api.models.change_password_body import ChangePasswordBody 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 diff --git a/sdk/python/sdk/zrok/zrok_api/api/account_api.py b/sdk/python/sdk/zrok/zrok_api/api/account_api.py index 908994cc..61006311 100644 --- a/sdk/python/sdk/zrok/zrok_api/api/account_api.py +++ b/sdk/python/sdk/zrok/zrok_api/api/account_api.py @@ -41,7 +41,7 @@ class AccountApi(object): >>> result = thread.get() :param async_req bool - :param ChangePasswordRequest body: + :param ChangePasswordBody body: :return: None If the method is called asynchronously, returns the request thread. @@ -62,7 +62,7 @@ class AccountApi(object): >>> result = thread.get() :param async_req bool - :param ChangePasswordRequest body: + :param ChangePasswordBody body: :return: None If the method is called asynchronously, returns the request thread. diff --git a/sdk/python/sdk/zrok/zrok_api/models/__init__.py b/sdk/python/sdk/zrok/zrok_api/models/__init__.py index 8851c90f..5904d90f 100644 --- a/sdk/python/sdk/zrok/zrok_api/models/__init__.py +++ b/sdk/python/sdk/zrok/zrok_api/models/__init__.py @@ -18,7 +18,7 @@ from zrok_api.models.access_request import AccessRequest from zrok_api.models.access_response import AccessResponse from zrok_api.models.account_body import AccountBody from zrok_api.models.auth_user import AuthUser -from zrok_api.models.change_password_request import ChangePasswordRequest +from zrok_api.models.change_password_body import ChangePasswordBody 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 diff --git a/sdk/python/sdk/zrok/zrok_api/models/change_password_body.py b/sdk/python/sdk/zrok/zrok_api/models/change_password_body.py new file mode 100644 index 00000000..8c12afb1 --- /dev/null +++ b/sdk/python/sdk/zrok/zrok_api/models/change_password_body.py @@ -0,0 +1,162 @@ +# coding: utf-8 + +""" + zrok + + zrok client access # noqa: E501 + + OpenAPI spec version: 1.0.0 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + +import pprint +import re # noqa: F401 + +import six + +class ChangePasswordBody(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 + """ChangePasswordBody - 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 ChangePasswordBody. # noqa: E501 + + + :return: The email of this ChangePasswordBody. # noqa: E501 + :rtype: str + """ + return self._email + + @email.setter + def email(self, email): + """Sets the email of this ChangePasswordBody. + + + :param email: The email of this ChangePasswordBody. # noqa: E501 + :type: str + """ + + self._email = email + + @property + def old_password(self): + """Gets the old_password of this ChangePasswordBody. # noqa: E501 + + + :return: The old_password of this ChangePasswordBody. # noqa: E501 + :rtype: str + """ + return self._old_password + + @old_password.setter + def old_password(self, old_password): + """Sets the old_password of this ChangePasswordBody. + + + :param old_password: The old_password of this ChangePasswordBody. # noqa: E501 + :type: str + """ + + self._old_password = old_password + + @property + def new_password(self): + """Gets the new_password of this ChangePasswordBody. # noqa: E501 + + + :return: The new_password of this ChangePasswordBody. # noqa: E501 + :rtype: str + """ + return self._new_password + + @new_password.setter + def new_password(self, new_password): + """Sets the new_password of this ChangePasswordBody. + + + :param new_password: The new_password of this ChangePasswordBody. # 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(ChangePasswordBody, 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, ChangePasswordBody): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/specs/zrok.yml b/specs/zrok.yml index 68157466..5f34ee44 100644 --- a/specs/zrok.yml +++ b/specs/zrok.yml @@ -26,7 +26,13 @@ paths: - name: body in: body schema: - $ref: '#/definitions/changePasswordRequest' + properties: + email: + type: string + oldPassword: + type: string + newPassword: + type: string responses: 200: description: changed password @@ -1062,16 +1068,6 @@ definitions: password: type: string - changePasswordRequest: - type: object - properties: - email: - type: string - oldPassword: - type: string - newPassword: - type: string - configuration: type: object properties: diff --git a/ui/src/api/account.js b/ui/src/api/account.js index 42aaa3ae..bdcdbe46 100644 --- a/ui/src/api/account.js +++ b/ui/src/api/account.js @@ -4,7 +4,7 @@ import * as gateway from './gateway' /** * @param {object} options Optional options - * @param {module:types.changePasswordRequest} [options.body] + * @param {object} [options.body] * @return {Promise<object>} changed password */ export function changePassword(options) { diff --git a/ui/src/api/types.js b/ui/src/api/types.js index 625431a6..de58b591 100644 --- a/ui/src/api/types.js +++ b/ui/src/api/types.js @@ -25,15 +25,6 @@ * @property {string} password */ -/** - * @typedef changePasswordRequest - * @memberof module:types - * - * @property {string} email - * @property {string} oldPassword - * @property {string} newPassword - */ - /** * @typedef configuration * @memberof module:types diff --git a/ui100/src/AccountPasswordChangeModal.tsx b/ui100/src/AccountPasswordChangeModal.tsx index 1097d360..b4c7d4da 100644 --- a/ui100/src/AccountPasswordChangeModal.tsx +++ b/ui100/src/AccountPasswordChangeModal.tsx @@ -32,8 +32,9 @@ const AccountPasswordChangeModal =({ close, isOpen, user }: AccountPasswordChang newPassword: v.newPassword, } }) - .then(d => { + .then(() => { setBottomControl(<Typography>Your password has been changed!</Typography>); + setTimeout(() => { close() }, 3000); }) .catch(e => { setErrorMessage(<Typography color="red">Password change failed! Check your current password!</Typography>); diff --git a/ui100/src/SharePanel.tsx b/ui100/src/SharePanel.tsx index f9b570b5..661f3b2d 100644 --- a/ui100/src/SharePanel.tsx +++ b/ui100/src/SharePanel.tsx @@ -92,7 +92,7 @@ const SharePanel = ({ share }: SharePanelProps) => { <Grid2 display="flex" component="h4">{String(share.data.label)}</Grid2> </Grid2> <Grid2 container sx={{ flexGrow: 1, mt: 0, mb: 2 }} alignItems="center"> - <h5 style={{ margin: 0 }}>A {detail ? detail.shareMode : ''}{detail && detail.reserved ? ', reserved ' : ''} share with the token <code>{share.id}</code></h5> + <h5 style={{ margin: 0 }}>A {detail ? detail.shareMode : ''}{detail && detail.reserved ? ', reserved ' : ''} {detail?.backendMode} share with the token <code>{share.id}</code></h5> </Grid2> <Grid2 container sx={{ flexGrow: 1, mb: 3 }} alignItems="left"> <Tooltip title="Share Metrics">