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 Illuminate\Http\Request;
use App\User; 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 trait SendsPasswordResetEmails
{ {
@@ -40,11 +42,10 @@ trait SendsPasswordResetEmails
if($user) { if($user) {
$password = rand(10000000, 999999999); $password = rand(10000000, 999999999);
$user->password = Hash::make($password); $user->password = \Hash::make($password);
$user->save(); $user->save();
$request->merge([ 'cell_number' => $user->cell_number, 'password' => $password ]); $request->merge([ 'cell_number' => $user->cell_number, 'password' => $password ]);
return (new LoginController())->login($request); return (new LoginController())->login($request);
} }
return \MessageResponse::error('User Not Found'); return \MessageResponse::error('User Not Found');
-5
View File
@@ -8,12 +8,7 @@ class SMSSender
private $password = null; private $password = null;
private $webService = null; private $webService = null;
private $fromNumber = null; private $fromNumber = null;
private $messageFee = 15;
private $type = 'Other';
private static $panel = null; private static $panel = null;
private $pattern = [
'121' => 'کد فعال سازی: %activate-code%',
];
private function __construct() { } 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); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // 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); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // 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); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // 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); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // 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
+45 -11
View File
@@ -9,7 +9,17 @@
"use strict"; "use strict";
__webpack_require__.r(__webpack_exports__); __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 _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; } 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"] = ({ /* harmony default export */ __webpack_exports__["default"] = ({
data: function data() { data: function data() {
return { return {
form: {
cell_number: "" cell_number: ""
}
}; };
}, },
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])("auth", ["forgotPassword"]), Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapMutations"])("modal", ["changeCurrentModal"]), { methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])("auth", ["forgotPassword"]), {
handleSubmit: function handleSubmit() { // ...mapMutations("modal", ["changeCurrentModal"]),
this.changeCurrentModal({ handleSubmit: function () {
modal: "modal-auth-verify-code" 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: { attrs: {
name: "cellnumber", name: "cellnumber",
label: "Cell Number", label: "Cell Number",
id: "id1",
color: "black" color: "black"
}, },
model: { model: {
value: _vm.cell_number, value: _vm.form.cell_number,
callback: function($$v) { 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", "router-link",
{ {
staticClass: "black--text", staticClass: "black--text",
attrs: { to: "login" } attrs: { to: { name: "Login" } }
}, },
[ [
_c( _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"] = ({ /* harmony default export */ __webpack_exports__["default"] = ({
data: function data() { data: function data() {
@@ -242,52 +234,6 @@ var render = function() {
) )
], ],
1 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 1
@@ -310,7 +256,7 @@ var render = function() {
[ [
_c( _c(
"router-link", "router-link",
{ attrs: { to: "/forgot-password" } }, { attrs: { to: { name: "ForgotPassword" } } },
[ [
_c( _c(
"span", "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"] = ({ /* harmony default export */ __webpack_exports__["default"] = ({
data: function data() { data: function data() {
return { return {
verifyCode: "" form: {
code: ""
}
}; };
}, },
methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])('auth', ['verifyCodeSMS']), { methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])('auth', ['verifyCodeSMS']), {
submitVerifyCode: function submitVerifyCode() { submitVerifyCode: function submitVerifyCode() {
if (this.verifyCode != '') { if (this.form.code != '') {
this.verifyCodeSMS({ 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); exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false);
// Module // 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" color: "black"
}, },
model: { model: {
value: _vm.verifyCode, value: _vm.form.code,
callback: function($$v) { 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/Notification.vue": "./resources/js/vue/components/material/Notification.vue",
"./material/StatsCard.vue": "./resources/js/vue/components/material/StatsCard.vue", "./material/StatsCard.vue": "./resources/js/vue/components/material/StatsCard.vue",
"./modal/Base.vue": "./resources/js/vue/components/modal/Base.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/auth/VerifyCode.vue": "./resources/js/vue/components/modal/auth/VerifyCode.vue",
"./modal/user/Role.vue": "./resources/js/vue/components/modal/user/Role.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": /***/ "./resources/js/vue/components/modal/auth/VerifyCode.vue":
@@ -61846,6 +61881,9 @@ var urls = {
storeTestType: "/TestTypes", storeTestType: "/TestTypes",
listTestTypeName: "/TestTypes/ListNames", listTestTypeName: "/TestTypes/ListNames",
getInputs: "/GetInputs", getInputs: "/GetInputs",
forgotPassword: "/password/phone",
sendVerifyCode: "/password/verifyCode",
changePassword: "/password/reset",
listTestType: function listTestType(page) { listTestType: function listTestType(page) {
return "/TestTypes?page=" + page; return "/TestTypes?page=" + page;
}, },
@@ -62707,7 +62745,7 @@ var UserService = {
}, },
auth: { auth: {
username: "2", username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE" password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
} }
}; };
_context.prev = 1; _context.prev = 1;
@@ -62744,127 +62782,17 @@ var UserService = {
return login; 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. * Refresh the access token.
**/ **/
refreshToken: function () { refreshToken: function () {
var _refreshToken = _asyncToGenerator( var _refreshToken = _asyncToGenerator(
/*#__PURE__*/ /*#__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; 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) { while (1) {
switch (_context4.prev = _context4.next) { switch (_context2.prev = _context2.next) {
case 0: case 0:
refreshToken = _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].getRefreshToken(); refreshToken = _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].getRefreshToken();
requestData = { requestData = {
@@ -62876,32 +62804,32 @@ var UserService = {
}, },
auth: { auth: {
username: "2", username: "2",
password: "vAhCu2Y4mxfjlr8uTSxpBmjn2rWPIEolnr73ETAE" password: "r46iu0QJFTrC30H0fEoBbxTGmbJQjjOlSQYFYS7w"
} }
}; };
_context4.prev = 2; _context2.prev = 2;
_context4.next = 5; _context2.next = 5;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData); return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
case 5: 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"].saveToken(response.data.access_token);
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveRefreshToken(response.data.refresh_token); // Update the header in ApiService _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(); _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: case 12:
_context4.prev = 12; _context2.prev = 12;
_context4.t0 = _context4["catch"](2); _context2.t0 = _context2["catch"](2);
throw new AuthenticationError(_context4.t0.response.status, _context4.t0.response.data.detail); throw new AuthenticationError(_context2.t0.response.status, _context2.t0.response.data.detail);
case 15: case 15:
case "end": case "end":
return _context4.stop(); return _context2.stop();
} }
} }
}, _callee4, null, [[2, 12]]); }, _callee2, null, [[2, 12]]);
})); }));
function refreshToken() { function refreshToken() {
@@ -62919,18 +62847,18 @@ var UserService = {
logout: function () { logout: function () {
var _logout = _asyncToGenerator( var _logout = _asyncToGenerator(
/*#__PURE__*/ /*#__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; 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) { while (1) {
switch (_context5.prev = _context5.next) { switch (_context3.prev = _context3.next) {
case 0: case 0:
_context5.prev = 0; _context3.prev = 0;
_context5.next = 3; _context3.next = 3;
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].logout); return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].logout);
case 3: case 3:
response = _context5.sent; response = _context3.sent;
// Remove the token and remove Authorization header from Api Service as well // 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"].removeToken();
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].removeRefreshToken(); _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"].removeAuthHeader(); // NOTE: Again, we'll cover the 401 Interceptor a bit later.
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].unmount401Interceptor(); _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].unmount401Interceptor();
return _context5.abrupt("return", response.data); return _context3.abrupt("return", response.data);
case 12: case 12:
_context5.prev = 12; _context3.prev = 12;
_context5.t0 = _context5["catch"](0); _context3.t0 = _context3["catch"](0);
throw new AuthenticationError(_context5.t0.response.status, _context5.t0.response.data.detail); throw new AuthenticationError(_context3.t0.response.status, _context3.t0.response.data.detail);
case 15: case 15:
case "end": case "end":
return _context5.stop(); return _context3.stop();
} }
} }
}, _callee5, null, [[0, 12]]); }, _callee3, null, [[0, 12]]);
})); }));
function logout() { function logout() {
@@ -62968,26 +62896,26 @@ var UserService = {
getInfo: function () { getInfo: function () {
var _getInfo = _asyncToGenerator( var _getInfo = _asyncToGenerator(
/*#__PURE__*/ /*#__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; 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) { while (1) {
switch (_context6.prev = _context6.next) { switch (_context4.prev = _context4.next) {
case 0: 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); return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].get(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].getInfo);
case 2: case 2:
response = _context6.sent; response = _context4.sent;
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveInfo(response.data.data); _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 5:
case "end": case "end":
return _context6.stop(); return _context4.stop();
} }
} }
}, _callee6); }, _callee4);
})); }));
function getInfo() { function getInfo() {
@@ -63494,8 +63422,9 @@ __webpack_require__.r(__webpack_exports__);
__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__ = __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 _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 _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); } } 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"] = ({ /* harmony default export */ __webpack_exports__["default"] = ({
login: function () { login: function () {
var _login = _asyncToGenerator( var _login = _asyncToGenerator(
@@ -63519,7 +63449,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
commit('loginRequest'); commit('loginRequest');
_context.prev = 3; _context.prev = 3;
_context.next = 6; _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: case 6:
token = _context.sent; token = _context.sent;
@@ -63535,7 +63465,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
_context.prev = 13; _context.prev = 13;
_context.t0 = _context["catch"](3); _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', { commit('loginError', {
errorCode: _context.t0.errorCode, errorCode: _context.t0.errorCode,
errorMessage: _context.t0.message errorMessage: _context.t0.message
@@ -63562,20 +63492,28 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
var _forgotPassword = _asyncToGenerator( var _forgotPassword = _asyncToGenerator(
/*#__PURE__*/ /*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(_ref3, _ref4) { _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) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
while (1) { while (1) {
switch (_context2.prev = _context2.next) { switch (_context2.prev = _context2.next) {
case 0: case 0:
commit = _ref3.commit; commit = _ref3.commit;
cell_number = _ref4.cell_number; form = _ref4.form;
_context2.next = 4; _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: case 4:
result = _context2.sent; result = _context2.sent;
case 5: if (result && result.status == 200) {
commit('modal/changeCurrentModal', {
modal: "modal-auth-verify-code"
}, {
root: true
});
}
case 6:
case "end": case "end":
return _context2.stop(); return _context2.stop();
} }
@@ -63593,20 +63531,35 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
var _verifyCodeSMS = _asyncToGenerator( var _verifyCodeSMS = _asyncToGenerator(
/*#__PURE__*/ /*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(_ref5, _ref6) { _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) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) {
while (1) { while (1) {
switch (_context3.prev = _context3.next) { switch (_context3.prev = _context3.next) {
case 0: case 0:
commit = _ref5.commit; commit = _ref5.commit, dispatch = _ref5.dispatch;
verifyCode = _ref6.verifyCode; form = _ref6.form;
_context3.next = 4; _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: 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": case "end":
return _context3.stop(); return _context3.stop();
} }
@@ -63620,23 +63573,28 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
return verifyCodeSMS; return verifyCodeSMS;
}(), }(),
logout: function () { changePassword: function () {
var _logout = _asyncToGenerator( var _changePassword = _asyncToGenerator(
/*#__PURE__*/ /*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(_ref7) { _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee4(_ref7, _ref8) {
var commit, result; var commit, form, 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 _callee4$(_context4) {
while (1) { while (1) {
switch (_context4.prev = _context4.next) { switch (_context4.prev = _context4.next) {
case 0: case 0:
commit = _ref7.commit; commit = _ref7.commit;
_context4.next = 3; form = _ref8.form;
return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].logout(); _context4.next = 4;
return _services__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].changePassword, form);
case 3: case 4:
result = _context4.sent; response = _context4.sent;
commit('logoutSuccess');
_router__WEBPACK_IMPORTED_MODULE_2__["default"].push('/login'); if (response && response.status == 200) {
commit('modal/closeModal', {}, {
root: true
});
}
case 6: case 6:
case "end": case "end":
@@ -63646,20 +63604,52 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
}, _callee4); }, _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.apply(this, arguments);
} }
return logout; return logout;
}(), }(),
refreshToken: function refreshToken(_ref8) { refreshToken: function refreshToken(_ref10) {
var commit = _ref8.commit, var commit = _ref10.commit,
state = _ref8.state; state = _ref10.state;
// If this is the first time the refreshToken has been called, make a request // If this is the first time the refreshToken has been called, make a request
// otherwise return the same promise to the caller // otherwise return the same promise to the caller
if (!state.refreshTokenPromise) { 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 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. // Clear the promise on error as well.
@@ -64059,7 +64049,7 @@ module.exports = webpackAsyncContext;
/*! no static exports found */ /*! no static exports found */
/***/ (function(module, exports, __webpack_require__) { /***/ (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-layout row wrap class="px-3">
<v-flex xs12 md12 sm12> <v-flex xs12 md12 sm12>
<v-text-field <v-text-field
v-model="verifyCode" v-model="form.code"
label="Verify Code Number" label="Verify Code Number"
color="black" color="black"
></v-text-field> ></v-text-field>
@@ -30,11 +30,13 @@
</v-form> </v-form>
</template> </template>
<script> <script>
import { mapGetters, mapActions } from "vuex"; import { mapActions } from "vuex";
export default { export default {
data() { data() {
return { return {
verifyCode: "", form: {
code: "",
}
}; };
}, },
methods: { methods: {
@@ -42,8 +44,8 @@ export default {
'verifyCodeSMS' 'verifyCodeSMS'
]), ]),
submitVerifyCode() { submitVerifyCode() {
if (this.verifyCode != '') { if (this.form.code != '') {
this.verifyCodeSMS({verifyCode: this.verifyCode}); this.verifyCodeSMS({form: this.form});
} }
} }
} }
+3
View File
@@ -8,6 +8,9 @@ const urls = {
storeTestType : "/TestTypes", storeTestType : "/TestTypes",
listTestTypeName : "/TestTypes/ListNames", listTestTypeName : "/TestTypes/ListNames",
getInputs : `/GetInputs`, getInputs : `/GetInputs`,
forgotPassword : `/password/phone`,
sendVerifyCode : `/password/verifyCode`,
changePassword : `/password/reset`,
listTestType : function(page) { listTestType : function(page) {
return "/TestTypes?page=" + 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. * 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 router from '@/router'
import { urls } from '@/config/urls'
export default { export default {
async login({ commit, dispatch }, {cell_number, password}) { async login({ commit, dispatch }, {cell_number, password}) {
@@ -22,14 +23,31 @@ export default {
} }
}, },
async forgotPassword({ commit }, {cell_number}) { async forgotPassword({commit}, {form}) {
const result = await UserService.forgotPassword(cell_number); var result = await ApiService.post(urls.forgotPassword, form);
// TODO: Open Modal For Get Section if(result && result.status == 200) {
commit('modal/changeCurrentModal', { modal: "modal-auth-verify-code" }, {root: true});
}
}, },
async verifyCodeSMS({ commit }, {verifyCode}) {
const result = await UserService.verifyCode(verifyCode); async verifyCodeSMS({commit, dispatch}, {form}) {
// TODO: Open Modal For Get Section 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 changePassword({commit}, {form}) {
var response = await ApiService.post(urls.changePassword, form);
if(response && response.status == 200 ) {
commit('modal/closeModal', {}, {root: true});
}
}, },
async logout({ commit }) { async logout({ commit }) {
@@ -7,10 +7,9 @@
<v-layout row wrap class="px-3"> <v-layout row wrap class="px-3">
<v-flex xs12 md12 sm12> <v-flex xs12 md12 sm12>
<v-text-field <v-text-field
v-model="cell_number" v-model="form.cell_number"
name="cellnumber" name="cellnumber"
label="Cell Number" label="Cell Number"
id="id1"
color="black" color="black"
></v-text-field> ></v-text-field>
</v-flex> </v-flex>
@@ -27,7 +26,7 @@
</v-btn> </v-btn>
</v-flex> </v-flex>
<v-flex xs12 md6 sm6 class="text-md-right text-sm-center text-xs-center"> <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-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> <v-icon class="black--text mr-2 caption">fas fa-sign-in-alt</v-icon>
<span class="black--text">Login</span> <span class="black--text">Login</span>
@@ -43,17 +42,21 @@
</template> </template>
<script> <script>
import { mapActions, mapMutations } from "vuex"; import { mapActions, mapMutations } from "vuex";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
export default { export default {
data() { data() {
return { return {
form :{
cell_number: "" cell_number: ""
}
}; };
}, },
methods: { methods: {
...mapActions("auth", ["forgotPassword"]), ...mapActions("auth", ["forgotPassword"]),
...mapMutations("modal", ["changeCurrentModal"]), // ...mapMutations("modal", ["changeCurrentModal"]),
handleSubmit() { async handleSubmit() {
this.changeCurrentModal({ modal: "modal-auth-verify-code" }); this.forgotPassword({form : this.form});
} }
} }
}; };
+1 -9
View File
@@ -38,18 +38,10 @@
<span class="white--text">Login</span> <span class="white--text">Login</span>
</v-btn> </v-btn>
</v-flex> </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>
<v-layout row wrap class="text-md-left text-sm-center text-xs-center"> <v-layout row wrap class="text-md-left text-sm-center text-xs-center">
<v-flex xs12 md6 sm6 class="px-4 py-3"> <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> <span class="black--text" style="border-bottom:1px solid #000;">Forgot Password ?</span>
</router-link> </router-link>
</v-flex> </v-flex>