功能:window.chatBanner 全局大卡片公共组件
前端: - window.chatBanner.show(options) 全局 API,完全自定义: icon/title/name/body/sub/gradient/titleColor/autoClose/buttons - window.chatBanner.close(id) 关闭指定 banner - showFriendBanner / showAppointmentBanner 均改用 chatBanner 实现 - setupBannerNotification() 监听私有+房间频道的 BannerNotification 事件 后端: - BannerNotification 事件(ShouldBroadcastNow),支持 user/room 双目标 - BannerBroadcastController(仅超级管理员路由,三层中间件保护) - 内容字段 strip_tags 净化防 XSS,按钮 action 白名单校验 安全: - window.chatBanner.show() 被人控制台调用只影响自己,无法推给他人 - HTTP 入口 POST /admin/banner/broadcast 仅超管可访问
This commit is contained in:
@@ -191,6 +191,9 @@ Route::middleware(['chat.auth', 'chat.has_position'])->prefix('admin')->name('ad
|
||||
Route::put('/departments/{department}', [\App\Http\Controllers\Admin\DepartmentController::class, 'update'])->name('departments.update');
|
||||
Route::put('/positions/{position}', [\App\Http\Controllers\Admin\PositionController::class, 'update'])->name('positions.update');
|
||||
|
||||
// 大卡片通知广播(仅超级管理员,安全隔离:普通用户无此接口)
|
||||
Route::post('/banner/broadcast', [\App\Http\Controllers\Admin\BannerBroadcastController::class, 'send'])->name('admin.banner.broadcast');
|
||||
|
||||
// 聊天室参数(含保存)
|
||||
Route::get('/system', [\App\Http\Controllers\Admin\SystemController::class, 'edit'])->name('system.edit');
|
||||
Route::put('/system', [\App\Http\Controllers\Admin\SystemController::class, 'update'])->name('system.update');
|
||||
|
||||
Reference in New Issue
Block a user