You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.0 KiB
42 lines
1.0 KiB
<?php
|
|
|
|
namespace App\Http\Controllers\Miniapp;
|
|
|
|
use App\Http\Controllers\Admin\CrawlAddressController as AdminCrawlAddressController;
|
|
use App\Models\MiniappUser;
|
|
use App\Support\ApiResponse;
|
|
use App\Support\Miniapp\MiniappPresenter;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CrawlAddressController extends BaseController
|
|
{
|
|
use ApiResponse;
|
|
|
|
public function __construct(
|
|
protected AdminCrawlAddressController $adminController,
|
|
) {}
|
|
|
|
public function options(Request $request): JsonResponse
|
|
{
|
|
$this->assertStaff($request);
|
|
|
|
return $this->adminController->options($request);
|
|
}
|
|
|
|
protected function assertStaff(Request $request): MiniappUser
|
|
{
|
|
$user = $request->user();
|
|
if (! $user instanceof MiniappUser) {
|
|
abort(401, '请先登录');
|
|
}
|
|
|
|
$payload = MiniappPresenter::userPayload($user);
|
|
if (! ($payload['is_admin'] || $payload['is_grid_member'])) {
|
|
abort(403, '无权使用数据爬虫');
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
}
|