Unverified Commit 9250b406 authored by Viral Solani's avatar Viral Solani Committed by GitHub

Merge pull request #387 from viralsolani/develop

Merge Develop branch..
parents 431752cf 322f2480
APP_NAME="Laravel Admin Panel" APP_NAME="Laravel Admin Panel"
APP_SHORT_NAME="LAP" APP_SHORT_NAME="LAP"
APP_ENV=local APP_ENV=local
APP_KEY=base64:O+TrollIDwasHEREtMG9kBc+/Q32exQLusNVhnq558w= APP_KEY=
APP_DEBUG=true APP_DEBUG=true
APP_LOG_LEVEL=debug APP_LOG_LEVEL=debug
APP_URL=http://localhost APP_URL=http://localhost
...@@ -21,6 +21,7 @@ REQUIRES_APPROVAL=false ...@@ -21,6 +21,7 @@ REQUIRES_APPROVAL=false
BROADCAST_DRIVER=log BROADCAST_DRIVER=log
CACHE_DRIVER=file CACHE_DRIVER=file
SESSION_DRIVER=file SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync QUEUE_DRIVER=sync
#Session Timeout #Session Timeout
......
...@@ -36,4 +36,6 @@ public/img/backend/blog_images/* ...@@ -36,4 +36,6 @@ public/img/backend/blog_images/*
public/mix-manifest.json public/mix-manifest.json
public/access.log public/access.log
public/error.log public/error.log
!public/js/jquerysession.min.js !public/js/jquerysession.min.js
\ No newline at end of file output.txt
.php_cs.cache
\ No newline at end of file
...@@ -115,6 +115,13 @@ You can now access the server at http://localhost:8000 ...@@ -115,6 +115,13 @@ You can now access the server at http://localhost:8000
- To run test cases, add SQLite support to your php - To run test cases, add SQLite support to your php
## Other Important Commands
- To fix php coding standard issues run - composer format
- To perform various self diagnosis tests on your Laravel application. run - php artisan self-diagnosis
- To clear all cache run - composer clear-all
- To built Cache run - composer cache-all
- To clear and built cache run - composer cc
## Logging In ## Logging In
`php artisan db:seed` adds three users with respective roles. The credentials are as follows: `php artisan db:seed` adds three users with respective roles. The credentials are as follows:
......
...@@ -82,7 +82,7 @@ class BlogTagsController extends APIController ...@@ -82,7 +82,7 @@ class BlogTagsController extends APIController
$validation = $this->validatingRequest($request, $blog_tag->id); $validation = $this->validatingRequest($request, $blog_tag->id);
if ($validation->fails()) { if ($validation->fails()) {
return $this->throwValidation($validation); return $this->throwValidation($validation->messages()->first());
} }
$this->repository->update($blog_tag, $request->all()); $this->repository->update($blog_tag, $request->all());
......
...@@ -31,7 +31,7 @@ class PagesController extends APIController ...@@ -31,7 +31,7 @@ class PagesController extends APIController
{ {
$limit = $request->get('paginate') ? $request->get('paginate') : 25; $limit = $request->get('paginate') ? $request->get('paginate') : 25;
$orderBy = $request->get('orderBy') ? $request->get('orderBy') : 'ASC'; $orderBy = $request->get('orderBy') ? $request->get('orderBy') : 'ASC';
$sortBy = $request->get('sortBy') ? $request->get('sortBy') : config('module.pages.table', 'pages').'created_at'; $sortBy = $request->get('sortBy') ? $request->get('sortBy') : config('module.pages.table', 'pages').'.created_at';
return PagesResource::collection( return PagesResource::collection(
$this->repository->getForDataTable()->orderBy($sortBy, $orderBy)->paginate($limit) $this->repository->getForDataTable()->orderBy($sortBy, $orderBy)->paginate($limit)
......
...@@ -22,6 +22,15 @@ class RedirectIfAuthenticated ...@@ -22,6 +22,15 @@ class RedirectIfAuthenticated
return redirect('/'); return redirect('/');
} }
if ($request->wantsJson() && auth()->guard('api')->user()) {
return response([
'error' => [
'message' => 'Not allowed',
'status_code' => 403,
],
], 403);
}
return $next($request); return $next($request);
} }
} }
...@@ -229,9 +229,13 @@ trait UserAttribute ...@@ -229,9 +229,13 @@ trait UserAttribute
if (access()->allow('login-as-user') && (!session()->has('admin_user_id') || !session()->has('temp_user_id'))) { if (access()->allow('login-as-user') && (!session()->has('admin_user_id') || !session()->has('temp_user_id'))) {
//Won't break, but don't let them "Login As" themselves //Won't break, but don't let them "Login As" themselves
if ($this->id != access()->id()) { if ($this->id != access()->id()) {
return '<a class="'.$class.'" href="'.route('admin.access.user.login-as', return '<a class="'.$class.'" href="'.route(
$this).'"><i class="fa fa-lock" data-toggle="tooltip" data-placement="top" title="'.trans('buttons.backend.access.users.login_as', 'admin.access.user.login-as',
['user' => $this->name]).'"></i>'.$name.'</a>'; $this
).'"><i class="fa fa-lock" data-toggle="tooltip" data-placement="top" title="'.trans(
'buttons.backend.access.users.login_as',
['user' => $this->name]
).'"></i>'.$name.'</a>';
} }
} }
......
...@@ -15,15 +15,12 @@ trait FaqAttribute ...@@ -15,15 +15,12 @@ trait FaqAttribute
switch ($this->status && access()->allow('edit-faq')) { switch ($this->status && access()->allow('edit-faq')) {
case 0: case 0:
return '<a href="'.route('admin.faqs.mark', [$this, 1]).'" class="btn btn-flat btn-default"><i class="fa fa-check-square" data-toggle="tooltip" data-placement="top" title="'.trans('buttons.backend.access.users.activate').'"></i></a>'; return '<a href="'.route('admin.faqs.mark', [$this, 1]).'" class="btn btn-flat btn-default"><i class="fa fa-check-square" data-toggle="tooltip" data-placement="top" title="'.trans('buttons.backend.access.users.activate').'"></i></a>';
// No break
case 1: case 1:
return '<a href="'.route('admin.faqs.mark', [$this, 0]).'" class="btn btn-flat btn-default"><i class="fa fa-square" data-toggle="tooltip" data-placement="top" title="'.trans('buttons.backend.access.users.deactivate').'"></i></a>'; return '<a href="'.route('admin.faqs.mark', [$this, 0]).'" class="btn btn-flat btn-default"><i class="fa fa-square" data-toggle="tooltip" data-placement="top" title="'.trans('buttons.backend.access.users.deactivate').'"></i></a>';
// No break
default: default:
return ''; return '';
// No break
} }
return ''; return '';
......
...@@ -23,7 +23,8 @@ class ComposerServiceProvider extends ServiceProvider ...@@ -23,7 +23,8 @@ class ComposerServiceProvider extends ServiceProvider
*/ */
View::composer( View::composer(
// This class binds the $logged_in_user variable to every view // This class binds the $logged_in_user variable to every view
'*', GlobalComposer::class '*',
GlobalComposer::class
); );
/* /*
......
{
"presets": [["@babel/preset-env"] ]
}
\ No newline at end of file
/*# sourceMappingURL=client-modules.min.css.map*/
\ No newline at end of file
{"version":3,"sources":[],"names":[],"mappings":"","file":"client-modules.min.css","sourceRoot":""}
\ No newline at end of file
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define("ClientModules", [], factory);
else if(typeof exports === 'object')
exports["ClientModules"] = factory();
else
root["ClientModules"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./client/src/index.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./client/src/index.js":
/*!*****************************!*\
!*** ./client/src/index.js ***!
\*****************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _samplemodule_app_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./samplemodule/app.js */ "./client/src/samplemodule/app.js");
window.samplemodule = _samplemodule_app_js__WEBPACK_IMPORTED_MODULE_0__["default"];
/***/ }),
/***/ "./client/src/samplemodule/app.js":
/*!****************************************!*\
!*** ./client/src/samplemodule/app.js ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
__webpack_require__(/*! ./build.css */ "./client/src/samplemodule/build.css");
var samplemodule = function samplemodule() {
_classCallCheck(this, samplemodule);
console.log('es6 example');
};
/* harmony default export */ __webpack_exports__["default"] = (samplemodule);
/***/ }),
/***/ "./client/src/samplemodule/build.css":
/*!*******************************************!*\
!*** ./client/src/samplemodule/build.css ***!
\*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ })
/******/ });
});
//# sourceMappingURL=client-modules.min.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://ClientModules/webpack/universalModuleDefinition","webpack://ClientModules/webpack/bootstrap","webpack://ClientModules/./client/src/index.js","webpack://ClientModules/./client/src/samplemodule/app.js","webpack://ClientModules/./client/src/samplemodule/build.css"],"names":["window","samplemodule","require","console","log"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;AClFA;AAAA;AAAA;AAEAA,MAAM,CAACC,YAAP,GAAsBA,4DAAtB,C;;;;;;;;;;;;;;;ACFAC,mBAAO,CAAC,wDAAD,CAAP;;IACMD,Y,GAEL,wBACA;AAAA;;AACCE,SAAO,CAACC,GAAR,CAAY,aAAZ;AACA,C;;AAEaH,2EAAf,E;;;;;;;;;;;ACRA,yC","file":"client-modules.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ClientModules\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClientModules\"] = factory();\n\telse\n\t\troot[\"ClientModules\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./client/src/index.js\");\n","import samplemodule from './samplemodule/app.js';\n\nwindow.samplemodule = samplemodule;","require('./build.css')\nclass samplemodule\n{\n\tconstructor()\n\t{\n\t\tconsole.log('es6 example');\n\t}\n}\nexport default samplemodule;","// removed by extract-text-webpack-plugin"],"sourceRoot":""}
\ No newline at end of file
import samplemodule from './samplemodule/app.js';
window.samplemodule = samplemodule;
\ No newline at end of file
require('./build.css')
class samplemodule
{
constructor()
{
console.log('es6 example');
}
}
export default samplemodule;
\ No newline at end of file
/* global __dirname, require, module*/
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const path = require('path');
const env = require('yargs').argv.env; // use --env with webpack 2
let libraryName = 'ClientModules';
let outputFileName = 'client-modules';
let outputFile;
let plugins = [
new ExtractTextPlugin({ filename: 'client-modules.min.css', disable: false, allChunks: false})
];
if (env === 'build')
{
outputFile = outputFileName + '.min.js';
}
else
{
outputFile = outputFileName + '.js';
}
const config = {
entry : __dirname + '/src/index.js',
devtool : 'source-map',
output: {
path : __dirname + '/build',
filename : outputFile,
library : libraryName,
libraryTarget : 'umd',
umdNamedDefine : true
},
externals: {
"jquery": "jQuery",
"bootstrap": "bootstrap"
},
module: {
rules: [
{
test : /(\.jsx|\.js)$/,
loader : 'babel-loader',
exclude : /(node_modules|bower_components)/
},
{
test: /\.css$/,
loader: "style-loader!css-loader",
loader: ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' })
},
// {
// test : /(\.jsx|\.js)$/,
// loader : 'eslint-loader',
// exclude : /node_modules/
// }
]
},
resolve: {
modules: [path.resolve('./src'), '../node_modules'],
extensions: ['.json', '.js', '.css']
},
plugins: plugins
};
module.exports = config;
\ No newline at end of file
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
"php": ">=7.1.3", "php": ">=7.1.3",
"arcanedev/log-viewer": "^4.5", "arcanedev/log-viewer": "^4.5",
"arcanedev/no-captcha": "^5.0", "arcanedev/no-captcha": "^5.0",
"beyondcode/laravel-self-diagnosis": "^1.2",
"creativeorange/gravatar": "~1.0", "creativeorange/gravatar": "~1.0",
"davejamesmiller/laravel-breadcrumbs": "^5.0", "davejamesmiller/laravel-breadcrumbs": "^5.0",
"doctrine/dbal": "^2.9", "doctrine/dbal": "^2.9",
...@@ -32,6 +33,7 @@ ...@@ -32,6 +33,7 @@
"bvipul/generator": "^5.8.1", "bvipul/generator": "^5.8.1",
"codedungeon/phpunit-result-printer": "^0.19.10", "codedungeon/phpunit-result-printer": "^0.19.10",
"filp/whoops": "~2.0", "filp/whoops": "~2.0",
"friendsofphp/php-cs-fixer": "^2.10",
"fzaninotto/faker": "~1.4", "fzaninotto/faker": "~1.4",
"laravel/telescope": "^2.0", "laravel/telescope": "^2.0",
"mockery/mockery": "1.2.2", "mockery/mockery": "1.2.2",
...@@ -73,6 +75,30 @@ ...@@ -73,6 +75,30 @@
"post-autoload-dump": [ "post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover" "@php artisan package:discover"
],
"clear-all": [
"@php artisan clear-compiled",
"@php artisan cache:clear",
"@php artisan route:clear",
"@php artisan view:clear",
"@php artisan config:clear",
"composer dumpautoload -o"
],
"cache-all": [
"@php artisan config:cache",
"@php artisan route:cache"
],
"cc": [
"composer clear-all",
"composer cache-all"
],
"format": [
"./vendor/bin/php-cs-fixer fix app/ --show-progress=estimating",
"./vendor/bin/php-cs-fixer fix config/ --show-progress=estimating",
"./vendor/bin/php-cs-fixer fix database/ --show-progress=estimating",
"./vendor/bin/php-cs-fixer fix resources/ --show-progress=estimating",
"./vendor/bin/php-cs-fixer fix routes/ --show-progress=estimating",
"./vendor/bin/php-cs-fixer fix tests/ --show-progress=estimating"
] ]
}, },
"config": { "config": {
......
This diff is collapsed.
This diff is collapsed.
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "npm run development", "dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "build-client": "cross-env NODE_ENV=development webpack --mode=development --env build --config=client/webpack.config.js",
"development": "npm run build-client && cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll", "watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
...@@ -11,28 +12,28 @@ ...@@ -11,28 +12,28 @@
}, },
"devDependencies": { "devDependencies": {
"axios": "^0.18", "axios": "^0.18",
"bootstrap-sass": "3.3.7", "bootstrap-sass": ">=3.4.1",
"cross-env": "^5.1", "cross-env": "^5.1",
"font-awesome": "^4.7.0", "font-awesome": "^4.7.0",
"jquery": "^3.1.1", "jquery": "^3.4.0",
"laravel-mix": "^4.0.14", "laravel-mix": "^4.0.15",
"lodash": "^4.17.4", "lodash": "^4.17.4",
"resolve-url-loader": "2.3.1", "resolve-url-loader": "2.3.1",
"sass-loader": "7.*", "sass-loader": "7.*",
"vue-template-compiler": "^2.6.8", "vue": "^2.6.10",
"vue": "^2.5.17", "vue-template-compiler": "^2.6.10",
"webpack-rtl-plugin": "^1.7.0" "webpack-rtl-plugin": "^1.8.2"
}, },
"dependencies": { "dependencies": {
"bootstrap": "^3.4.1", "bootstrap": "^3.4.1",
"bootstrap-datetimepicker-npm": "^4.17.37-npm", "bootstrap-datetimepicker-npm": "^4.17.37-npm",
"datatables.net": "^1.10.15", "datatables.net": "^1.10.15",
"datatables.net-buttons": "^1.3.1", "datatables.net-buttons": "^1.5.6",
"moment": "^2.24.0", "moment": "^2.24.0",
"nestable2": "^1.5.0", "nestable2": "^1.5.0",
"sass": "^1.17.3",
"pluralize": "^7.0.0", "pluralize": "^7.0.0",
"sass": "^1.19.0",
"select2": "^4.0.4", "select2": "^4.0.4",
"tinymce": "^4.9.3" "tinymce": "^4.9.4"
} }
} }
...@@ -743,7 +743,7 @@ function _init() { ...@@ -743,7 +743,7 @@ function _init() {
* or customize the JavaScript scaffolding to fit your unique needs. * or customize the JavaScript scaffolding to fit your unique needs.
*/ */
Vue.component('flash', require('../components/Flash.vue')); Vue.component('flash', require('../components/Flash.vue').default);
Vue.component('export-component', require('../components/backend/Export.vue')); Vue.component('export-component', require('../components/backend/Export.vue'));
const app = new Vue({ const app = new Vue({
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
window.Laravel = {!! json_encode([ 'csrfToken' => csrf_token() ]) !!}; window.Laravel = {!! json_encode([ 'csrfToken' => csrf_token() ]) !!};
</script> </script>
<?php <?php
if(!empty($google_analytics)){ if (!empty($google_analytics)) {
echo $google_analytics; echo $google_analytics;
} }
?> ?>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
]); ?> ]); ?>
</script> </script>
<?php <?php
if(!empty($google_analytics)){ if (!empty($google_analytics)) {
echo $google_analytics; echo $google_analytics;
} }
?> ?>
......
...@@ -13,18 +13,16 @@ ...@@ -13,18 +13,16 @@
*/ */
Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], function () { Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], function () {
Route::group(['prefix' => 'auth'], function () { Route::group(['prefix' => 'auth', 'middleware' => ['guest']], function () {
Route::post('register', 'RegisterController@register'); Route::post('register', 'RegisterController@register');
Route::post('login', 'AuthController@login'); Route::post('login', 'AuthController@login');
// Password Reset
Route::post('password/email', 'ForgotPasswordController@sendResetLinkEmail');
}); });
Route::group(['middleware' => ['auth:api']], function () { Route::group(['middleware' => ['auth:api']], function () {
Route::group(['prefix' => 'auth'], function () { Route::group(['prefix' => 'auth'], function () {
Route::post('logout', 'AuthController@logout'); Route::post('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
// Password Reset Routes
Route::post('password/email', 'ForgotPasswordController@sendResetLinkEmail');
// Route::post('password/reset', 'ResetPasswordController@reset')->name('password.reset'); // Route::post('password/reset', 'ResetPasswordController@reset')->name('password.reset');
}); });
// Users // Users
...@@ -36,7 +34,6 @@ Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], functio ...@@ -36,7 +34,6 @@ Route::group(['namespace' => 'Api\V1', 'prefix' => 'v1', 'as' => 'v1.'], functio
// Roles // Roles
Route::resource('roles', 'RolesController', ['except' => ['create', 'edit']]); Route::resource('roles', 'RolesController', ['except' => ['create', 'edit']]);
Route::post('roles/delete-all', 'RolesController@deleteAll');
// Permission // Permission
Route::resource('permissions', 'PermissionController', ['except' => ['create', 'edit']]); Route::resource('permissions', 'PermissionController', ['except' => ['create', 'edit']]);
......
...@@ -12,7 +12,8 @@ class PermissionTest extends TestCase ...@@ -12,7 +12,8 @@ class PermissionTest extends TestCase
{ {
$permission = Permission::find(1); $permission = Permission::find(1);
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $permission->roles 'Illuminate\Database\Eloquent\Collection',
$permission->roles
); );
} }
} }
...@@ -10,7 +10,8 @@ class RoleTest extends TestCase ...@@ -10,7 +10,8 @@ class RoleTest extends TestCase
public function a_role_has_users() public function a_role_has_users()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->adminRole->users 'Illuminate\Database\Eloquent\Collection',
$this->adminRole->users
); );
} }
...@@ -18,7 +19,8 @@ class RoleTest extends TestCase ...@@ -18,7 +19,8 @@ class RoleTest extends TestCase
public function a_role_has_permissions() public function a_role_has_permissions()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->adminRole->permissions 'Illuminate\Database\Eloquent\Collection',
$this->adminRole->permissions
); );
} }
} }
...@@ -10,7 +10,8 @@ class UserTest extends TestCase ...@@ -10,7 +10,8 @@ class UserTest extends TestCase
public function a_user_has_a_roles() public function a_user_has_a_roles()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->admin->roles 'Illuminate\Database\Eloquent\Collection',
$this->admin->roles
); );
} }
...@@ -18,7 +19,8 @@ class UserTest extends TestCase ...@@ -18,7 +19,8 @@ class UserTest extends TestCase
public function a_user_has_a_permissions() public function a_user_has_a_permissions()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->admin->permissions 'Illuminate\Database\Eloquent\Collection',
$this->admin->permissions
); );
} }
...@@ -26,7 +28,8 @@ class UserTest extends TestCase ...@@ -26,7 +28,8 @@ class UserTest extends TestCase
public function a_user_has_a_providers() public function a_user_has_a_providers()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->admin->providers 'Illuminate\Database\Eloquent\Collection',
$this->admin->providers
); );
} }
...@@ -34,7 +37,8 @@ class UserTest extends TestCase ...@@ -34,7 +37,8 @@ class UserTest extends TestCase
public function a_user_has_a_sessions() public function a_user_has_a_sessions()
{ {
$this->assertInstanceOf( $this->assertInstanceOf(
'Illuminate\Database\Eloquent\Collection', $this->admin->sessions 'Illuminate\Database\Eloquent\Collection',
$this->admin->sessions
); );
} }
} }
...@@ -22,12 +22,14 @@ mix.sass('resources/assets/sass/frontend/app.scss', 'public/css/frontend.css') ...@@ -22,12 +22,14 @@ mix.sass('resources/assets/sass/frontend/app.scss', 'public/css/frontend.css')
'public/css/bootstrap.min.css', 'public/css/bootstrap.min.css',
'public/css/custom-style.css', 'public/css/custom-style.css',
'public/css/loader.css', 'public/css/loader.css',
'public/css/bootstrap-datetimepicker.min.css' 'public/css/bootstrap-datetimepicker.min.css',
'client/build/client-modules.min.css',
], 'public/css/backend-custom.css') ], 'public/css/backend-custom.css')
.js([ .js([
'resources/assets/js/frontend/app.js', 'resources/assets/js/frontend/app.js',
'resources/assets/js/plugin/sweetalert/sweetalert.min.js', 'resources/assets/js/plugin/sweetalert/sweetalert.min.js',
'resources/assets/js/plugins.js' 'resources/assets/js/plugins.js',
'client/build/client-modules.min.js',
], 'public/js/frontend.js') ], 'public/js/frontend.js')
.js([ .js([
'resources/assets/js/backend/app.js', 'resources/assets/js/backend/app.js',
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment