diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index 2ddb3c53caba..2b0a67b374f9 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -28,17 +28,17 @@ class UserPolicy extends EntityPolicy */ public function create(User $user) : bool { + return $user->isAdmin() || $user->hasPermission('create_user'); + } //we need to override as User does not have the company_id property!!!!! - public function edit(User $user, $entity) : bool + public function edit(User $user, $user_entity) : bool { - return ($user->isAdmin() && $entity->company_id == $user->companyId()) - || ($user->hasPermission('edit_' . strtolower(class_basename($entity))) && $entity->company_id == $user->companyId()) - || $user->owns($entity); + return ($user->isAdmin() && $user_entity->companyId() == $user->companyId());; } diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php index 51917e60a9f8..2f3f6ab6cf45 100644 --- a/database/migrations/2014_10_13_000000_create_users_table.php +++ b/database/migrations/2014_10_13_000000_create_users_table.php @@ -248,8 +248,10 @@ class CreateUsersTable extends Migration $table->unsignedInteger('user_id')->index(); $table->string('token')->nullable(); $table->string('name')->nullable(); + $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade'); $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); Schema::create('clients', function (Blueprint $table) {