Skip to content

Commit 720a566

Browse files
committed
Token -> RouteToken
1 parent 8df7076 commit 720a566

File tree

20 files changed

+103
-70
lines changed

20 files changed

+103
-70
lines changed

CHANGELOG-WIP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,8 +356,8 @@ Moved the following controllers:
356356

357357
## Tokens
358358

359-
- Deprecated `craft\services\Tokens`. `CraftCms\Cms\Token\Tokens` should be used instead.
360-
- Deprecated `craft\records\Token`. `CraftCms\Cms\Token\Models\Token` should be used instead.
359+
- Deprecated `craft\services\Tokens`. `CraftCms\Cms\RouteToken\RouteTokens` should be used instead.
360+
- Deprecated `craft\records\Token`. `CraftCms\Cms\RouteToken\Models\RouteToken` should be used instead.
361361

362362
## Translations
363363

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use CraftCms\Cms\Database\Migration;
6+
use Illuminate\Support\Facades\Schema;
7+
8+
return new class extends Migration
9+
{
10+
public function up(): void
11+
{
12+
if (Schema::hasTable('routetokens')) {
13+
Schema::dropIfExists('tokens');
14+
15+
return;
16+
}
17+
18+
Schema::rename('tokens', 'routetokens');
19+
}
20+
21+
public function down(): void
22+
{
23+
Schema::rename('routetokens', 'tokens');
24+
}
25+
};

src/Database/Migrations/Install.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,18 @@ public function createTables(): void
581581
$table->char('uid', 36)->default('0');
582582
});
583583

584+
Schema::create('routetokens', function (Blueprint $table) {
585+
$table->integer('id', true);
586+
$table->char('token', 32);
587+
$table->text('route')->nullable();
588+
$table->unsignedTinyInteger('usageLimit')->nullable();
589+
$table->unsignedTinyInteger('usageCount')->nullable();
590+
$table->dateTime('expiryDate');
591+
$table->dateTime('dateCreated');
592+
$table->dateTime('dateUpdated');
593+
$table->char('uid', 36)->default('0');
594+
});
595+
584596
Schema::create(Table::SEARCHINDEXQUEUE, function (Blueprint $table) {
585597
$table->integer('id', true);
586598
$table->integer('elementId');
@@ -739,18 +751,6 @@ public function createTables(): void
739751
$table->dateTime('dateUpdated');
740752
});
741753

742-
Schema::create('tokens', function (Blueprint $table) {
743-
$table->integer('id', true);
744-
$table->char('token', 32);
745-
$table->text('route')->nullable();
746-
$table->unsignedTinyInteger('usageLimit')->nullable();
747-
$table->unsignedTinyInteger('usageCount')->nullable();
748-
$table->dateTime('expiryDate');
749-
$table->dateTime('dateCreated');
750-
$table->dateTime('dateUpdated');
751-
$table->char('uid', 36)->default('0');
752-
});
753-
754754
Schema::create(Table::USERGROUPS, function (Blueprint $table) {
755755
$table->integer('id', true);
756756
$table->string('name');
@@ -996,8 +996,8 @@ public function createIndexes(): void
996996
Schema::createIndex(Table::TAGGROUPS, ['handle']);
997997
Schema::createIndex(Table::TAGGROUPS, ['dateDeleted']);
998998
Schema::createIndex(Table::TAGS, ['groupId']);
999-
Schema::createIndex(Table::TOKENS, ['token'], unique: true);
1000-
Schema::createIndex(Table::TOKENS, ['expiryDate']);
999+
Schema::createIndex(Table::ROUTETOKENS, ['token'], unique: true);
1000+
Schema::createIndex(Table::ROUTETOKENS, ['expiryDate']);
10011001
Schema::createIndex(Table::USERGROUPS, ['handle']);
10021002
Schema::createIndex(Table::USERGROUPS, ['name']);
10031003
Schema::createIndex(Table::USERGROUPS_USERS, ['groupId', 'userId'], unique: true);

src/Database/Table.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@
9393

9494
public const string REVISIONS = 'revisions';
9595

96+
public const string ROUTETOKENS = 'routetokens';
97+
9698
public const string SEARCHINDEX = 'searchindex';
9799

98100
public const string SEARCHINDEXQUEUE = 'searchindexqueue';
@@ -127,8 +129,6 @@
127129

128130
public const string TAGS = 'tags';
129131

130-
public const string TOKENS = 'tokens';
131-
132132
public const string USERGROUPS = 'usergroups';
133133

134134
public const string USERGROUPS_USERS = 'usergroups_users';

src/Http/Controllers/PreviewController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
use craft\helpers\ElementHelper;
88
use CraftCms\Cms\Http\EnforcesPermissions;
99
use CraftCms\Cms\Http\Middleware\HandleTokenRequest;
10-
use CraftCms\Cms\Token\Data\Token;
11-
use CraftCms\Cms\Token\Tokens;
10+
use CraftCms\Cms\RouteToken\Data\RouteToken;
11+
use CraftCms\Cms\RouteToken\RouteTokens;
1212
use Illuminate\Contracts\Http\Kernel;
1313
use Illuminate\Http\JsonResponse;
1414
use Illuminate\Http\RedirectResponse;
@@ -22,7 +22,7 @@
2222
{
2323
use EnforcesPermissions;
2424

25-
public function createToken(Request $request, Tokens $tokens, Token $tokenData): JsonResponse|RedirectResponse
25+
public function createToken(Request $request, RouteTokens $tokens, RouteToken $tokenData): JsonResponse|RedirectResponse
2626
{
2727
match (true) {
2828
isset($tokenData->draftId) => $this->requirePermission("previewDraft:{$tokenData->draftId}"),
@@ -50,7 +50,7 @@ public function createToken(Request $request, Tokens $tokens, Token $tokenData):
5050
return new JsonResponse(compact('token'));
5151
}
5252

53-
public function preview(Request $request, Kernel $kernel, Token $tokenData): mixed
53+
public function preview(Request $request, Kernel $kernel, RouteToken $tokenData): mixed
5454
{
5555
$query = $tokenData->elementType::find()
5656
->siteId($tokenData->siteId)

src/Http/Middleware/HandleTokenRequest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use Closure;
88
use CraftCms\Cms\Config\GeneralConfig;
9-
use CraftCms\Cms\Token\Tokens;
9+
use CraftCms\Cms\RouteToken\RouteTokens;
1010
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
1111
use Illuminate\Http\Request;
1212
use Illuminate\Support\Facades\Context;
@@ -21,7 +21,7 @@
2121

2222
public function __construct(
2323
private GeneralConfig $generalConfig,
24-
private Tokens $tokens,
24+
private RouteTokens $tokens,
2525
) {}
2626

2727
public function handle(Request $request, Closure $next): mixed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
declare(strict_types=1);
44

5-
namespace CraftCms\Cms\Token\Data;
5+
namespace CraftCms\Cms\RouteToken\Data;
66

77
use Spatie\LaravelData\Attributes\Validation\RequiredWithout;
88
use Spatie\LaravelData\Dto;
99

10-
final class Token extends Dto
10+
final class RouteToken extends Dto
1111
{
1212
public function __construct(
1313
/** @var class-string<\craft\base\ElementInterface> */
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
declare(strict_types=1);
44

5-
namespace CraftCms\Cms\Token\Model;
5+
namespace CraftCms\Cms\RouteToken\Model;
66

77
use CraftCms\Cms\Database\Table;
88
use CraftCms\Cms\Shared\BaseModel;
99
use CraftCms\Cms\Shared\Concerns\HasUid;
1010

11-
final class Token extends BaseModel
11+
final class RouteToken extends BaseModel
1212
{
1313
use HasUid;
1414

15-
protected $table = Table::TOKENS;
15+
protected $table = Table::ROUTETOKENS;
1616

1717
protected $casts = [
1818
'usageLimit' => 'int',
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
declare(strict_types=1);
44

5-
namespace CraftCms\Cms\Token;
5+
namespace CraftCms\Cms\RouteToken;
66

77
use CraftCms\Cms\Cms;
88
use CraftCms\Cms\Database\Table;
99
use CraftCms\Cms\Http\Middleware\HandleTokenRequest;
10+
use CraftCms\Cms\RouteToken\Model\RouteToken;
1011
use CraftCms\Cms\Support\Json;
11-
use CraftCms\Cms\Token\Model\Token;
1212
use DateTime;
1313
use Illuminate\Container\Attributes\Singleton;
1414
use Illuminate\Support\Facades\Context;
@@ -17,7 +17,7 @@
1717
use yii\base\InvalidArgumentException;
1818

1919
#[Singleton]
20-
final class Tokens
20+
final class RouteTokens
2121
{
2222
private bool $deletedExpiredTokens = false;
2323

@@ -56,7 +56,7 @@ public function createToken(array|string $route, ?int $usageLimit = null, ?DateT
5656
throw new InvalidArgumentException("Invalid token: $token");
5757
}
5858

59-
$tokenModel = new Token;
59+
$tokenModel = new RouteToken;
6060
$tokenModel->token = $token ?? \Craft::$app->getSecurity()->generateRandomString();
6161
$tokenModel->route = $route;
6262
$tokenModel->expiryDate = Date::parse($expiryDate ?? now()->addSeconds(Cms::config()->defaultTokenDuration));
@@ -95,7 +95,7 @@ public function getTokenRoute(string $token): array|false
9595
// Take the opportunity to delete any expired tokens
9696
$this->deleteExpiredTokens();
9797

98-
$result = Token::where('token', $token)->first();
98+
$result = RouteToken::where('token', $token)->first();
9999

100100
if (! $result) {
101101
// Remove it from the request so it doesn’t get added to generated URLs
@@ -123,14 +123,14 @@ public function getTokenRoute(string $token): array|false
123123

124124
public function incrementTokenUsageCountById(int $tokenId): bool
125125
{
126-
return (bool) DB::table(Table::TOKENS)
126+
return (bool) DB::table(Table::ROUTETOKENS)
127127
->where('id', $tokenId)
128128
->increment('usageCount');
129129
}
130130

131131
public function deleteTokenById(int $tokenId): bool
132132
{
133-
DB::table(Table::TOKENS)->delete($tokenId);
133+
DB::table(Table::ROUTETOKENS)->delete($tokenId);
134134

135135
return true;
136136
}
@@ -142,7 +142,7 @@ public function deleteExpiredTokens(): bool
142142
return false;
143143
}
144144

145-
$affectedRows = DB::table(Table::TOKENS)
145+
$affectedRows = DB::table(Table::ROUTETOKENS)
146146
->where('expiryDate', '<=', now())
147147
->delete();
148148

src/User/Actions/GetImpersonationUrlAction.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace CraftCms\Cms\User\Actions;
66

77
use craft\helpers\UrlHelper;
8-
use CraftCms\Cms\Token\Tokens;
8+
use CraftCms\Cms\RouteToken\RouteTokens;
99
use CraftCms\Cms\User\Models\User;
1010
use Illuminate\Support\Facades\Auth;
1111

@@ -14,7 +14,7 @@
1414
final readonly class GetImpersonationUrlAction
1515
{
1616
public function __construct(
17-
private Tokens $tokens,
17+
private RouteTokens $tokens,
1818
) {}
1919

2020
public function __invoke(User $user): string|false

0 commit comments

Comments
 (0)