diff --git a/.env.example b/.env.example
index ec44a1259..ef6c364c0 100644
--- a/.env.example
+++ b/.env.example
@@ -16,7 +16,7 @@ DB_PASSWORD=secret
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
-SESSION_LIFETIME=120
+SESSION_LIFETIME=10
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
diff --git a/composer.json b/composer.json
index af3ebc6da..aace66d41 100755
--- a/composer.json
+++ b/composer.json
@@ -9,6 +9,12 @@
"type": "project",
"require": {
"php": "^7.1.3",
+ "ext-openssl": "*",
+ "ext-pdo": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "ext-pdo_mysql": "*",
+ "ext-curl": "*",
"barryvdh/laravel-dompdf": "^0.8.0@dev",
"dimsav/laravel-translatable": "^9.0",
"doctrine/dbal": "^2.9@dev",
diff --git a/config/debugbar.php b/config/debugbar.php
index 8350e1c8d..c7c9ceee3 100755
--- a/config/debugbar.php
+++ b/config/debugbar.php
@@ -16,7 +16,7 @@ return [
'enabled' => env('DEBUGBAR_ENABLED', null),
'except' => [
- //
+ 'telescope*'
],
/*
diff --git a/config/imagecache.php b/config/imagecache.php
index da65ce2b5..9dd290040 100755
--- a/config/imagecache.php
+++ b/config/imagecache.php
@@ -9,13 +9,13 @@ return array(
|
| Enter the routes name to enable dynamic imagecache manipulation.
| This handle will define the first part of the URI:
- |
+ |
| {route}/{template}/{filename}
- |
+ |
| Examples: "images", "img/cache"
|
*/
-
+
'route' => 'cache',
/*
@@ -23,13 +23,13 @@ return array(
| Storage paths
|--------------------------------------------------------------------------
|
- | The following paths will be searched for the image filename, submited
- | by URI.
- |
+ | The following paths will be searched for the image filename, submited
+ | by URI.
+ |
| Define as many directories as you like.
|
*/
-
+
'paths' => array(
storage_path('app/public'),
public_path('storage')
@@ -41,7 +41,7 @@ return array(
|--------------------------------------------------------------------------
|
| Here you may specify your own manipulation filter templates.
- | The keys of this array will define which templates
+ | The keys of this array will define which templates
| are available in the URI:
|
| {route}/{template}/{filename}
@@ -50,7 +50,7 @@ return array(
| will be applied, by its fully qualified name.
|
*/
-
+
'templates' => array(
'small' => 'Webkul\Product\CacheFilters\Small',
'medium' => 'Webkul\Product\CacheFilters\Medium',
@@ -65,7 +65,7 @@ return array(
| Lifetime in minutes of the images handled by the imagecache route.
|
*/
-
+
'lifetime' => 43200,
-);
+);
\ No newline at end of file
diff --git a/config/session.php b/config/session.php
index 736fb3c79..fe35b5732 100755
--- a/config/session.php
+++ b/config/session.php
@@ -29,9 +29,9 @@ return [
|
*/
- 'lifetime' => env('SESSION_LIFETIME', 120),
+ 'lifetime' => env('SESSION_LIFETIME', 10),
- 'expire_on_close' => false,
+ 'expire_on_close' => true,
/*
|--------------------------------------------------------------------------
diff --git a/config/tinker.php b/config/tinker.php
index 1341c1b03..181f0fdbd 100755
--- a/config/tinker.php
+++ b/config/tinker.php
@@ -2,6 +2,21 @@
return [
+ /*
+ |--------------------------------------------------------------------------
+ | Console Commands
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to add additional Artisan commands that should
+ | be available within the Tinker environment. Once the command is in
+ | this array you may execute the command in Tinker using its name.
+ |
+ */
+
+ 'commands' => [
+ // App\Console\Commands\ExampleCommand::class,
+ ],
+
/*
|--------------------------------------------------------------------------
| Alias Blacklist
diff --git a/config/translatable.php b/config/translatable.php
index 7c556e1ab..17bf04aac 100755
--- a/config/translatable.php
+++ b/config/translatable.php
@@ -113,4 +113,4 @@ return [
|
*/
'to_array_always_loads_translations' => true,
-];
+];
\ No newline at end of file
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index facf2337b..467777c5f 100755
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -20,4 +20,4 @@ $factory->define(App\User::class, function (Faker $faker) {
'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
'remember_token' => str_random(10),
];
-});
+});
\ No newline at end of file
diff --git a/database/migrations/2019_03_28_105855_create_discounts_table.php b/database/migrations/2019_03_28_105855_create_discounts_table.php
new file mode 100644
index 000000000..32a994e04
--- /dev/null
+++ b/database/migrations/2019_03_28_105855_create_discounts_table.php
@@ -0,0 +1,31 @@
+increments('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('discounts');
+ }
+}
diff --git a/database/migrations/2019_03_28_105910_create_discount_rules_table.php b/database/migrations/2019_03_28_105910_create_discount_rules_table.php
new file mode 100644
index 000000000..bd8d8e890
--- /dev/null
+++ b/database/migrations/2019_03_28_105910_create_discount_rules_table.php
@@ -0,0 +1,31 @@
+increments('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('discount_rules');
+ }
+}
diff --git a/database/migrations/2019_03_28_120827_create_discount_channels_table.php b/database/migrations/2019_03_28_120827_create_discount_channels_table.php
new file mode 100644
index 000000000..b294609d2
--- /dev/null
+++ b/database/migrations/2019_03_28_120827_create_discount_channels_table.php
@@ -0,0 +1,31 @@
+increments('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('discount_channels');
+ }
+}
diff --git a/database/migrations/2019_03_28_120843_create_discount_customer_groups_table.php b/database/migrations/2019_03_28_120843_create_discount_customer_groups_table.php
new file mode 100644
index 000000000..422475398
--- /dev/null
+++ b/database/migrations/2019_03_28_120843_create_discount_customer_groups_table.php
@@ -0,0 +1,31 @@
+increments('id');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('discount_customer_group');
+ }
+}
diff --git a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php
index 65165532a..73246f935 100755
--- a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php
+++ b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php
@@ -19,7 +19,7 @@ class TaxRateDataGrid extends DataGrid
public function prepareQueryBuilder()
{
- $queryBuilder = DB::table('tax_rates')->addSelect('id', 'identifier', 'state', 'country', 'tax_rate');
+ $queryBuilder = DB::table('tax_rates')->addSelect('id', 'identifier', 'state', 'country', 'zip_code', 'zip_from', 'zip_to', 'tax_rate');
$this->setQueryBuilder($queryBuilder);
}
@@ -62,6 +62,33 @@ class TaxRateDataGrid extends DataGrid
'filterable' => true
]);
+ $this->addColumn([
+ 'index' => 'zip_code',
+ 'label' => trans('admin::app.configuration.tax-rates.zip_code'),
+ 'type' => 'string',
+ 'searchable' => true,
+ 'sortable' => true,
+ 'filterable' => true
+ ]);
+
+ $this->addColumn([
+ 'index' => 'zip_from',
+ 'label' => trans('admin::app.configuration.tax-rates.zip_from'),
+ 'type' => 'string',
+ 'searchable' => true,
+ 'sortable' => true,
+ 'filterable' => true
+ ]);
+
+ $this->addColumn([
+ 'index' => 'zip_to',
+ 'label' => trans('admin::app.configuration.tax-rates.zip_to'),
+ 'type' => 'string',
+ 'searchable' => true,
+ 'sortable' => true,
+ 'filterable' => true
+ ]);
+
$this->addColumn([
'index' => 'tax_rate',
'label' => trans('admin::app.datagrid.tax-rate'),
diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php
index effe2dd98..41c799bfb 100755
--- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php
+++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php
@@ -45,13 +45,12 @@ class CustomerController extends Controller
*/
protected $channel;
- /**
+ /**
* Create a new controller instance.
*
- * @param Webkul\Customer\Repositories\CustomerRepository as customer;
- * @param Webkul\Customer\Repositories\CustomerGroupRepository as customerGroup;
- * @param Webkul\Core\Repositories\ChannelRepository as Channel;
- * @return void
+ * @param \Webkul\Customer\Repositories\CustomerRepository $customer
+ * @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroup
+ * @param \Webkul\Core\Repositories\ChannelRepository $channel
*/
public function __construct(Customer $customer, CustomerGroup $customerGroup, Channel $channel)
{
diff --git a/packages/Webkul/Admin/src/Http/Controllers/ExportController.php b/packages/Webkul/Admin/src/Http/Controllers/ExportController.php
index e3aba241d..b0aa7e654 100755
--- a/packages/Webkul/Admin/src/Http/Controllers/ExportController.php
+++ b/packages/Webkul/Admin/src/Http/Controllers/ExportController.php
@@ -50,30 +50,30 @@ class ExportController extends Controller
}
}
- if($proceed) {
- $gridInstance = new $path;
+ if(! $proceed) {
+ return redirect()->back();
+ }
+ $gridInstance = new $path;
- $records = array();
- $records = $gridInstance->export();
+ $records = $gridInstance->export();
- if(count($records) == 0) {
- session()->flash('warning', trans('admin::app.export.no-records'));
+ if (count($records) == 0) {
+ session()->flash('warning', trans('admin::app.export.no-records'));
- return redirect()->back();
- }
-
- if ($format == 'csv') {
- return Excel::download(new DataGridExport($records), last($gridName).'.csv');
- } else if($format == 'xls') {
- return Excel::download(new DataGridExport($records), last($gridName).'.xlsx');
- } else {
- session()->flash('warning', trans('admin::app.export.illegal-format'));
-
- return redirect()->back();
- }
- } else {
return redirect()->back();
}
+ if ($format == 'csv') {
+ return Excel::download(new DataGridExport($records), last($gridName).'.csv');
+ }
+ if ($format == 'xls') {
+ return Excel::download(new DataGridExport($records), last($gridName).'.xlsx');
+ }
+ session()->flash('warning', trans('admin::app.export.illegal-format'));
+
+ return redirect()->back();
+
+
+
}
}
\ No newline at end of file
diff --git a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php
index 28dfb17d6..270f3dc44 100755
--- a/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php
+++ b/packages/Webkul/Admin/src/Providers/AdminServiceProvider.php
@@ -65,14 +65,35 @@ class AdminServiceProvider extends ServiceProvider
view()->composer(['admin::layouts.nav-left', 'admin::layouts.nav-aside', 'admin::layouts.tabs'], function ($view) {
$tree = Tree::create();
- foreach (config('menu.admin') as $item) {
- if (bouncer()->hasPermission($item['key'])) {
- $tree->add($item, 'menu');
+ $permissionType = auth()->guard('admin')->user()->role->permission_type;
+ $allowedPermissions = auth()->guard('admin')->user()->role->permissions;
+
+ foreach (config('menu.admin') as $index => $item) {
+ if (! bouncer()->hasPermission($item['key'])) {
+ continue;
}
+ if ($index + 1 < count(config('menu.admin')) && $permissionType != 'all') {
+ $permission = config('menu.admin')[$index + 1];
+
+ if (substr_count($permission['key'], '.') == 2 && substr_count($item['key'], '.') == 1) {
+ foreach ($allowedPermissions as $key => $value) {
+ if ($item['key'] == $value) {
+ $neededItem = $allowedPermissions[$key + 1];
+
+ foreach (config('menu.admin') as $key1 => $findMatced) {
+ if ($findMatced['key'] == $neededItem) {
+ $item['route'] = $findMatced['route'];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ $tree->add($item, 'menu');
}
$tree->items = core()->sortItems($tree->items);
-
$view->with('menu', $tree);
});
@@ -135,4 +156,4 @@ class AdminServiceProvider extends ServiceProvider
dirname(__DIR__) . '/Config/system.php', 'core'
);
}
-}
\ No newline at end of file
+}
diff --git a/packages/Webkul/Admin/src/Resources/assets/js/app.js b/packages/Webkul/Admin/src/Resources/assets/js/app.js
index 88e0bee35..f39f326bb 100755
--- a/packages/Webkul/Admin/src/Resources/assets/js/app.js
+++ b/packages/Webkul/Admin/src/Resources/assets/js/app.js
@@ -52,7 +52,6 @@ window.onload = function () {
}
});
}
-
}
});
};
diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php
index 993bf45f1..9a4d90167 100755
--- a/packages/Webkul/Admin/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php
@@ -626,7 +626,7 @@ return [
],
'sliders' => [
- 'title' => 'Sliders',
+ 'title' => 'Title',
'add-title' => 'Create Slider',
'edit-title' => 'Edit Slider',
'save-btn-title' => 'Save Slider',
@@ -854,4 +854,4 @@ return [
'business-account' => 'Business Account'
]
]
-];
\ No newline at end of file
+];
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
index 600f42a82..5017d1f6a 100755
--- a/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/attributes/create.blade.php
@@ -12,7 +12,7 @@
-
+
{{ __('admin::app.catalog.attributes.add-title') }}
@@ -99,7 +99,7 @@
-
+
{!! view_render_event('bagisto.admin.catalog.attribute.create_form_accordian.options.controls.before') !!}
@@ -119,7 +119,7 @@
{!! view_render_event('bagisto.admin.catalog.attribute.create_form_accordian.options.controls.before') !!}
-
+