为不同的用户广播不同的数据

时间:2018-01-30 15:27:56

标签: laravel websocket broadcast pusher

我正在运行带有评论模块的平台。用户可以在那里评论关节,服务器可以决定用户是否可以根据角色系统编辑或删除他不拥有的评论。

这些标志是在服务器端计算的,并在页面加载时传输到客户端,但现在我想广播新创建的注释。

现在我面临某种架构问题:当用户#1创建评论时,基于用户#1的编辑和删除标记的评论被广播,因此如果我是#用户#则不正确2。

我是否必须在每个用户的私人频道中广播新评论,以确定该用户的编辑和删除权限,或者我可以采取哪些优势?

1 个答案:

答案 0 :(得分:0)

角色系统应该在后端中进行管理,因此广播应仅用于通知已发布新消息(然后您可以在视图中将其推送),但这不一定是CRUD权限的问题,因为这应该基于用户id进行管理。例如,在控制器中注入Request objectauthorize()方法中,您可以这样做:

/**
 * Determine if the user is authorized to edit the message.
 *
 * @return bool
 */
public function authorize()
{
    /** 
    *  The next line compares if the id of the logged in user matches         
    *  the foreign `user_id` in the message object.
    */ 
    return auth()->user()->id == $this->user_id;
}