【问题标题】:How to hide form fields in a new company如何在新公司中隐藏表单域
【发布时间】:2012-02-08 15:20:48
【问题描述】:

我为 5 家公司安装了 AX 2009。

当前的安全配置包含特定于公司的用户组,并且公司位于自己的域中(每个公司 1 个)。

我正在添加一家新公司,但是对于这家新公司,我不希望在某些表单上显示各种组。

如何在不影响现有公司的情况下实现这一目标?

我已尝试(在测试环境中)添加新的安全密钥,但安全密钥默认为“无访问权限”。当应用于表单上的组时,该组变为隐藏;这对我的新公司来说没问题,但我需要遍历所有其他用户组并重新设置为完全控制,以便现有公司中的用户仍然可以看到该字段组。

【问题讨论】:

    标签: security dynamics-ax-2009 axapta


    【解决方案1】:

    AX 中有一个名为curExt() 的内置函数,它会告诉您用户当前公司的名称。如果将表单上组的自动声明属性设置为是,则可以在表单上执行以下操作:

    if(curExt() == "NewCompany")
    {
         GroupNameThatShouldNotBeVisible.visible(false);
    }
    

    那么您就不必担心为所有公司设置安全密钥了。

    【讨论】:

    • 我同意使用 curExt() 可能是避免使用安全密钥/权限的最佳选择,因为正如您所发现的那样,它们可能相当麻烦。
    • 感谢迈克尔 + 文斯。我忘了提到这可能是问题中特定的用户组,但这只是我自己的错。
    • 我想得越多,确实应该可以在安全方面处理这个问题,这是微软在未来版本中真正应该考虑的。
    【解决方案2】:

    我不同意 Michael Brown 和 Vince Perta 的观点,因为这里的最佳做法是使用安全密钥和域设置。但是,如果您不是为许多客户工作的顾问,并且您是内部开发人员……使用 curExt() 并对您想要的公司和安全设置进行硬编码并不是什么大问题。

    我在准确了解您如何执行安全组以及为什么这很困难时遇到了一些麻烦……但我会制作一份 Live to Test 的副本,根据需要对所有安全组进行安全更改公司,然后将它们导出到文件中,然后导入 Live。您是否担心对实时用户的干扰或究竟是什么?

    【讨论】:

    • 是的,担心会影响实时用户。我还必须考虑管理我们现场安全的顾问的角色,并努力让他们的工作更轻松。
    • 如果您担心中断,只需导出安全密钥并导入...这也有助于更好的“切换”程序。如果您接受了 SOX 审核,这也是一个更好的改变。
    • 我没有说我的回答是最佳实践。我同意这会通过安全性更好地处理,但在问题中 Anthony 表示他已在测试中尝试过此操作,并且不想对整个系统的所有安全组进行更改。我的解决方案提供了一种方法来做到这一点。由于这是一个编程问答网站,所以我给出了可能的 X++ 答案,而不是 Anthony 已经知道的安全答案。
    • 谢谢迈克尔。 @AlexK 我无法控制围绕安全性的业务流程。我想做的就是在发布开发时让每个人(包括我自己)的生活更轻松。
    • @Michael Brown,我的评论并没有任何负面的意思。我个人更喜欢你的方式,我只是想在线程中添加“最佳实践”评论,以防有人用谷歌搜索。我试图指出任何一种方式都很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2020-02-28
    • 2020-11-01
    • 1970-01-01
    相关资源
    最近更新 更多