yaroslawww / laravel-restricted-access

此包已被废弃,不再维护。作者建议使用think.studio/laravel-restricted-access包代替。

限制对任何实体或页面的访问,或创建共享链接。

1.2.0 2023-07-18 12:46 UTC

This package is auto-updated.

Last update: 2023-07-18 12:47:15 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

使用密钥、电子邮件或名称限制对页面的访问。

安装

使用composer安装此包

composer require think.studio/laravel-restricted-access

可选地,您可以使用以下命令发布配置文件:

php artisan vendor:publish --provider="LinkRestrictedAccess\ServiceProvider" --tag="config"

如果您想更改表名或路由,您可以通过配置文件来完成。

运行迁移

php artisan migrate

用法

为模型使用trait 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-pinrestricted-access-link.open-document

致谢

  • Think Studio