class ResetPassword(View, Controller):
    """Reset Password Page Controller"""

    template_name = 'templates/reset_password.html'

    @redirect_if_not_installed
    @redirect_if_authenticated
    def get(self, request, token):

        self.__reset_password_core = ResetPasswordModule()

        self.autoload_options()
        self.context_push({
            "page_title":
            _("Reset Password · %s") %
            self.context_get("app_name", os.getenv("APP_NAME", "Silverback")),
            "reset_token":
            token
        })

        if not self.__reset_password_core.check_token(token):
            messages.error(
                request,
                _("Reset token is expired or invalid, Please request another token!"
                  ))
            return redirect("app.web.forgot_password")

        return render(request, self.template_name, self.context_get())
Exemple #2
0
    def get(self, request, token):

        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""
        self.__reset_password_core = ResetPasswordModule()
        self.__context = Context()
        self.__option_entity = OptionEntity()

        self.__context.autoload_options()
        self.__context.push({
            "page_title":
            _("Reset Password · %s") % self.__context.get(
                "app_name", os.getenv("APP_NAME", "Silverback")),
            "reset_token":
            token
        })

        if not self.__reset_password_core.check_token(token):
            messages.error(
                request,
                _("Reset token is expired or invalid, Please request another token!"
                  ))
            return redirect("app.web.forgot_password")

        return render(request, self.template_name, self.__context.get())
 def __init__(self):
     self.__request = Request()
     self.__response = Response()
     self.__helpers = Helpers()
     self.__form = Form()
     self.__reset_password = ResetPasswordModule()
     self.__logger = self.__helpers.get_logger(__name__)
     self.__form.add_validator(ExtraRules())
    def get(self, request, token):

        self.__reset_password_core = ResetPasswordModule()

        self.autoload_options()
        self.context_push({
            "page_title":
            _("Reset Password · %s") %
            self.context_get("app_name", os.getenv("APP_NAME", "Silverback")),
            "reset_token":
            token
        })

        if not self.__reset_password_core.check_token(token):
            messages.error(
                request,
                _("Reset token is expired or invalid, Please request another token!"
                  ))
            return redirect("app.web.forgot_password")

        return render(request, self.template_name, self.context_get())
class ResetPassword(View):

    __request = None
    __response = None
    __helpers = None
    __form = None
    __reset_password = None
    __logger = None
    __correlation_id = None

    def __init__(self):
        self.__request = Request()
        self.__response = Response()
        self.__helpers = Helpers()
        self.__form = Form()
        self.__reset_password = ResetPasswordModule()
        self.__logger = self.__helpers.get_logger(__name__)
        self.__form.add_validator(ExtraRules())

    @stop_request_if_authenticated
    def post(self, request):

        self.__correlation_id = request.META[
            "X-Correlation-ID"] if "X-Correlation-ID" in request.META else ""

        self.__request.set_request(request)

        request_data = self.__request.get_request_data("post", {
            "reset_token": "",
            "new_password": ""
        })

        self.__form.add_inputs({
            'reset_token': {
                'value': request_data["reset_token"],
                'sanitize': {
                    'escape': {},
                    'strip': {}
                },
                'validate': {}
            },
            'new_password': {
                'value': request_data["new_password"],
                'validate': {
                    'sv_password': {
                        'error':
                        _('Error! Password must contain at least uppercase letter, lowercase letter, numbers and special character.'
                          )
                    },
                    'length_between': {
                        'param': [7, 20],
                        'error':
                        _('Error! Password length must be from 8 to 20 characters.'
                          )
                    }
                }
            }
        })

        self.__form.process()

        if not self.__form.is_passed():
            return JsonResponse(
                self.__response.send_errors_failure(self.__form.get_errors(),
                                                    {}, self.__correlation_id))

        if not self.__reset_password.check_token(
                self.__form.get_sinput("reset_token")):
            return JsonResponse(
                self.__response.send_private_failure(
                    [{
                        "type": "error",
                        "message":
                        _("Error! Reset token is expired or invalid.")
                    }], {}, self.__correlation_id))

        result = self.__reset_password.reset_password(
            self.__form.get_sinput("reset_token"),
            self.__form.get_sinput("new_password"))

        result &= self.__reset_password.delete_reset_request(
            self.__form.get_sinput("reset_token"))

        if not result:
            return JsonResponse(
                self.__response.send_private_failure([{
                    "type":
                    "error",
                    "message":
                    _("Error! Something goes wrong while resetting password.")
                }], {}, self.__correlation_id))
        else:
            return JsonResponse(
                self.__response.send_private_success(
                    [{
                        "type": "success",
                        "message": _("Password updated successfully.")
                    }], {}, self.__correlation_id))
Exemple #6
0
 def __init__(self):
     self.__reset_password = ResetPasswordModule()
Exemple #7
0
class ResetPassword(View, Controller):
    """Reset Password Private Endpoint Controller"""
    def __init__(self):
        self.__reset_password = ResetPasswordModule()

    @stop_request_if_authenticated
    def post(self, request):

        request_data = self.get_request_data(request, "post", {
            "reset_token": "",
            "new_password": ""
        })

        self.form().add_inputs({
            'reset_token': {
                'value': request_data["reset_token"],
                'sanitize': {
                    'escape': {},
                    'strip': {}
                },
                'validate': {}
            },
            'new_password': {
                'value': request_data["new_password"],
                'validate': {
                    'sv_password': {
                        'error':
                        _('Error! Password must contain at least uppercase letter, lowercase letter, numbers and special character.'
                          )
                    },
                    'length_between': {
                        'param': [7, 20],
                        'error':
                        _('Error! Password length must be from 8 to 20 characters.'
                          )
                    }
                }
            }
        })

        self.form().process()

        if not self.form().is_passed():
            return self.json(self.form().get_errors())

        if not self.__reset_password.check_token(
                self.form().get_sinput("reset_token")):
            return self.json([{
                "type":
                "error",
                "message":
                _("Error! Reset token is expired or invalid.")
            }])

        result = self.__reset_password.reset_password(
            self.form().get_sinput("reset_token"),
            self.form().get_sinput("new_password"))

        result &= self.__reset_password.delete_reset_request(
            self.form().get_sinput("reset_token"))

        if not result:
            return self.json([{
                "type":
                "error",
                "message":
                _("Error! Something goes wrong while resetting password.")
            }])
        else:
            return self.json([{
                "type": "success",
                "message": _("Password updated successfully.")
            }])