Forgot Password

This commit is contained in:
saeid_01
2019-05-04 08:48:32 +04:30
parent c288cee800
commit c0523d8c4c
19 changed files with 335 additions and 384 deletions
@@ -1,11 +0,0 @@
<?php
namespace App\Packages\Messaging\src\Facades;
use Illuminate\Support\Facades\Facade;
use App\Packages\Messaging\src\Message;
class MessageResponse extends Facade {
protected static function getFacadeAccessor() { return Message::class; }
}
-20
View File
@@ -1,20 +0,0 @@
<?php
namespace App\Packages\Messaging\src;
class Message
{
public function success($data = null, $message = null, $title = null, $status = 'Success')
{
$message = isset($message) ? $message : trans('success_title');
$title = isset($title) ? $title : trans('success');
return response()->json(['status' => $status, 'message' => $message, 'title' => $title, 'data' => $data], 200);
}
public function error($message = null, $title = null, $statusCode = 422, $status = 'Faild', $data = null)
{
$message = isset($message) ? $message : trans('messages.faild_message');
$title = isset($title) ? $title : trans('messages.faild');
return response()->json(['status' => $status, 'errors' => ['message' => [$message, 'Title' => $title]], 'data' => $data], $statusCode);
}
}
+4 -3
View File
@@ -4,7 +4,9 @@ namespace Packages\Auth;
use Illuminate\Http\Request;
use App\User;
use App\Http\Controller\Api\Auth\LoginController;
use Carbon\Carbon;
use App\Http\Controllers\Api\Auth\LoginController;
use Packages\SMSSender\SMSSender;
trait SendsPasswordResetEmails
{
@@ -40,11 +42,10 @@ trait SendsPasswordResetEmails
if($user) {
$password = rand(10000000, 999999999);
$user->password = Hash::make($password);
$user->password = \Hash::make($password);
$user->save();
$request->merge([ 'cell_number' => $user->cell_number, 'password' => $password ]);
return (new LoginController())->login($request);
}
return \MessageResponse::error('User Not Found');
-5
View File
@@ -8,12 +8,7 @@ class SMSSender
private $password = null;
private $webService = null;
private $fromNumber = null;
private $messageFee = 15;
private $type = 'Other';
private static $panel = null;
private $pattern = [
'121' => 'کد فعال سازی: %activate-code%',
];
private function __construct() { }
Vendored
+1 -1
View File
@@ -219,7 +219,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-ActionButton[data-v-1346f0a2] {\r\n padding: 8px 22px;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-ActionButton[data-v-1346f0a2] {\n padding: 8px 22px;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -210,7 +210,7 @@ __webpack_require__.r(__webpack_exports__);
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-Border[data-v-7eb32e4a] {\r\n border: 1px solid;\n}\n.WM-Border-Black[data-v-7eb32e4a] {\r\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-7eb32e4a] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-7eb32e4a] {\r\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-7eb32e4a] {\r\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-7eb32e4a] {\r\n top: -25px !important;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-Border[data-v-7eb32e4a] {\n border: 1px solid;\n}\n.WM-Border-Black[data-v-7eb32e4a] {\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-7eb32e4a] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-7eb32e4a] {\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-7eb32e4a] {\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-7eb32e4a] {\n top: -25px !important;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -562,7 +562,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-Border-Gray[data-v-5cc5a650] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-5cc5a650] {\r\n background-color: #f5f5f5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\r\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\r\n bottom: -24px !important;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-Border-Gray[data-v-5cc5a650] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-5cc5a650] {\n background-color: #f5f5f5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-5cc5a650] {\n bottom: -24px !important;\n}\n", ""]);
Vendored
+1 -1
View File
@@ -225,7 +225,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n.WM-ActionButton[data-v-b1f1b72e] {\r\n padding: 8px 22px;\n}\r\n", ""]);
exports.push([module.i, "\n.WM-ActionButton[data-v-b1f1b72e] {\n padding: 8px 22px;\n}\n", ""]);
Vendored
+48 -14
View File
@@ -9,7 +9,17 @@
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js");
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/services */ "./resources/js/vue/services/index.js");
/* harmony import */ var _config_urls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config/urls */ "./resources/js/vue/config/urls.js");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -56,20 +66,45 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
return {
cell_number: ""
form: {
cell_number: ""
}
};
},
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])("auth", ["forgotPassword"]), Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapMutations"])("modal", ["changeCurrentModal"]), {
handleSubmit: function handleSubmit() {
this.changeCurrentModal({
modal: "modal-auth-verify-code"
});
}
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])("auth", ["forgotPassword"]), {
// ...mapMutations("modal", ["changeCurrentModal"]),
handleSubmit: function () {
var _handleSubmit = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() {
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
this.forgotPassword({
form: this.form
});
case 1:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function handleSubmit() {
return _handleSubmit.apply(this, arguments);
}
return handleSubmit;
}()
})
});
@@ -124,15 +159,14 @@ var render = function() {
attrs: {
name: "cellnumber",
label: "Cell Number",
id: "id1",
color: "black"
},
model: {
value: _vm.cell_number,
value: _vm.form.cell_number,
callback: function($$v) {
_vm.cell_number = $$v
_vm.$set(_vm.form, "cell_number", $$v)
},
expression: "cell_number"
expression: "form.cell_number"
}
})
],
@@ -190,7 +224,7 @@ var render = function() {
"router-link",
{
staticClass: "black--text",
attrs: { to: "login" }
attrs: { to: { name: "Login" } }
},
[
_c(
Vendored
+1 -55
View File
@@ -68,14 +68,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
@@ -242,52 +234,6 @@ var render = function() {
)
],
1
),
_vm._v(" "),
_c(
"v-flex",
{
staticClass:
"text-md-right text-sm-center text-xs-center",
attrs: { xs12: "", md6: "", sm6: "" }
},
[
_c(
"router-link",
{
staticClass: "black--text",
attrs: { to: "register" }
},
[
_c(
"v-btn",
{
staticClass:
"WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black"
},
[
_c(
"v-icon",
{
staticClass:
"black--text mr-2 caption"
},
[_vm._v("fas fa-plus")]
),
_vm._v(" "),
_c(
"span",
{ staticClass: "black--text" },
[_vm._v("Register")]
)
],
1
)
],
1
)
],
1
)
],
1
@@ -310,7 +256,7 @@ var render = function() {
[
_c(
"router-link",
{ attrs: { to: "/forgot-password" } },
{ attrs: { to: { name: "ForgotPassword" } } },
[
_c(
"span",
+1 -1
View File
@@ -1,3 +1,3 @@
{
"/vue/js/app.js": "/vue/js/app.js?id=38cf613a394ed614a026"
"/vue/js/app.js": "/vue/js/app.js?id=8c04dcb4c96b990c50a9"
}
+170 -180
View File
@@ -3352,14 +3352,16 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
return {
verifyCode: ""
form: {
code: ""
}
};
},
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])('auth', ['verifyCodeSMS']), {
submitVerifyCode: function submitVerifyCode() {
if (this.verifyCode != '') {
if (this.form.code != '') {
this.verifyCodeSMS({
verifyCode: this.verifyCode
form: this.form
});
}
}
@@ -8263,7 +8265,7 @@ exports.push([module.i, "/*!\n* Vuetify v1.5.11\n* Forged by John Leider\n* Rele
exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module
exports.push([module.i, "\n#core-footer {\r\n z-index: 0;\n}\r\n", ""]);
exports.push([module.i, "\n#core-footer {\n z-index: 0;\n}\n", ""]);
@@ -17001,11 +17003,11 @@ var render = function() {
color: "black"
},
model: {
value: _vm.verifyCode,
value: _vm.form.code,
callback: function($$v) {
_vm.verifyCode = $$v
_vm.$set(_vm.form, "code", $$v)
},
expression: "verifyCode"
expression: "form.code"
}
})
],
@@ -60537,6 +60539,7 @@ var map = {
"./material/Notification.vue": "./resources/js/vue/components/material/Notification.vue",
"./material/StatsCard.vue": "./resources/js/vue/components/material/StatsCard.vue",
"./modal/Base.vue": "./resources/js/vue/components/modal/Base.vue",
"./modal/auth/ChangePassword.vue": "./resources/js/vue/components/modal/auth/ChangePassword.vue",
"./modal/auth/VerifyCode.vue": "./resources/js/vue/components/modal/auth/VerifyCode.vue",
"./modal/user/Role.vue": "./resources/js/vue/components/modal/user/Role.vue"
};
@@ -61686,6 +61689,38 @@ __webpack_require__.r(__webpack_exports__);
/***/ }),
/***/ "./resources/js/vue/components/modal/auth/ChangePassword.vue":
/*!*******************************************************************!*\
!*** ./resources/js/vue/components/modal/auth/ChangePassword.vue ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
var render, staticRenderFns
var script = {}
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(
script,
render,
staticRenderFns,
false,
null,
null,
null
)
component.options.__file = "resources/js/vue/components/modal/auth/ChangePassword.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "./resources/js/vue/components/modal/auth/VerifyCode.vue":
@@ -61846,6 +61881,9 @@ var urls = {
storeTestType: "/TestTypes",
listTestTypeName: "/TestTypes/ListNames",
getInputs: "/GetInputs",
forgotPassword: "/password/phone",
sendVerifyCode: "/password/verifyCode",
changePassword: "/password/reset",
listTestType: function listTestType(page) {
return "/TestTypes?page=" + page;
},
@@ -62707,7 +62745,7 @@ var UserService = {
},
auth: {
username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE"
password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
}
};
_context.prev = 1;
@@ -62744,127 +62782,17 @@ var UserService = {
return login;
}(),
/**
* Login the user and store the access token to TokenService.
*
* @returns access_token
* @throws AuthenticationError
**/
forgotPassword: function () {
var _forgotPassword = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(cell_number) {
var requestData, response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
requestData = {
method: "post",
url: "forgotPassword",
data: {
cell_number: cell_number
},
auth: {
username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE"
}
};
_context2.prev = 1;
_context2.next = 4;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
case 4:
response = _context2.sent;
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].setAuthHeader();
return _context2.abrupt("return", response.data);
case 9:
_context2.prev = 9;
_context2.t0 = _context2["catch"](1);
throw new AuthenticationError(_context2.t0.response.status, _context2.t0.response.data.detail);
case 12:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[1, 9]]);
}));
function forgotPassword(_x3) {
return _forgotPassword.apply(this, arguments);
}
return forgotPassword;
}(),
/**
* Login the user and store the access token to TokenService.
*
* @returns access_token
* @throws AuthenticationError
**/
verifyCode: function () {
var _verifyCode2 = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(_verifyCode) {
var requestData, response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
requestData = {
method: "post",
url: "forgotPassword",
data: {
verifyCode: _verifyCode
},
auth: {
username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE"
}
};
_context3.prev = 1;
_context3.next = 4;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
case 4:
response = _context3.sent;
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].setAuthHeader();
return _context3.abrupt("return", response.data);
case 9:
_context3.prev = 9;
_context3.t0 = _context3["catch"](1);
throw new AuthenticationError(_context3.t0.response.status, _context3.t0.response.data.detail);
case 12:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[1, 9]]);
}));
function verifyCode(_x4) {
return _verifyCode2.apply(this, arguments);
}
return verifyCode;
}(),
/**
* Refresh the access token.
**/
refreshToken: function () {
var _refreshToken = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4() {
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() {
var refreshToken, requestData, response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) {
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
while (1) {
switch (_context4.prev = _context4.next) {
switch (_context2.prev = _context2.next) {
case 0:
refreshToken = _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].getRefreshToken();
requestData = {
@@ -62876,32 +62804,32 @@ var UserService = {
},
auth: {
username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE"
password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
}
};
_context4.prev = 2;
_context4.next = 5;
_context2.prev = 2;
_context2.next = 5;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
case 5:
response = _context4.sent;
response = _context2.sent;
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveToken(response.data.access_token);
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveRefreshToken(response.data.refresh_token); // Update the header in ApiService
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].setAuthHeader();
return _context4.abrupt("return", response.data.access_token);
return _context2.abrupt("return", response.data.access_token);
case 12:
_context4.prev = 12;
_context4.t0 = _context4["catch"](2);
throw new AuthenticationError(_context4.t0.response.status, _context4.t0.response.data.detail);
_context2.prev = 12;
_context2.t0 = _context2["catch"](2);
throw new AuthenticationError(_context2.t0.response.status, _context2.t0.response.data.detail);
case 15:
case "end":
return _context4.stop();
return _context2.stop();
}
}
}, _callee4, null, [[2, 12]]);
}, _callee2, null, [[2, 12]]);
}));
function refreshToken() {
@@ -62919,18 +62847,18 @@ var UserService = {
logout: function () {
var _logout = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5() {
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3() {
var response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) {
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) {
while (1) {
switch (_context5.prev = _context5.next) {
switch (_context3.prev = _context3.next) {
case 0:
_context5.prev = 0;
_context5.next = 3;
_context3.prev = 0;
_context3.next = 3;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].logout);
case 3:
response = _context5.sent;
response = _context3.sent;
// Remove the token and remove Authorization header from Api Service as well
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].removeToken();
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].removeRefreshToken();
@@ -62938,19 +62866,19 @@ var UserService = {
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].removeAuthHeader(); // NOTE: Again, we'll cover the 401 Interceptor a bit later.
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].unmount401Interceptor();
return _context5.abrupt("return", response.data);
return _context3.abrupt("return", response.data);
case 12:
_context5.prev = 12;
_context5.t0 = _context5["catch"](0);
throw new AuthenticationError(_context5.t0.response.status, _context5.t0.response.data.detail);
_context3.prev = 12;
_context3.t0 = _context3["catch"](0);
throw new AuthenticationError(_context3.t0.response.status, _context3.t0.response.data.detail);
case 15:
case "end":
return _context5.stop();
return _context3.stop();
}
}
}, _callee5, null, [[0, 12]]);
}, _callee3, null, [[0, 12]]);
}));
function logout() {
@@ -62968,26 +62896,26 @@ var UserService = {
getInfo: function () {
var _getInfo = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6() {
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4() {
var response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) {
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) {
while (1) {
switch (_context6.prev = _context6.next) {
switch (_context4.prev = _context4.next) {
case 0:
_context6.next = 2;
_context4.next = 2;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].get(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].getInfo);
case 2:
response = _context6.sent;
response = _context4.sent;
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveInfo(response.data.data);
return _context6.abrupt("return", response.data.data);
return _context4.abrupt("return", response.data.data);
case 5:
case "end":
return _context6.stop();
return _context4.stop();
}
}
}, _callee6);
}, _callee4);
}));
function getInfo() {
@@ -63494,8 +63422,9 @@ __webpack_require__.r(__webpack_exports__);
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js");
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/services/auth/user.service */ "./resources/js/vue/services/auth/user.service.js");
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/services */ "./resources/js/vue/services/index.js");
/* harmony import */ var _router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/router */ "./resources/js/vue/router/index.js");
/* harmony import */ var _config_urls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config/urls */ "./resources/js/vue/config/urls.js");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -63504,6 +63433,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
/* harmony default export */ __webpack_exports__["default"] = ({
login: function () {
var _login = _asyncToGenerator(
@@ -63519,7 +63449,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
commit('loginRequest');
_context.prev = 3;
_context.next = 6;
return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].login(cell_number, password);
return _services__WEBPACK_IMPORTED_MODULE_1__["UserService"].login(cell_number, password);
case 6:
token = _context.sent;
@@ -63535,7 +63465,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
_context.prev = 13;
_context.t0 = _context["catch"](3);
if (_context.t0 instanceof _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["AuthenticationError"]) {
if (_context.t0 instanceof _services__WEBPACK_IMPORTED_MODULE_1__["AuthenticationError"]) {
commit('loginError', {
errorCode: _context.t0.errorCode,
errorMessage: _context.t0.message
@@ -63562,20 +63492,28 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
var _forgotPassword = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(_ref3, _ref4) {
var commit, cell_number, result;
var commit, form, result;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
commit = _ref3.commit;
cell_number = _ref4.cell_number;
form = _ref4.form;
_context2.next = 4;
return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].forgotPassword(cell_number);
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].forgotPassword, form);
case 4:
result = _context2.sent;
case 5:
if (result && result.status == 200) {
commit('modal/changeCurrentModal', {
modal: "modal-auth-verify-code"
}, {
root: true
});
}
case 6:
case "end":
return _context2.stop();
}
@@ -63593,20 +63531,35 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
var _verifyCodeSMS = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(_ref5, _ref6) {
var commit, verifyCode, result;
var commit, dispatch, form, response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
commit = _ref5.commit;
verifyCode = _ref6.verifyCode;
commit = _ref5.commit, dispatch = _ref5.dispatch;
form = _ref6.form;
_context3.next = 4;
return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].verifyCode(verifyCode);
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].sendVerifyCode, form);
case 4:
result = _context3.sent;
response = _context3.sent;
case 5:
if (response && response.status == 200 && response.data.access_token) {
_services__WEBPACK_IMPORTED_MODULE_1__["TokenService"].saveToken(response.data.access_token);
_services__WEBPACK_IMPORTED_MODULE_1__["TokenService"].saveRefreshToken(response.data.refresh_token);
_services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].setAuthHeader();
commit('loginSuccess', response.data.access_token);
commit('modal/changeCurrentModal', {
modal: "modal-auth-change-password"
}, {
root: true
});
dispatch('info', {}, {
root: true
});
}
case 6:
case "end":
return _context3.stop();
}
@@ -63620,23 +63573,28 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
return verifyCodeSMS;
}(),
logout: function () {
var _logout = _asyncToGenerator(
changePassword: function () {
var _changePassword = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(_ref7) {
var commit, result;
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(_ref7, _ref8) {
var commit, form, response;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
commit = _ref7.commit;
_context4.next = 3;
return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].logout();
form = _ref8.form;
_context4.next = 4;
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].changePassword, form);
case 3:
result = _context4.sent;
commit('logoutSuccess');
_router__WEBPACK_IMPORTED_MODULE_2__["default"].push('/login');
case 4:
response = _context4.sent;
if (response && response.status == 200) {
commit('modal/closeModal', {}, {
root: true
});
}
case 6:
case "end":
@@ -63646,20 +63604,52 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
}, _callee4);
}));
function logout(_x7) {
function changePassword(_x7, _x8) {
return _changePassword.apply(this, arguments);
}
return changePassword;
}(),
logout: function () {
var _logout = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5(_ref9) {
var commit, result;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
commit = _ref9.commit;
_context5.next = 3;
return _services__WEBPACK_IMPORTED_MODULE_1__["UserService"].logout();
case 3:
result = _context5.sent;
commit('logoutSuccess');
_router__WEBPACK_IMPORTED_MODULE_2__["default"].push('/login');
case 6:
case "end":
return _context5.stop();
}
}
}, _callee5);
}));
function logout(_x9) {
return _logout.apply(this, arguments);
}
return logout;
}(),
refreshToken: function refreshToken(_ref8) {
var commit = _ref8.commit,
state = _ref8.state;
refreshToken: function refreshToken(_ref10) {
var commit = _ref10.commit,
state = _ref10.state;
// If this is the first time the refreshToken has been called, make a request
// otherwise return the same promise to the caller
if (!state.refreshTokenPromise) {
var p = _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].refreshToken();
var p = _services__WEBPACK_IMPORTED_MODULE_1__["UserService"].refreshToken();
commit('refreshTokenPromise', p); // Wait for the UserService.refreshToken() to resolve. On success set the token and clear promise
// Clear the promise on error as well.
@@ -64059,7 +64049,7 @@ module.exports = webpackAsyncContext;
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(/*! D:\Atom\Git\CSSD\resources\js\vue\main.js */"./resources/js/vue/main.js");
module.exports = __webpack_require__(/*! /home/saeid/Projects/Git/CSSD/resources/js/vue/main.js */"./resources/js/vue/main.js");
/***/ })
@@ -0,0 +1,61 @@
<template>
<v-form >
<v-container grid-list-xs>
<v-layout row wrap class="justify-center">
<v-flex xs12 md3 sm3 class="WM-WidthScreen-SM WM-WidthScreen-XS">
<material-card
color="black"
title="Change Password">
<v-layout row wrap class="px-3">
<v-flex xs12 md12 sm12>
<v-text-field
v-model="form.password"
label="Password"
color="black"
></v-text-field>
</v-flex>
<v-flex xs12 md12 sm12>
<v-text-field
v-model="form.password_confirmation"
label="Confirm Password"
color="black"
></v-text-field>
</v-flex>
</v-layout>
<v-layout row wrap class="px-3">
<v-flex xs12 md6 sm6 class="text-md-left text-sm-center text-xs-center">
<v-btn class="WM-CyanBlueGradient-BG" style="padding:10px 60px" @click="submitChangePassword">
<v-icon class="white--text mr-2 caption">fas fa-sign-in-alt</v-icon>
<span class="white--text">Submit</span>
</v-btn>
</v-flex>
</v-layout>
</material-card>
</v-flex>
</v-layout>
</v-container>
</v-form>
</template>
<script>
import { mapActions } from "vuex";
export default {
data() {
return {
form: {
password: "",
password_confirmation: "",
}
};
},
methods: {
...mapActions('auth', [
'changePassword'
]),
submitVerifyCode() {
if (this.form.code != '') {
this.changePassword({form: this.form});
}
}
}
};
</script>
@@ -9,7 +9,7 @@
<v-layout row wrap class="px-3">
<v-flex xs12 md12 sm12>
<v-text-field
v-model="verifyCode"
v-model="form.code"
label="Verify Code Number"
color="black"
></v-text-field>
@@ -30,11 +30,13 @@
</v-form>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
import { mapActions } from "vuex";
export default {
data() {
return {
verifyCode: "",
form: {
code: "",
}
};
},
methods: {
@@ -42,8 +44,8 @@ export default {
'verifyCodeSMS'
]),
submitVerifyCode() {
if (this.verifyCode != '') {
this.verifyCodeSMS({verifyCode: this.verifyCode});
if (this.form.code != '') {
this.verifyCodeSMS({form: this.form});
}
}
}
+3
View File
@@ -8,6 +8,9 @@ const urls = {
storeTestType : "/TestTypes",
listTestTypeName : "/TestTypes/ListNames",
getInputs : `/GetInputs`,
forgotPassword : `/password/phone`,
sendVerifyCode : `/password/verifyCode`,
changePassword : `/password/reset`,
listTestType : function(page) {
return "/TestTypes?page=" + page;
},
-63
View File
@@ -50,69 +50,6 @@ const UserService = {
);
}
},
/**
* Login the user and store the access token to TokenService.
*
* @returns access_token
* @throws AuthenticationError
**/
forgotPassword: async function(cell_number) {
const requestData = {
method: "post",
url: "forgotPassword",
data: {
cell_number
},
auth: {
username: process.env.MIX_APP_CLIENT_ID,
password: process.env.MIX_APP_CLIENT_SECRET
}
};
try {
const response = await ApiService.customRequest(requestData);
ApiService.setAuthHeader();
return response.data;
} catch (error) {
throw new AuthenticationError(
error.response.status,
error.response.data.detail
);
}
},
/**
* Login the user and store the access token to TokenService.
*
* @returns access_token
* @throws AuthenticationError
**/
verifyCode: async function(verifyCode) {
const requestData = {
method: "post",
url: "forgotPassword",
data: {
verifyCode
},
auth: {
username: process.env.MIX_APP_CLIENT_ID,
password: process.env.MIX_APP_CLIENT_SECRET
}
};
try {
const response = await ApiService.customRequest(requestData);
ApiService.setAuthHeader();
return response.data;
} catch (error) {
throw new AuthenticationError(
error.response.status,
error.response.data.detail
);
}
},
/**
* Refresh the access token.
**/
+25 -7
View File
@@ -1,5 +1,6 @@
import { UserService, AuthenticationError } from '@/services/auth/user.service'
import { UserService, AuthenticationError, ApiService, TokenService } from '@/services'
import router from '@/router'
import { urls } from '@/config/urls'
export default {
async login({ commit, dispatch }, {cell_number, password}) {
@@ -22,14 +23,31 @@ export default {
}
},
async forgotPassword({ commit }, {cell_number}) {
const result = await UserService.forgotPassword(cell_number);
// TODO: Open Modal For Get Section
async forgotPassword({commit}, {form}) {
var result = await ApiService.post(urls.forgotPassword, form);
if(result && result.status == 200) {
commit('modal/changeCurrentModal', { modal: "modal-auth-verify-code" }, {root: true});
}
},
async verifyCodeSMS({commit, dispatch}, {form}) {
var response = await ApiService.post(urls.sendVerifyCode, form);
if(response && response.status == 200 && response.data.access_token) {
TokenService.saveToken(response.data.access_token);
TokenService.saveRefreshToken(response.data.refresh_token);
ApiService.setAuthHeader();
commit('loginSuccess', response.data.access_token);
commit('modal/changeCurrentModal', { modal: "modal-auth-change-password" }, {root: true});
dispatch('info', {}, {root : true});
}
},
async verifyCodeSMS({ commit }, {verifyCode}) {
const result = await UserService.verifyCode(verifyCode);
// TODO: Open Modal For Get Section
async changePassword({commit}, {form}) {
var response = await ApiService.post(urls.changePassword, form);
if(response && response.status == 200 ) {
commit('modal/closeModal', {}, {root: true});
}
},
async logout({ commit }) {
+10 -7
View File
@@ -7,10 +7,9 @@
<v-layout row wrap class="px-3">
<v-flex xs12 md12 sm12>
<v-text-field
v-model="cell_number"
v-model="form.cell_number"
name="cellnumber"
label="Cell Number"
id="id1"
color="black"
></v-text-field>
</v-flex>
@@ -27,7 +26,7 @@
</v-btn>
</v-flex>
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center">
<router-link class="black--text" to="login">
<router-link class="black--text" :to="{name: 'Login'}">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-sign-in-alt</v-icon>
<span class="black--text">Login</span>
@@ -43,17 +42,21 @@
</template>
<script>
import { mapActions, mapMutations } from "vuex";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
export default {
data() {
return {
cell_number: ""
form :{
cell_number: ""
}
};
},
methods: {
...mapActions("auth", ["forgotPassword"]),
...mapMutations("modal", ["changeCurrentModal"]),
handleSubmit() {
this.changeCurrentModal({ modal: "modal-auth-verify-code" });
// ...mapMutations("modal", ["changeCurrentModal"]),
async handleSubmit() {
this.forgotPassword({form : this.form});
}
}
};
+1 -9
View File
@@ -38,18 +38,10 @@
<span class="white--text">Login</span>
</v-btn>
</v-flex>
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center">
<router-link class="black--text" to="register">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black">
<v-icon class="black--text mr-2 caption">fas fa-plus</v-icon>
<span class="black--text">Register</span>
</v-btn>
</router-link>
</v-flex>
</v-layout>
<v-layout row wrap class="text-md-left text-sm-center text-xs-center">
<v-flex xs12 md6 sm6 class="px-4 py-3">
<router-link to="/forgot-password">
<router-link :to="{name: 'ForgotPassword'}">
<span class="black--text" style="border-bottom:1px solid #000;">Forgot Password ?</span>
</router-link>
</v-flex>