【问题标题】:Adding an action key to existing model permissions向现有模型权限添加操作键
【发布时间】:2013-03-13 16:07:17
【问题描述】:

我正在尝试添加自定义权限,即特定于我使用 ServiceBuilder 构建的自定义模型(请参阅下面的资源操作/default.xml 摘录)。我的 portlet 已经部署,并且正在使用中。

对此我有两个问题:

  1. 我假设我必须在升级方法中重新创建适当的资源,以便考虑到我的新操作键。是这样吗?
  2. 如果我必须再次向所有模型实例添加资源,是否会保留之前分配的权限?

最好的问候, 阿兰


resource-actions default.xml 文件的提取:

    <permissions>
        <supports>
            <action-key>VIEW</action-key>
            <action-key>DELETE</action-key>
                            ...
            <action-key>NEW_CUSTOM_PERMISSION</action-key>
        </supports>
                     ...
    </permissions>

【问题讨论】:

  • 我很乐意提供帮助,但我真的无法理解您的问题。您能否再解释一下您的 2 个问题?
  • 我创建了一个 Project 实例,并在其上设置了标准操作(查看、删除、assign_members ......)。我现在想添加一个新的 actionKey 来设置招募权限,这与 assign_members 不同。如果我在 resource-actions/project.xml 中添加这个 actionKey,我会在我的角色权限定义中看到一个关于 action.RECRUIT 的新条目,我可以将权限分配给角色。我不知道这是否就是我需要做的(似乎工作)。我不确定资源创建(对 ResourceLocalServiceUtil.addResources 的调用)是否取决于调用时定义的操作键。希望这可以澄清。

标签: permissions liferay-6


【解决方案1】:

权限系统中的逻辑是Roles -> Action-keys -> Resources

“Action-keys -> Resources”在您的 portlet 的业务逻辑中定义,并将在其他页面或门户实例中携带。通过这种方式,您可以控制资源(页面、模型、服务构建器实体等)将如何由公开的操作键控制,用于您的每个 portlet 实例。

对于同一个 portlet 的实例,“角色 -> 操作键”的关系可以通过 2 种方式发生变化:

  1. 通过将角色分配给操作键(从管理员的控制面板),您可以为部署 portlet 的特定门户使用完全不同的角色。这样,您还定义了一些将在该门户的每个页面中遵循的最小/默认权限。例如,在 Portal P1 中,角色 R1 中的所有用户都可以执行操作 A1,而在 Portal P2 中,根本没有角色 R1
  2. 使用权限表,您可以微调或覆盖上述权限,并为放置在同一门户的不同页面中的实例赋予不同的权限。例如,角色 R1 中的用户,在页面 p1 中可以执行操作,而在另一个页面 p2 上,他们不能

您可以将操作键想象为资源和角色之间的中间层,为您提供抽象,创建角色到资源绑定的完美组合

【讨论】:

  • 感谢您的回答...如果我理解逻辑,如果我只是添加一个新的 actionKey,就没有理由为所有现有项目调用 addResources。我的新操作键与资源或角色之间没有映射,因此在我将操作键分配给角色(范围组模板或公司)或直到我分配之前,没有人(omniadmin 除外)有权招募实体特定实例的特定角色的权限。对吗?
  • 快到了。 amniadmin 确实会为操作键分配角色。但是resource-actionKey 映射是在portlet 内部完成的。内容管理器不知道资源,只知道 actionKeys
猜你喜欢
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 2010-10-24
  • 2019-10-28
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多