diff --git a/app/Models/ReportTemplate.php b/app/Models/ReportTemplate.php index 0ebfebd6e..149497838 100644 --- a/app/Models/ReportTemplate.php +++ b/app/Models/ReportTemplate.php @@ -18,9 +18,9 @@ class ReportTemplate extends Model ]; protected $fillable = [ + 'created_by', 'name', 'options', - 'user_id', ]; protected $rules = [ @@ -35,7 +35,7 @@ class ReportTemplate extends Model // Scope to current user static::addGlobalScope('current_user', function (Builder $builder) { if (auth()->check()) { - $builder->where('user_id', auth()->id()); + $builder->where('created_by', auth()->id()); } }); } @@ -44,9 +44,9 @@ class ReportTemplate extends Model * Establishes the report template -> creator relationship. * */ - public function user(): BelongsTo + public function creator(): BelongsTo { - return $this->belongsTo(User::class); + return $this->belongsTo(User::class, 'created_by'); } /** diff --git a/app/Models/User.php b/app/Models/User.php index bdb80e3c3..a41ca5837 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -367,7 +367,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo */ public function reportTemplates(): HasMany { - return $this->hasMany(ReportTemplate::class); + return $this->hasMany(ReportTemplate::class, 'created_by'); } /** diff --git a/database/factories/ReportTemplateFactory.php b/database/factories/ReportTemplateFactory.php index 86f861f0c..7044af634 100644 --- a/database/factories/ReportTemplateFactory.php +++ b/database/factories/ReportTemplateFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; class ReportTemplateFactory extends Factory @@ -18,6 +19,7 @@ class ReportTemplateFactory extends Factory 'options' => [ 'id' => '1', ], + 'created_by' => User::factory(), ]; } } diff --git a/database/migrations/2023_08_23_232739_create_report_templates_table.php b/database/migrations/2023_08_23_232739_create_report_templates_table.php index 31615b6fe..0ca44f007 100644 --- a/database/migrations/2023_08_23_232739_create_report_templates_table.php +++ b/database/migrations/2023_08_23_232739_create_report_templates_table.php @@ -15,11 +15,11 @@ class CreateReportTemplatesTable extends Migration { Schema::create('report_templates', function (Blueprint $table) { $table->id(); - $table->integer('user_id')->nullable(); + $table->integer('created_by')->nullable(); $table->string('name'); $table->json('options'); $table->timestamps(); - $table->index('user_id'); + $table->index('created_by'); }); } diff --git a/tests/Feature/ReportTemplates/DeleteReportTemplateTest.php b/tests/Feature/ReportTemplates/DeleteReportTemplateTest.php index 46a09eb1b..74bc6f157 100644 --- a/tests/Feature/ReportTemplates/DeleteReportTemplateTest.php +++ b/tests/Feature/ReportTemplates/DeleteReportTemplateTest.php @@ -35,7 +35,7 @@ class DeleteReportTemplateTest extends TestCase implements TestsPermissionsRequi public function testCanDeleteAReportTemplate() { $user = User::factory()->canViewReports()->create(); - $reportTemplate = ReportTemplate::factory()->for($user)->create(); + $reportTemplate = ReportTemplate::factory()->for($user, 'creator')->create(); $this->actingAs($user) ->delete(route('report-templates.destroy', $reportTemplate)) diff --git a/tests/Feature/ReportTemplates/EditReportTemplateTest.php b/tests/Feature/ReportTemplates/EditReportTemplateTest.php index 43ada7416..6016edfc1 100644 --- a/tests/Feature/ReportTemplates/EditReportTemplateTest.php +++ b/tests/Feature/ReportTemplates/EditReportTemplateTest.php @@ -32,7 +32,7 @@ class EditReportTemplateTest extends TestCase implements TestsPermissionsRequire public function testCanLoadEditReportTemplatePage() { $user = User::factory()->canViewReports()->create(); - $reportTemplate = ReportTemplate::factory()->for($user)->create(); + $reportTemplate = ReportTemplate::factory()->for($user, 'creator')->create(); $this->actingAs($user) ->get(route('report-templates.edit', $reportTemplate)) diff --git a/tests/Feature/ReportTemplates/UpdateReportTemplateTest.php b/tests/Feature/ReportTemplates/UpdateReportTemplateTest.php index 6fb411df5..1054be34e 100644 --- a/tests/Feature/ReportTemplates/UpdateReportTemplateTest.php +++ b/tests/Feature/ReportTemplates/UpdateReportTemplateTest.php @@ -28,7 +28,7 @@ class UpdateReportTemplateTest extends TestCase implements TestsPermissionsRequi { $user = User::factory()->canViewReports()->create(); - $reportTemplate = ReportTemplate::factory()->for($user)->create([ + $reportTemplate = ReportTemplate::factory()->for($user, 'creator')->create([ 'options' => [ 'id' => 1, 'category' => 1,