匿名时如何获取受限页面URL

问题描述 投票:0回答:1

标题说明了一切:在我们当前正在构建的网站中,我们拥有的页面具有对admin,guest和anon的权限。

我们创建的小部件之一允许管理员选择any页面,然后在页面中生成链接。使用apostrophe-second-chance-login,这应该可以正常工作。

[...]
{
  label: 'Page, article, product, etc.',
  help: 'Content to which the button leads',
  name: '_target',
  type: 'joinByOne',
  withType: LinkableTypes,
  filters: {
    projection: {
      _url: 1
    }
  },
  idField: 'id'
}
[...]

LinkableTypes只是链接可以指向的小部件名称的数组:

[
  "apostrophe-page",
  "article",
  "machine",
  "engine",
  "accessory"
]

apostrophe-page很明显,其他都是碎片。

我们遇到一个问题,即匿名模式下的小部件将无法获得data.widget._target._url的任何值。

我们开始研究在load中覆盖construct方法

construct(self, options) {
  const superLoad = self.load;
    self.load = (req, widgets, callback) => {
    superLoad(self.apos.tasks.getReq(), widgets, callback)
  };
}

但似乎并非在所有情况下都有效。在非默认语言中,data.widget._target._url为空,而在默认语言中为正确。我们使用apostrophe-workflow

我试图避免创建将URL硬编码在其中的组件。

apostrophe-cms
1个回答
0
投票

如果将permission: false添加到联接的filters部分,则将返回页面,而不考虑权限。您应该谨慎地使用它,但是它允许您创建到登录用户无法立即看到您正在寻找的页面的链接。

© www.soinside.com 2019 - 2024. All rights reserved.