forked from XiaoLFeng/XF_Index
Modify: 添加路由表以及控制器
优化访问控制,处理函数调用方案,允许对于颜色的获取,添加对审核的内容 修改: - api.php - web.php - Link.php(Function) - Link.php(Console) Signed-off-by: XiaoLFeng <gm@x-lf.cn>
This commit is contained in:
parent
63f13aec73
commit
d26ebd9706
|
@ -15,8 +15,10 @@
|
|||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Mail\Message;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
|
@ -30,27 +32,22 @@ public function __construct()
|
|||
$this->data = $data->data;
|
||||
}
|
||||
|
||||
public function ViewEdit(Request $request, $userId): Application|Factory|View|RedirectResponse
|
||||
protected function viewEdit($userId): Application|Factory|View|RedirectResponse
|
||||
{
|
||||
// 查找友链
|
||||
$resultBlog = DB::table('blog_link')
|
||||
->find($userId);
|
||||
$this->data['blog'] = [
|
||||
$resultBlog,
|
||||
];
|
||||
$this->data['blogSort'] = DB::table('blog_sort')
|
||||
->orderBy('sort')
|
||||
->get()
|
||||
->toArray();
|
||||
$blogColor = DB::table('blog_color')
|
||||
->orderBy('id')
|
||||
->get()
|
||||
->toArray();
|
||||
for ($i = 0; !empty($blogColor[$i]->id); $i++) {
|
||||
$blogColor[$i]->colorDarkType = str_replace('dark:', '', $blogColor[$i]->colorDarkType);
|
||||
}
|
||||
$this->data['blogColor'] = $blogColor;
|
||||
$this->setDataForViewEditAndCheckAdmin($userId);
|
||||
// 没有查询到执行删除
|
||||
$this->data['subDescriptionForLine'] = '友链修改';
|
||||
if ($this->data['blog'][0] == null) return Response::redirectTo(route('console.friends-link.list'));
|
||||
return view('console.friends-link.edit', $this->data);
|
||||
}
|
||||
|
||||
protected function viewCheckAdmin($userId): View|Factory|Application|RedirectResponse
|
||||
{
|
||||
$this->setDataForViewEditAndCheckAdmin($userId);
|
||||
// 用户期望位置替换显示
|
||||
$this->data['blog'][0]->blogLocation = $this->data['blog'][0]->blogUserLocation;
|
||||
// 没有查询到执行删除
|
||||
$this->data['subDescriptionForLine'] = '友链审核';
|
||||
if ($this->data['blog'][0] == null) return Response::redirectTo(route('console.friends-link.list'));
|
||||
return view('console.friends-link.edit', $this->data);
|
||||
}
|
||||
|
@ -109,9 +106,18 @@ protected function ViewCheck(Request $request): Factory|View|Application
|
|||
{
|
||||
// 检查是否存在含有未在本站分配位置
|
||||
$this->data['blog'] = DB::table('blog_link')
|
||||
->whereIn('blog_link.blogLocation',[0])
|
||||
->whereIn('blog_link.blogLocation', [0])
|
||||
->get()
|
||||
->toArray();
|
||||
$blogColor = DB::table('blog_color')
|
||||
->orderBy('id')
|
||||
->get()
|
||||
->toArray();
|
||||
for ($i = 0; !empty($blogColor[$i]->id); $i++) {
|
||||
$blogColor[$i]->colorLightType = str_replace('border-', 'ring-', $blogColor[$i]->colorLightType);
|
||||
$blogColor[$i]->colorDarkType = str_replace('border-', 'ring-', $blogColor[$i]->colorDarkType);
|
||||
}
|
||||
$this->data['blogColor'] = $blogColor;
|
||||
return view('console.friends-link.check', $this->data);
|
||||
}
|
||||
|
||||
|
@ -222,4 +228,122 @@ public function apiConsoleEdit(Request $request): JsonResponse
|
|||
}
|
||||
return Response::json($returnData, $returnData['code']);
|
||||
}
|
||||
|
||||
public function apiConsoleCheck(Request $request): JsonResponse
|
||||
{
|
||||
// 检查用户是否登录
|
||||
if (Auth::check()) {
|
||||
if (Auth::user()->admin) {
|
||||
// 处理获取数据
|
||||
$dataCheck = Validator::make($request->all(), [
|
||||
'userId' => 'required|int',
|
||||
'userEmail' => 'required|email',
|
||||
'userServerHost' => 'required|string',
|
||||
'userBlog' => 'required|string',
|
||||
'userUrl' => 'required|regex:#[a-zA-z]+://[^\s]*#',
|
||||
'userDescription' => 'required|string',
|
||||
'userIcon' => 'required|regex:#[a-zA-z]+://[^\s]*#',
|
||||
'checkRssJudge' => 'boolean',
|
||||
'userRss' => 'string|regex:#[a-zA-z]+://[^\s]*#',
|
||||
'userSelColor' => 'required|int',
|
||||
'userLocation' => 'required|string',
|
||||
]);
|
||||
if ($dataCheck->fails()) {
|
||||
$errorType = array_keys($dataCheck->failed());
|
||||
$i = 0;
|
||||
foreach ($dataCheck->failed() as $valueData) {
|
||||
$errorInfo[$errorType[$i]] = array_keys($valueData);
|
||||
if ($i == 0) {
|
||||
$errorSingle = [
|
||||
'info' => $errorType[$i],
|
||||
'need' => $errorInfo[$errorType[$i]],
|
||||
];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$returnData = [
|
||||
'output' => 'DataFormatError',
|
||||
'code' => 403,
|
||||
'data' => [
|
||||
'message' => '输入内容有错误',
|
||||
'errorSingle' => $errorSingle,
|
||||
'error' => $errorInfo,
|
||||
],
|
||||
];
|
||||
} else {
|
||||
// 更新数据库
|
||||
DB::table('blog_link')
|
||||
->where([['id', '=', $request->userId]])
|
||||
->update([
|
||||
'blogOwnEmail' => $request->userEmail,
|
||||
'blogServerHost' => $request->userServerHost,
|
||||
'blogName' => $request->userBlog,
|
||||
'blogUrl' => $request->userUrl,
|
||||
'blogDescription' => $request->userDescription,
|
||||
'blogIcon' => $request->userIcon,
|
||||
'blogRssJudge' => $request->checkRssJudge,
|
||||
'blogRSS' => $request->userRss,
|
||||
'blogSetColor' => $request->userSelColor,
|
||||
'blogLocation' => $request->userLocation,
|
||||
'updated_at' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
Mail::send('mail.link-console-verify', $request->all(), function (Message $mail) {
|
||||
global $request;
|
||||
$mail->from(env('MAIL_USERNAME'), env('APP_NAME'));
|
||||
$mail->to($request->userEmail);
|
||||
$mail->subject(env('APP_NAME') . '-友链审核通过通知');
|
||||
});
|
||||
$returnData = [
|
||||
'output' => 'Success',
|
||||
'code' => 200,
|
||||
'data' => [
|
||||
'message' => '数据成功更新',
|
||||
],
|
||||
];
|
||||
}
|
||||
} else {
|
||||
$returnData = [
|
||||
'output' => 'NoPermission',
|
||||
'code' => 403,
|
||||
'data' => [
|
||||
'message' => '没有权限',
|
||||
],
|
||||
];
|
||||
}
|
||||
} else {
|
||||
$returnData = [
|
||||
'output' => 'PleaseLogin',
|
||||
'code' => 403,
|
||||
'data' => [
|
||||
'message' => '请登录',
|
||||
],
|
||||
];
|
||||
}
|
||||
return Response::json($returnData, $returnData['code']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $userId
|
||||
* @return void
|
||||
*/
|
||||
private function setDataForViewEditAndCheckAdmin($userId): void
|
||||
{
|
||||
$resultBlog = DB::table('blog_link')
|
||||
->find($userId);
|
||||
$this->data['blog'] = [
|
||||
$resultBlog,
|
||||
];
|
||||
$this->data['blogSort'] = DB::table('blog_sort')
|
||||
->orderBy('sort')
|
||||
->get()
|
||||
->toArray();
|
||||
$blogColor = DB::table('blog_color')
|
||||
->orderBy('id')
|
||||
->get()
|
||||
->toArray();
|
||||
for ($i = 0; !empty($blogColor[$i]->id); $i++) {
|
||||
$blogColor[$i]->colorDarkType = str_replace('dark:', '', $blogColor[$i]->colorDarkType);
|
||||
}
|
||||
$this->data['blogColor'] = $blogColor;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,6 +113,7 @@ public function apiCustomAdd(HttpRequest $request): JsonResponse
|
|||
'blogSetColor' => $request->userSelColor,
|
||||
'blogRemark' => $request->userRemark,
|
||||
'blogServerHost' => $request->userServerHost,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
]);
|
||||
if ($insertData) {
|
||||
// 邮件发送系统
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
Route::prefix('console')->group(function () {
|
||||
Route::post('add', [ConsoleLink::class, 'apiConsoleAdd'])->name('api.link.console.add');
|
||||
Route::post('edit', [ConsoleLink::class, 'apiConsoleEdit'])->name('api.link.console.edit');
|
||||
Route::post('check', [ConsoleLink::class, 'apiConsoleCheck'])->name('api.link.console.check');
|
||||
});
|
||||
Route::prefix('custom')->group(function () {
|
||||
Route::post('add', [Link::class, 'apiCustomAdd'])->name('api.link.custom.add');
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
use App\Http\Controllers\Console\Link as ConsoleLink;
|
||||
use App\Http\Controllers\Function\Link as UserLink;
|
||||
use App\Http\Controllers\Index;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
@ -59,11 +58,8 @@
|
|||
Route::redirect('list', 'list/1');
|
||||
Route::get('list', [ConsoleLink::class, 'ViewList'])->name('console.friends-link.list');
|
||||
Route::get('check', [ConsoleLink::class, 'ViewCheck'])->name('console.friends-link.check');
|
||||
Route::get('edit/{userId}', function ($userId) {
|
||||
$ConsoleLink = new ConsoleLink();
|
||||
$request = new Request();
|
||||
return $ConsoleLink->ViewEdit($request, $userId);
|
||||
})->name('console.friends-link.edit');
|
||||
Route::get('edit/{userId}', [ConsoleLink::class, 'viewEdit'])->name('console.friends-link.edit');
|
||||
Route::get('check/{userId}', [ConsoleLink::class, 'viewCheckAdmin'])->name('console.friends-link.check-admin');
|
||||
Route::get('add', [ConsoleLink::class, 'ViewAdd'])->name('console.friends-link.add');
|
||||
Route::get('sort', [ConsoleLink::class, 'ViewSort'])->name('console.friends-link.sort');
|
||||
Route::get('color', [ConsoleLink::class, 'ViewColor'])->name('console.friends-link.color');
|
||||
|
|
Loading…
Reference in New Issue
Block a user