Piranha CMS の管理画面で、ログインしたユーザーだけが作成したページを一覧表示したい。これを実現するには PageListModelLoaded フックを使用する必要があると考え、このコードを global.asax に記述しました。
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
Hooks.Manager.PageListModelLoaded += (controller, menu, model) =>
{
Guid user_id = controller.User.GetProfile().Id;
model.Pages = model.Pages.Where(p => p.CreatedBy == user_id).ToList();
};
}
残念ながら、これは期待どおりに機能しません。モデルの数が表示されていても、Manager はすべてのページを一覧表示します。段階的なデバッグにより、Pages はゼロに等しくなります。誰かが私のせいが何であるかを理解するのを手伝ってくれたら幸いです.
よろしく、 ウミット