From 6c003f949f820ff9d453c903e5f0540694c82eba Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Sat, 29 Jun 2019 15:21:53 +0530 Subject: [PATCH] Company check implemented in customer document module --- ..._06_07_122059_customer_documents_table.php | 2 ++ .../src/Models/CustomerDocument.php | 19 ++++++++++++++++++- .../Observers/CustomerDocumentObserver.php | 17 +++++++++++++++++ .../CustomerDocumentServiceProvider.php | 2 ++ .../src/Models/Category/Category.php | 2 +- 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 packages/Webkul/CustomerDocument/src/Observers/CustomerDocumentObserver.php diff --git a/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php b/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php index f46e7fd0c..209aaaca7 100644 --- a/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php +++ b/packages/Webkul/CustomerDocument/src/Database/migrations/2019_06_07_122059_customer_documents_table.php @@ -21,6 +21,8 @@ class CustomerDocumentsTable extends Migration $table->string('type'); $table->string('path'); $table->integer('customer_id')->default(0); + $table->integer('company_id')->unsigned(); + $table->foreign('company_id')->references('id')->on('customer_documents')->onDelete('cascade'); $table->timestamps(); }); } diff --git a/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php b/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php index f31502d1d..911f66fbd 100644 --- a/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php +++ b/packages/Webkul/CustomerDocument/src/Models/CustomerDocument.php @@ -9,5 +9,22 @@ class CustomerDocument extends Model implements CustomerDocumentContract { protected $table = 'customer_documents'; - protected $fillable = ['name', 'path', 'customer_id', 'description', 'type', 'status']; + protected $fillable = ['name', 'path', 'customer_id', 'description', 'type', 'status', 'company_id']; + + /** + * Create a new Eloquent query builder for the model. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder|static + */ + public function newEloquentBuilder($query) + { + $company = Company::getCurrent(); + + if (auth()->guard('super-admin')->check() || ! isset($company->id)) { + return new \Illuminate\Database\Eloquent\Builder($query); + } else { + return new \Illuminate\Database\Eloquent\Builder($query->where('customer_documents' . '.company_id', $company->id)); + } + } } \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Observers/CustomerDocumentObserver.php b/packages/Webkul/CustomerDocument/src/Observers/CustomerDocumentObserver.php new file mode 100644 index 000000000..bed106c76 --- /dev/null +++ b/packages/Webkul/CustomerDocument/src/Observers/CustomerDocumentObserver.php @@ -0,0 +1,17 @@ +guard('super-admin')->check()) { + $model->company_id = Company::getCurrent()->id; + } + } +} \ No newline at end of file diff --git a/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php b/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php index dc907be34..eb0f1a37d 100644 --- a/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php +++ b/packages/Webkul/CustomerDocument/src/Providers/CustomerDocumentServiceProvider.php @@ -24,6 +24,8 @@ class CustomerDocumentServiceProvider extends ServiceProvider $this->loadMigrationsFrom(__DIR__ . '/../Database/migrations'); + \Webkul\CustomerDocument\Models\CustomerDocument::observe(\Webkul\CustomerDocument\Observers\CustomerDocument::class); + $this->app->register(ModuleServiceProvider::class); $this->app->register(EventServiceProvider::class); diff --git a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php b/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php index e3b637609..208a38f8e 100755 --- a/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php +++ b/packages/Webkul/SAASCustomizer/src/Models/Category/Category.php @@ -22,7 +22,7 @@ class Category extends BaseModel if (auth()->guard('super-admin')->check() || ! isset($company->id)) { return new QueryBuilder($query); } else { - return new QueryBuilder($query->where('company_id', $company->id)); + return new QueryBuilder($query->where('categories.company_id', $company->id)); } } } \ No newline at end of file