5

为了简化我们的内容编辑者的体验,我想确保发布对话窗口中显示的语言仅限于编辑者具有语言写入权限的语言。我们已经为我们的各种编辑角色适当地设置了语言写入,但是系统>语言的整个选择仍然显示在发布对话框中(下面的屏幕截图——发布语言部分是我希望基于 lang write 简化的部分烫发)。我曾尝试拒绝使用非必要语言的 Language Read 来查看是否这样做,但事实并非如此。有没有办法做到这一点?

在此处输入图像描述

4

2 回答 2

6

发布对话框中是否显示语言不取决于Language Read访问权限。只是Read权利决定了这一点。

在此处输入图像描述

于 2012-12-06T09:14:33.710 回答
2

Have you broken inheritance on the languages? By default the everyone group has read access to the languages, so you need to specifically break inheritance for all other languages when selecting a English (Canada) role for example.

Language Permissions

I've just tried this and removing Language Read on a particular role removes the language from the publish language list. Use the Access Viewer (>Security Tools) to make sure that Language Read is not inherited from another role.

Look at the method which builds the Publish dialog in dotPeek, this is the codebeside for sitecore/shell/Applications/Dialogs/Publish/Publish.xml

BuildLanguages() method in Sitecore.Shell.Applications.Dialogs.Publish.PublishForm class in Sitecore.Client.dll

Also, make sure that CheckSecurityOnLanguages in Sitecore config is set to true.

Be aware, if you are running multi-site and have different permissions on different branches, make sure that you have Publishing.CheckSecurity and Publishing.RequireTargetDeleteRightWhenCheckingSecurity otherwise users will be able to cross publish items, which is not what you want.

http://sitecorebasics.wordpress.com/2011/04/12/publishing-security-basics/

[EDIT] @Ruud, you shouldn't specifically deny Role access to an item, instead you should break inheritance, that way if you compound roles (i.e. a user belongs to multiple Roles) the user will still have access to that item. If you deny access, no other permission will be able to override it.

Sitecore Worst Practices Blog Series: Security

To prevent denial from overriding allowance, avoid denying access rights in favor of breaking inheritance and granting access rights.

Sorry, don't have enough rep to comment directly on your post.

于 2012-12-05T17:33:20.157 回答