Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117916118
D1018.1775409272.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
10 KB
Referenced Files
None
Subscribers
None
D1018.1775409272.diff
View Options
diff --git a/src/app/Domain.php b/src/app/Domain.php
--- a/src/app/Domain.php
+++ b/src/app/Domain.php
@@ -54,19 +54,19 @@
/**
* Assign a package to a domain. The domain should not belong to any existing entitlements.
*
- * @param \App\Package $package The package to assign.
+ * @param \App\Package $package The package to assign.
+ * @param \App\User $user The wallet owner.
*
- * @return \App\Domain
+ * @return \App\Domain Self
*/
public function assignPackage($package, $user)
{
- $wallet_id = $user->wallets()->get()[0]->id;
+ $wallet_id = $user->wallets()->first()->id;
foreach ($package->skus as $sku) {
for ($i = $sku->pivot->qty; $i > 0; $i--) {
\App\Entitlement::create(
[
- 'owner_id' => $user->id,
'wallet_id' => $wallet_id,
'sku_id' => $sku->id,
'cost' => $sku->pivot->cost(),
diff --git a/src/app/Entitlement.php b/src/app/Entitlement.php
--- a/src/app/Entitlement.php
+++ b/src/app/Entitlement.php
@@ -41,7 +41,6 @@
*/
protected $fillable = [
'sku_id',
- 'owner_id',
'wallet_id',
'entitleable_id',
'entitleable_type',
@@ -74,16 +73,6 @@
}
/**
- * The owner of this entitlement.
- *
- * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
- */
- public function owner()
- {
- return $this->belongsTo('App\User', 'owner_id', 'id');
- }
-
- /**
* The wallet this entitlement is being billed to
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
diff --git a/src/app/Observers/EntitlementObserver.php b/src/app/Observers/EntitlementObserver.php
--- a/src/app/Observers/EntitlementObserver.php
+++ b/src/app/Observers/EntitlementObserver.php
@@ -35,30 +35,19 @@
// can't dispatch job here because it'll fail serialization
// Make sure the owner is at least a controller on the wallet
- $owner = \App\User::find($entitlement->owner_id);
$wallet = \App\Wallet::find($entitlement->wallet_id);
- if (!$owner) {
+ if (!$wallet || !$wallet->owner) {
return false;
}
- if (!$wallet) {
- return false;
- }
-
- if (!$wallet->owner() == $owner) {
- if (!$wallet->controllers->contains($owner)) {
- return false;
- }
- }
-
$sku = \App\Sku::find($entitlement->sku_id);
if (!$sku) {
return false;
}
- $result = $sku->handler_class::preReq($entitlement, $owner);
+ $result = $sku->handler_class::preReq($entitlement, $wallet->owner);
if (!$result) {
return false;
diff --git a/src/app/User.php b/src/app/User.php
--- a/src/app/User.php
+++ b/src/app/User.php
@@ -135,7 +135,6 @@
for ($i = $sku->pivot->qty; $i > 0; $i--) {
\App\Entitlement::create(
[
- 'owner_id' => $this->id,
'wallet_id' => $wallet_id,
'sku_id' => $sku->id,
'cost' => $sku->pivot->cost(),
@@ -185,7 +184,6 @@
{
// TODO: I guess wallet could be parametrized in future
$wallet = $this->wallet();
- $owner = $wallet->owner;
$exists = $this->entitlements()->where('sku_id', $sku->id)->count();
// TODO: Sanity check, this probably should be in preReq() on handlers
@@ -196,7 +194,6 @@
while ($count > 0) {
\App\Entitlement::create([
- 'owner_id' => $owner->id,
'wallet_id' => $wallet->id,
'sku_id' => $sku->id,
'cost' => $sku->units_free >= $exists ? $sku->cost : 0,
@@ -295,10 +292,9 @@
$domains[] = $dbdomain;
}
- $entitlements = Entitlement::where('owner_id', $this->id)->get();
-
- foreach ($entitlements as $entitlement) {
- if ($entitlement->entitleable instanceof Domain) {
+ foreach ($this->wallets as $wallet) {
+ $entitlements = $wallet->entitlements()->where('entitleable_type', Domain::class)->get();
+ foreach ($entitlements as $entitlement) {
$domain = $entitlement->entitleable;
\Log::info("Found domain for {$this->email}: {$domain->namespace} (owned)");
$domains[] = $domain;
@@ -306,12 +302,11 @@
}
foreach ($this->accounts as $wallet) {
- foreach ($wallet->entitlements as $entitlement) {
- if ($entitlement->entitleable instanceof Domain) {
- $domain = $entitlement->entitleable;
- \Log::info("Found domain {$this->email}: {$domain->namespace} (charged)");
- $domains[] = $domain;
- }
+ $entitlements = $wallet->entitlements()->where('entitleable_type', Domain::class)->get();
+ foreach ($entitlements as $entitlement) {
+ $domain = $entitlement->entitleable;
+ \Log::info("Found domain {$this->email}: {$domain->namespace} (charged)");
+ $domains[] = $domain;
}
}
diff --git a/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php b/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
--- a/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
+++ b/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
@@ -34,7 +34,6 @@
'entitlements',
function (Blueprint $table) {
$table->string('id', 36)->primary();
- $table->bigInteger('owner_id');
$table->bigInteger('entitleable_id');
$table->string('entitleable_type');
$table->integer('cost')->default(0)->nullable();
@@ -44,7 +43,6 @@
$table->timestamps();
$table->foreign('sku_id')->references('id')->on('skus')->onDelete('cascade');
- $table->foreign('owner_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('wallet_id')->references('id')->on('wallets')->onDelete('cascade');
}
);
diff --git a/src/tests/Feature/BillingTest.php b/src/tests/Feature/BillingTest.php
--- a/src/tests/Feature/BillingTest.php
+++ b/src/tests/Feature/BillingTest.php
@@ -117,7 +117,6 @@
$entitlement = \App\Entitlement::create(
[
- 'owner_id' => $this->user->id,
'wallet_id' => $this->wallet_id,
'sku_id' => $sku->id,
'cost' => $sku->cost,
@@ -148,7 +147,6 @@
$entitlement = \App\Entitlement::create(
[
- 'owner_id' => $this->user->id,
'wallet_id' => $this->wallet_id,
'sku_id' => $sku->id,
'cost' => $sku->cost,
@@ -193,7 +191,6 @@
$entitlement = \App\Entitlement::create(
[
- 'owner_id' => $this->user->id,
'entitleable_id' => $this->user->id,
'entitleable_type' => \App\User::class,
'cost' => $sku->cost,
diff --git a/src/tests/Feature/Controller/DomainsTest.php b/src/tests/Feature/Controller/DomainsTest.php
--- a/src/tests/Feature/Controller/DomainsTest.php
+++ b/src/tests/Feature/Controller/DomainsTest.php
@@ -47,7 +47,6 @@
]);
Entitlement::create([
- 'owner_id' => $user->id,
'wallet_id' => $user->wallets()->first()->id,
'sku_id' => $sku_domain->id,
'entitleable_id' => $domain->id,
@@ -130,7 +129,6 @@
]);
Entitlement::create([
- 'owner_id' => $user->id,
'wallet_id' => $user->wallets()->first()->id,
'sku_id' => $sku_domain->id,
'entitleable_id' => $domain->id,
diff --git a/src/tests/Feature/EntitlementTest.php b/src/tests/Feature/EntitlementTest.php
--- a/src/tests/Feature/EntitlementTest.php
+++ b/src/tests/Feature/EntitlementTest.php
@@ -61,8 +61,8 @@
$wallet = $owner->wallets->first();
$this->assertCount(4, $owner->entitlements()->get());
- $this->assertCount(1, $sku_domain->entitlements()->where('owner_id', $owner->id)->get());
- $this->assertCount(2, $sku_mailbox->entitlements()->where('owner_id', $owner->id)->get());
+ $this->assertCount(1, $sku_domain->entitlements()->where('wallet_id', $wallet->id)->get());
+ $this->assertCount(2, $sku_mailbox->entitlements()->where('wallet_id', $wallet->id)->get());
$this->assertCount(9, $wallet->entitlements);
$this->backdateEntitlements($owner->entitlements, Carbon::now()->subMonths(1));
@@ -91,7 +91,7 @@
$sku = \App\Sku::where('title', 'mailbox')->first();
$this->assertNotNull($sku);
- $entitlement = Entitlement::where('owner_id', $user->id)->where('sku_id', $sku->id)->first();
+ $entitlement = Entitlement::where('wallet_id', $wallet->id)->where('sku_id', $sku->id)->first();
$this->assertNotNull($entitlement);
$e_sku = $entitlement->sku;
@@ -100,9 +100,6 @@
$e_wallet = $entitlement->wallet;
$this->assertSame($wallet->id, $e_wallet->id);
- $e_owner = $entitlement->owner;
- $this->assertEquals($user->id, $e_owner->id);
-
$e_entitleable = $entitlement->entitleable;
$this->assertEquals($user->id, $e_entitleable->id);
$this->assertTrue($e_entitleable instanceof \App\User);
diff --git a/src/tests/Feature/UserTest.php b/src/tests/Feature/UserTest.php
--- a/src/tests/Feature/UserTest.php
+++ b/src/tests/Feature/UserTest.php
@@ -197,13 +197,11 @@
$id = $user->id;
- $entitlements = \App\Entitlement::where('owner_id', $id)->get();
- $this->assertCount(4, $entitlements);
+ $this->assertCount(4, $user->entitlements()->get());
$user->delete();
- $entitlements = \App\Entitlement::where('owner_id', $id)->get();
- $this->assertCount(0, $entitlements);
+ $this->assertCount(0, $user->entitlements()->get());
$this->assertTrue($user->fresh()->trashed());
$this->assertFalse($user->fresh()->isDeleted());
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 5, 5:14 PM (12 h, 57 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18779910
Default Alt Text
D1018.1775409272.diff (10 KB)
Attached To
Mode
D1018: Get rid of owner_id
Attached
Detach File
Event Timeline