Užtikrinti SharePoint sąrašas/dokumentų bibliotekos rodinius, atrodo (tarsi) Įmanoma su jQuery

Tai kitą postą į mano vyksta serija kaip naudotis jQuery su SharePoint.
Jei norite sužinoti daugiau apie jQuery, Aš labai rekomenduoju: jQuery veiksmų Padengia Bibeault ir Yehuda Katz.

Vienas iš pirmųjų dalykų, aš maniau, kai aš pradėjau žaisti aplink su jQuery, buvo, ar mes galime jį naudoti užtikrinti SharePoint rodinį. Atsakymas yra "ne" (arba bent, Nesu teigiančių, galima). Tačiau, tai tikrai įmanoma, kad žmonės galėtų matyti ypač sunku.

Aš pradėjau su mano smėlio dėžės aplinką dirbant šiuo. Aš parašė apie tos aplinkos čia: Greitai ir lengvai: Sukurti savo jQuery Sandbox SharePoint.

"Užtikrinti" vaizdas, atlikite šiuos veiksmus:

  1. Kurti rodinį norite SA ugiai apriboti. Aš kad ir pavadino jį "Užtikrintos View".

    Tai, kas atrodo, kai jis yra ne "garantuojamas":

    image

  2. Pridėti turinio rengyklės žiniatinklio dalį prie rodinio puslapį naudojant smėlio dėžės straipsnyje paminėtus pavyko (ty. pridėti "puslapio = bendro naudojimo&ToolPaneView = 2 "į URL).
  3. Išsiaiškinti jūsų SharePoint _spUserId šių crazy veiksmus, tikėti ar ne:
    1. Prisijunkite prie jūsų SharePoint aplinka.
    2. Žiniatinklio naršyklės adreso lauke, tipo: "javascript:perspėjimas(_spUserId").
    3. Įrašo rezultatas (tai "13" mano atveju).

      image

  4. Pridėti šių javascript į savo CEWP kodas nuomone:

    <scenarijų tipo ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </scenarijų>
    
    <scenarijų tipo ="text/javascript">
      $(funkcija() {
    
        perspėjimas(_spUserId);
    
        var theSecuredView = $("iframe[FilterLink * = garantuotos % 20View]');
    
        Jei ((theSecuredView.length > 0) && (_spUserId == 13))
          $("iframe[FilterLink * = garantuotos % 20View]').tėvų().tėvų().tėvų().HTML("<TR bgcolor = red><TD>Peržiūrėti jums!</TD></TR>");
      });
    
    </scenarijų>
    

Mes įtraukėme perspėjimo(_spUserId) linija ten parodyti, kaip tai nėra tikrai yra "užtikrinti" vaizdas, bet tiesiog kad būtų sunkiau matyti. Daugiau apie tai vienu metu.

Iš esmės, jQuery ieško iFrame puslapio, kuris turi atributas, kuriame yra "Saugus % 20View" jo vertė. Kai jis nematys, Mes patikrinkite, jei Dabartinis vartotojas yra "13". Jei tai, mes vaikščioti į DOM yra <TR> žymė (kurį aš raštuotas, peržiūrėti šaltinį ir sekimo ji) ir tuomet pakeičia tą TR žymę su savo pranešimą. Aš tikrai nežinau, kaip patikimas tai (Aš labai įtartinas, tiesą sakant), bet jis dirbo mano Sandbox. Jei rasiu geriau, Aš dienoraštį apie tai. Taip yra todėl:

image

Aš spustelėkite mygtuką OK ir duomenys keičiami su didelis paryökintas Praneöimas norint sustiprinti:

image

Kaip galite pasakyti, tai, kaip aš įgyvendinti šį "saugumo" sprendimas būtų leisti žiniatinklio dalyje padaryti pats. Po to jis baigia, Aš perrašyti savo turinį neplanuodami savo"jums!"pranešimas.

Nepaisant to, kad tai nėra tikrai yra "Saugi" "Rodyti, tai gali būti naudinga ir tam tikrą protingas darbą, Galiausiai gali būti apsaugotam formalaus prasme. Esminis klausimas yra, kad klientas yra gauti visus duomenis ir tada, tik po to, kai ji gauna duomenys, jis servetėlės iš. Jei klientas yra gauti duomenis, protingas vartotojo gali neleisti jQuery paleisti visą ir pamatyti, ką jis/ji nori matyti.

Yra kitų trūkumų. Šis "saugumo" metodas yra pagrįstas ne per _spUserId. Mes, nori tikrai saugus, pagrįstą pilnas SharePoint saugumo modelio, ar bent iš vartotojo vardą. Tai tampa vis sunkiau, bet aš matau kai kurių neblogai parašyta šiuo klausimu, todėl aš tikiuosi, yra geras atsakymas į šią problemą.

Vaizdų, patys sąrašą, turėtų būti apipjaustyta, Jei įmanoma. Aš ne bandė tai išsiaiškinti. Manau, tai galima, bet tikrai nėra išspręsti pagrindinių saugumo problema, nes kas nors dar tik įvesti jie nori rodinio URL (jei jie žinojo, kad). Tačiau, Apipjaustymas turi prasmę. Tai yra funkcija, praktiškumo ir tai padeda Notrulināt dalykų. Jei galutinis vartotojas nežino, kad apie įvykį yra, jie tikriausiai nebus pasistengs jį išnaudoti. Kartais, tai pakankamai gera.

Su sėkmės, Aš turiu parašyti šia tema per tam tikrą laiką.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

palik atsakymą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *