Bảo vệ SharePoint danh sách/tài liệu thư viện lượt xem có vẻ (phân loại các) Có thể với jQuery

Đây là một bài đăng trong của tôi ngày đi loạt làm thế nào để sử dụng jQuery với SharePoint.
Nếu bạn muốn tìm hiểu thêm về jQuery, Tôi rất khuyên bạn nên: jQuery trong hành động bởi gấu Bibeault và Yehuda Katz.

Một trong những điều đầu tiên tôi nghĩ, khi tôi bắt đầu chơi xung quanh với jQuery, là cho dù chúng tôi có thể sử dụng nó để bảo đảm một cái nhìn SharePoint. Câu trả lời là "không" (hoặc ít, Tôi không tuyên bố có thể). Tuy nhiên, nó là chắc chắn có thể để làm cho nó khó khăn cho người dân để xem một cái nhìn cụ thể.

Tôi bắt đầu với môi trường chỗ thử của tôi khi làm việc này. Tôi đã viết về môi trường đó ở đây: Nhanh chóng và dễ dàng: Tạo riêng của bạn jQuery Sandbox cho SharePoint.

Để "bảo mật" một lần xem, thực hiện theo các bước sau:

  1. Tạo ra một cái nhìn bạn muốn an toàn. Tôi đã làm điều đó và gọi nó là "Bảo đảm View".

    Đây là những gì nó trông giống như khi nó được không "bảo vệ":

    image

  2. Thêm một phần biên tập nội dung web để xem trang sử dụng Mẹo được mô tả trong bài viết chỗ thử (tức là. Thêm "lần xem trang = chia sẻ&ToolPaneView = 2 "đến URL).
  3. Tìm ra _spUserId SharePoint của bạn bằng cách làm theo các bước sau điên, tin hay không:
    1. Đăng nhập vào môi trường SharePoint của bạn.
    2. Trong trường địa chỉ của trình duyệt web, loại: "javascript:cảnh báo(_spUserId").
    3. Ghi kết quả (nó là "13" trong trường hợp của tôi).

      image

  4. Thêm javascript sau vào CEWP của bạn trong chế độ xem mã:

    <kịch bản loại ="text/javascript"
        SRC =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </kịch bản>
    
    <kịch bản loại ="text/javascript">
      $(chức năng() {
    
        cảnh báo(_spUserId);
    
        var theSecuredView = $(' khung nội tuyến[FilterLink * = bảo đảm % 20View]');
    
        Nếu ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' khung nội tuyến[FilterLink * = bảo đảm % 20View]').phụ huynh().phụ huynh().phụ huynh().HTML("<tr bgcolor = đỏ><TD>Không nhìn ra cho bạn!</TD></tr>");
      });
    
    </kịch bản>
    

Tôi đã bao gồm các cảnh báo đó(_spUserId) dòng ở đó để chứng minh làm thế nào đây không phải là thực sự một "bảo vệ" một lần xem, nhưng chỉ đơn giản là làm cho nó khó khăn hơn để xem. Thêm vào đó trong một thời điểm.

Về cơ bản, jQuery tìm kiếm một khung nội tuyến trên trang những người có một thuộc tính có chứa "Bảo đảm % 20View" trong giá trị của nó. Một khi nó tìm thấy nó, chúng tôi kiểm tra để xem nếu người dùng hiện tại là "13". Nếu nó là, chúng tôi đi bộ lên DOM để một <TR> từ khóa (mà tôi đã tìm ra bằng cách xem nguồn và truy tìm nó) và sau đó thay thế thẻ TR đó với bài viết của tôi. Tôi thực sự không biết điều này là mạnh mẽ như thế nào (Tôi rất nghi ngờ, Thực tế), nhưng nó đã làm việc trong chỗ thử của tôi. Nếu tôi tìm thấy một cách tốt hơn, Tôi sẽ blog về nó. Đây là kết quả:

image

Tôi nhấp vào nút OK và dữ liệu được thay thế bằng một thông báo màu đỏ lớn:

image

Như bạn có thể nói, con đường tôi đã thực hiện giải pháp "bảo mật" này là để cho phép một phần web để khiến chính nó. Sau khi nó kết thúc, Tôi ghi đè lên nội dung của nó với "không có quan điểm của tôi cho bạn!"tin nhắn.

Mặc dù thực tế là nó không phải là thực sự một "bảo đảm '" xem, nó là khả năng có thể hữu ích và với một số công việc thông minh, nó có thể cuối cùng được securable trong một ý nghĩa chính thức hơn. Vấn đề cơ bản là các khách hàng nhận được tất cả các dữ liệu và sau đó, chỉ sau khi nó được các dữ liệu, nó lau nó ra. Nếu khách hàng là nhận được dữ liệu, một người sử dụng thông minh có thể ngăn chặn jQuery chạy ở tất cả và xem những gì anh/cô ấy muốn xem.

Có những hạn chế khác. Cách tiếp cận "bảo mật" này dựa off một _spUserId. Chúng tôi muốn để thực sự an toàn dựa trên mô hình bảo mật đầy đủ của SharePoint, hoặc ít bằng tên người dùng. Mà trở nên dần dần khó khăn hơn, nhưng tôi thấy một số công cụ tốt viết về chủ đề này, Vì vậy, tôi hy vọng có là một câu trả lời tốt đến vấn đề đó.

Danh sách xem mình nên được trimmed, Nếu có thể. Tôi đã không cố gắng để hiểu. Tôi giả định nó là có thể, nhưng thực sự không giải quyết vấn đề cơ bản bảo mật bởi vì ai đó vẫn chỉ có thể gõ URL của xem họ muốn (Nếu họ biết nó). Tuy nhiên, Trang trí làm cho cảm giác. Nó là một tính năng khả năng sử dụng tốt và nó giúp làm thành tối tăm điều. Nếu một người dùng không biết rằng các sự kiện xem tồn tại, họ có lẽ sẽ không cố gắng sử dụng nó. Đôi khi, đó là đủ tốt.

Với may mắn, Tôi sẽ có nhiều hơn để viết về chủ đề này theo thời gian.

</kết thúc>

Đăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *