Skydda SharePoint lista/bibliotek dokumentvyer verkar (typ av) Möjligt med jQuery

Detta är en annan post i min pågående serie om hur du använder jQuery med SharePoint.
Om du vill veta mer om jQuery, Jag rekommenderar: jQuery i aktion av Björn Bibeault och Yehuda Katz.

En av de första saker som jag trodde, När jag började att spela med jQuery, var om vi kunde använda den för att säkra en SharePoint-vy. Svaret är "nej" (eller åtminstone, Jag påstår inte att det är möjligt). Men, Det är säkert möjligt att göra det svårt för människor att se en viss vy.

Jag började med min sandlåda miljö när du arbetar på detta. Jag skrev om att miljön här: Snabb och enkel: Skapa din egen jQuery sandlåda för SharePoint.

Att "säkra" en Visa, Följ dessa steg:

  1. Skapa en vy som du vill skydda. Jag gjorde det och kallade det "Säkrade View".

    Detta är vad det ser ut när det inte är "säker":

    image

  2. Lägga till webbdelen Innehållsredigeraren till vyn sida använda knep beskrivs i artikel i sandlådan (dvs. Lägg till "sidvisning = delad&ToolPaneView = 2 "till URL).
  3. Räkna ut din SharePoint _spUserId crazy sÃ, tro eller ej:
    1. Logga in på din SharePoint-miljö.
    2. I webbläsarens Adress-fält, typ: "javascript:Alert(_spUserId").
    3. Spela in resultatet (Det är "13" i mitt fall).

      image

  4. Lägg till följande javascript till din CEWP i kodvyn:

    <script typ ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </skript>
    
    <script typ ="text/javascript">
      $(funktionen() {
    
        Alert(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = säkrade % 20View]');
    
        om ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = säkrade % 20View]').förälder().förälder().förälder().HTML("<TR bgcolor = röd><TD>Ingen utsikt för dig!</TD></TR>");
      });
    
    </skript>
    

Jag har tagit det alert(_spUserId) linje in där för att visa hur detta inte verkligen en "säkra" en Visa, men helt enkelt göra det svårare att se. Mer om det i ett ögonblick.

I princip, jQuery är ute efter en iFrame på sidan som har ett attribut som innehåller "Secured % 20View" i dess värde. När den finner det, Vi kontrollerar för att se om den aktuella användaren är "13". Om det är, Vi vandrar upp DOM till en <TR> tag (som jag räknat ut genom att Visa källa och spåra det) och sedan ersätta den TR-taggen med mitt budskap. Jag vet faktiskt inte hur robust är (Jag är väldigt misstänksam, I själva verket), utom den arbetat i min sandlåda. Om jag hittar ett bättre sätt, Jag ska blogga om det.. Detta är resultatet:

image

Jag klickar på OK och data ersätts med en stor röd meddelande:

image

Som du kan berätta, det sättet jag genomföra denna "säkerhet" lösning är att låta webbdelen som göra sig. Efter den är klar, Jag skriva över dess innehåll med min "ingen vy för dig!"meddelande.

Trots att det inte är verkligen en "säkrade" "Visa, Det är potentiellt användbara och med några smart arbete, Det kan så småningom komma securable i en mer formell mening. Den grundläggande frågan är att klienten blir alla data och sedan, först när det blir data, det torkar det. Om klienten är att få uppgifter, en smart användare kan förhindra jQuery körs på alla och se vad han/hon vill se.

Det finns andra nackdelar. Denna "säkerhet" tillvägagångssätt bygger bort en _spUserId. Vi vill att riktigt säkert baserat på SharePoint-säkerhetsmodellen i full, eller åtminstone av användarnamn. Det blir successivt svårare, men jag ser några bra saker skrivna om detta ämne, så jag hoppas det är ett bra svar på det problemet.

Listan över vyer sig putsas, om möjligt. Jag har inte försökt att räkna ut. Jag antar att det är möjligt, men inte riktigt lösa de grundläggande säkerhetsproblem eftersom någon kunde fortfarande bara Skriv Webbadressen till vyn de vill (om de visste det). Men, trimning är meningsfullt. Det är en bra användbarhet funktion och bidrar till att fördunkla saker. Om en användare inte vet att Visa evenemanget finns, de inte kommer att förmodligen försöka använda den. Ibland, Det är bra nog.

Med lite tur, Jag har mer att skriva om detta ämne med tiden.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Lämna svar

Din e-postadress kommer inte att publiceras. behövliga fält är markerade *