2012-12-05 25 views
5

Để hợp lý hóa trải nghiệm của người chỉnh sửa nội dung của chúng tôi, tôi muốn đảm bảo rằng các ngôn ngữ hiển thị trong cửa sổ hộp thoại xuất bản được giới hạn ở các ngôn ngữ mà trình chỉnh sửa có quyền truy cập Ngôn ngữ viết. Chúng tôi đã thiết lập Ngôn ngữ Viết cho các vai trò biên tập khác nhau của chúng tôi một cách thích hợp, nhưng toàn bộ lựa chọn Hệ thống> Ngôn ngữ vẫn hiển thị trong hộp thoại xuất bản (ảnh chụp màn hình bên dưới - phần Ngôn ngữ xuất bản là những gì tôi đang tìm kiếm để sắp xếp dựa trên ngôn ngữ viết perms). Tôi đã cố gắng từ chối ngôn ngữ đọc cho một ngôn ngữ không cần thiết để xem nếu điều đó đã làm nó, nhưng nó không. Có cách nào để làm việc này không?Làm cách nào để giới hạn các ngôn ngữ hiển thị trong hộp thoại xuất bản Sitecore?

enter image description here

Trả lời

5

Kết hợp ngôn ngữ được hiển thị trong hộp thoại Xuất bản không phụ thuộc vào quyền truy cập Language Read. Nó chỉ đơn giản là quyền Read xác định điều này.

enter image description here

+0

Cảm ơn bạn - điều này rất hữu ích đối với tôi. – wildwend

2

Bạn đã chia thừa kế trên các ngôn ngữ chưa? Theo mặc định, nhóm mọi người đã đọc quyền truy cập vào các ngôn ngữ, vì vậy bạn cần phải phá vỡ cụ thể quyền thừa kế cho tất cả các ngôn ngữ khác khi chọn vai trò tiếng Anh (Canada) chẳng hạn.

Language Permissions

Tôi chỉ cố gắng này và loại bỏ ngôn ngữ đã đọc vào một vai trò đặc biệt loại bỏ các ngôn ngữ từ công bố danh sách ngôn ngữ. Sử dụng Trình xem truy cập (> Công cụ bảo mật) để đảm bảo rằng Đọc ngôn ngữ không được kế thừa từ vai trò khác.

Nhìn vào phương pháp mà xây dựng hộp thoại Publish trong dotPeek, đây là codebeside cho Sitecore/vỏ/Applications/Dialogs/Xuất bản/Publish.xml

BuildLanguages ​​() phương pháp trong Sitecore.Shell. Lớp Applications.Dialogs.Publish.PublishForm trong Sitecore.Client.dll

Ngoài ra, hãy đảm bảo rằng CheckSecurityOnLanguages trong cấu hình Sitecore được đặt thành true.

Hãy nhận biết, nếu bạn đang chạy nhiều trang web và có quyền khác nhau trên các chi nhánh khác nhau, hãy chắc chắn rằng bạn có Publishing.CheckSecurityPublishing.RequireTargetDeleteRightWhenCheckingSecurity nếu không người dùng sẽ có thể vượt qua xuất bản mục, đó là không phải những gì bạn muốn.

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

[EDIT] @Ruud, bạn không nên từ chối đặc biệt truy cập Vai trò đến một mục, thay vào đó bạn nên phá vỡ kế thừa, như vậy nếu bạn vai trò hợp chất (ví dụ một người dùng thuộc nhiều Roles) người sử dụng sẽ vẫn có quyền truy cập vào mục đó. Nếu bạn từ chối quyền truy cập, sẽ không có quyền nào khác có thể ghi đè quyền truy cập đó.

Sitecore Worst Practices Blog Series: Security

Để ngăn chặn sự khước từ trọng phụ cấp, tránh phủ nhận quyền truy cập ủng hộ vi phạm quyền thừa kế và cấp quyền truy cập.

Xin lỗi, không có đủ đại diện để nhận xét trực tiếp trên bài đăng của bạn.

+0

tôi nên thêm, nếu nó này liên quan đến [câu hỏi khác] của bạn (http://stackoverflow.com/questions/13690804/how-to-limit-sitecore-language-write-to-only -certain-parts-of-the-content-tree) về hạn chế ngôn ngữ, sau đó điều này sẽ xung đột với yêu cầu đó vì yêu cầu khác có thể cần quyền truy cập Đọc trên ngôn ngữ tùy thuộc vào yêu cầu của bạn. Tôi sẽ thêm thông tin vào câu trả lời của tôi trong câu hỏi khác khi tôi có thời gian. – jammykam

+0

Bạn có thể xác nhận rằng Publishing.CheckSecurity nên được đặt thành true và Publishing.RequireTargetDeleteRightWhenCheckingSecurity phải được đặt thành false không? –

+0

@MatthewDresser Nếu bạn không đặt 'Publishing.CheckSecurity' thì bạn sẽ xuất bản mọi thứ ở trạng thái có thể xuất bản, ngay cả khi người dùng không có quyền truy cập đọc/ghi vào các mục đó. Nó phụ thuộc vào những gì bạn cần, người dùng chỉ có thể xuất bản nội dung của riêng họ? – jammykam

Các vấn đề liên quan