Εξασφάλιση προβολές βιβλιοθήκη SharePoint λίστα/εγγράφων φαίνεται (είδος) Δυνατόν με jQuery

Αυτή είναι μια άλλη θέση σε μου η σειρά συνεχίζεται σχετικά με τη χρήση jQuery με SharePoint.
Αν θέλετε να μάθετε περισσότερα σχετικά με jQuery, Συστήνω ιδιαίτερα: jQuery σε δράση από την αρκούδα Bibeault και Yehuda Katz.

Ένα από τα πρώτα πράγματα που σκέφτηκα, Μόλις άρχισα να παίζουν με jQuery, ήταν αν θα μπορούσαμε να το χρησιμοποιήσουμε για να εξασφαλίσει μια άποψη του SharePoint. Η απάντηση είναι "όχι" (ή τουλάχιστον, Δεν είμαι υποστηρίζοντας είναι δυνατό). Ωστόσο, είναι βεβαίως δυνατό να καταστήσει δύσκολο για τους ανθρώπους να δουν μια συγκεκριμένη προβολή.

Ξεκίνησα με το περιβάλλον μου sandbox όταν εργάζεται πάνω σε αυτό. Έγραψα σχετικά με αυτό το περιβάλλον: Γρήγορη και εύκολη: Δημιουργία σας ιδίων jQuery Sandbox για SharePoint.

Να «ασφαλούς» θέα, Ακολουθήστε τα παρακάτω βήματα:

  1. Δημιουργία μιας προβολής που θέλετε να διασφαλίσετε. Το έκανα αυτό και το ονόμασε "Εξασφάλισε View".

    Αυτό είναι τι μοιάζει όταν δεν "εξασφαλίζεται":

    image

  2. Προσθήκη τμήματος web περιεχόμενο editor να της προβολής σελίδας χρησιμοποιώντας το τέχνασμα που περιγράφεται στο άρθρο sandbox (ήτοι. Προσθέστε "προβολή σελίδας = Shared&ToolPaneView = 2" στη διεύθυνση URL).
  3. Καταλάβω σας SharePoint _spUserId, ακολουθώντας τα παρακάτω βήματα για τρελό, Πιστέψτε ή μη:
    1. Συνδεθείτε στο περιβάλλον σας του SharePoint.
    2. Στο πεδίο διεύθυνσης του προγράμματος περιήγησης, Τύπος: "javascript:συναγερμού(_spUserId").
    3. Καταγράφει το αποτέλεσμα (είναι "13" στην περίπτωσή μου).

      image

  4. Προσθέστε τα ακόλουθα javascript να σας CEWP στην προβολή code:

    <σενάριο τύπου ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </σενάριο>
    
    <σενάριο τύπου ="text/javascript">
      $(συνάρτηση() {
    
        συναγερμού(_spUserId);
    
        var theSecuredView = $(«iframe[FilterLink * = εξασφαλισμένα % 20View]');
    
        Αν ((theSecuredView.length > 0) && (_spUserId == 13))
          $(«iframe[FilterLink * = εξασφαλισμένα % 20View]').γονέας().γονέας().γονέας().HTML("<χρώμα φόντου TR = κόκκινο><TD>Καμία άποψη για σας!</TD></TR>");
      });
    
    </σενάριο>
    

Έχω περιλάβει ότι συναγερμού(_spUserId) γραμμή εκεί να αποδείξει πώς αυτό δεν είναι πραγματικά μια "ασφάλεια", μια προβολή, αλλά απλά καθιστούν δυσκολότερο να δούμε. Περισσότερα για αυτό σε μια στιγμή.

Βασικά, jQuery ψάχνει για ένα iFrame στη σελίδα που έχει ένα χαρακτηριστικό που περιέχει "Ασφαλής % 20View" της αξίας της. Μία φορά το κρίνει, ελέγχουμε για να δούμε αν ο τρέχων χρήστης είναι "13". Αν πρόκειται για, ανεβαίνουμε στο DOM σε μια <TR> ετικέτα (που κατάλαβα από την προβολή πηγαίου κώδικα και την ιχνηλάτηση) και στη συνέχεια την αντικατάσταση αυτή την ετικέτα TR με το μήνυμά μου. Πραγματικά δεν ξέρω πόσο ισχυρή είναι (Είμαι πολύ ύποπτος, Στην πραγματικότητα), μα αυτό έλυσα στο sandbox μου. Αν μου βρείτε έναν καλύτερο τρόπο, Εγώ θα blog για αυτό. Αυτό είναι το αποτέλεσμα:

image

Κάντε κλικ στο κουμπί OK και τα δεδομένα αντικαθίσταται με ένα μεγάλο κόκκινο μήνυμα:

image

Όπως μπορείτε να πείτε, ο τρόπος που έχω εφαρμόσει αυτό "ασφάλεια" λύση είναι να επιτραπεί το τμήμα web να καταστήσει το ίδιο. Μετά την ολοκλήρωση της, Μπορώ να αντικαταστήσετε το περιεχόμενό της με το "καμία γνώμη μου για σένα!"μήνυμα.

Παρά το γεγονός ότι δεν είναι πραγματικά μια "ασφαλής»" Προβολή, είναι δυνητικά χρήσιμο και με κάποια έξυπνη εργασία, μπορεί να είναι τελικά ασφαλιζόμενο σε μία πιο τυπική έννοια. Το θεμελιώδες ζήτημα είναι ότι ο πελάτης παίρνει όλα τα δεδομένα και στη συνέχεια, μόνο αφού παίρνει τα δεδομένα, Αυτό εξαφανίζει. Εάν ο πελάτης να πάρει τα δεδομένα, ένας έξυπνος χρήστης να εμποδίσετε την εκτέλεση καθόλου το jQuery και να δούμε τι αυτός/αυτή θέλει να δει.

Υπάρχουν άλλα μειονεκτήματα. Αυτή η "ασφάλεια" προσέγγιση βασίζεται στα ανοικτά ενός _spUserId. Θα θέλαμε να πραγματικά ασφαλείς με βάση το πλήρες μοντέλο ασφαλείας του SharePoint, ή τουλάχιστον από το όνομα χρήστη. Που γίνεται ολοένα και πιο δύσκολη, αλλά βλέπω κάποια καλά πράγματα να γράψει για το θέμα, έτσι είμαι αισιόδοξος, υπάρχει μια καλή απάντηση σε αυτό το πρόβλημα.

Λίστα προβολών που οι ίδιοι πρέπει να τακτοποιηθεί, αν είναι δυνατόν. Δεν έχω δοκιμάσει να λογαριάσω αυτός έξω. Υποθέτω ότι είναι δυνατό, αλλά πραγματικά δεν λύνει το θεμελιώδες ζήτημα της ασφάλειας, διότι κάποιος θα μπορούσε ακόμα απλά πληκτρολογήστε τη διεύθυνση URL της άποψης που θέλουν (εάν γνώριζαν αυτό). Ωστόσο, ΣΥΡΗΤΙ έχει νόημα. Είναι ένα καλό χαρακτηριστικό ευχρηστίας και βοηθά να θολώνω τα πράγματα. Εάν ένας τελικός χρήστης δεν γνωρίζει ότι υπάρχει η προβολή συμβάντων, πιθανώς δεν θα προσπαθήσουν να το χρησιμοποιήσουν. Μερικές φορές, Αυτό είναι αρκετά καλό.

Με τύχη, Θα έχω περισσότερα να γράψω για το θέμα αυτό διαχρονικά.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Ετικέτες del.icio.us: ,,

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *