think.studio / laravel-restricted-access
限制对任何实体或页面的访问,或创建分享链接。
1.2.0
2023-07-18 12:46 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0
- think.studio/laravel-json-field-cast: ^2.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.20
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.2
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.13
README
通过密码、电子邮件或名称限制页面的访问。
安装
使用composer安装包
composer require think.studio/laravel-restricted-access
可选地,您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="LinkRestrictedAccess\ServiceProvider" --tag="config"
如果您想更改表名或路由,可以通过配置文件进行操作。
运行迁移
php artisan migrate
用法
为模型使用特 HasRestrictedLink
class File extends Model { use \LinkRestrictedAccess\Models\HasRestrictedLink; }
然后您可以创建链接
/** @var RestrictedLink $shareLink */ $shareLink = $file->restrictedLinks()->make([ 'name' => $request->input('name'), 'pin' => $request->input('pin'), 'check_pin' => $request->boolean('check_pin'), 'check_name' => $request->boolean('check_name'), 'check_email' => $request->boolean('check_email'), ]); if ($user = $request->user()) { $shareLink->meta->toMorph('creator', $user); } $shareLink->save();
示例验证检查。
if($shareUuid = $request->string('share')) { $sharedLink = \LinkRestrictedAccess\RestrictedAccess::restrictedLinkModel()::query()->byKey($shareUuid)->firstOrFail(); if ($sharedLink->needVerification() && !$sharedLink->verifiedOpenActionFromCookie($request)) { return // display verification view } return $sharedLink->linkable; }
要验证访问,您可以使用路由 restricted-access-link.check-pin
和 restricted-access-link.open-document