L'obtenció de vistes de Biblioteca de SharePoint llista/Document sembla (tipus de) Possible amb jQuery

Això és un altre post en el meu sèrie en curs damunt com utilitzar jQuery amb SharePoint.
Si voleu més informació sobre com jQuery, Altament recomano: jQuery en acció per l'ós Bibeault i Yehuda Katz.

Una de les primeres coses que vaig pensar, un cop vaig començar a jugar amb jQuery, era si podríem utilitzar per assegurar una visualització del SharePoint. La resposta és "no" (o com a mínim, No estic reclamant que és possible). No obstant això, és certament possible fer-ho difícil per a gent per veure una visió particular.

Vaig començar amb el meu ambient de sorrera quan es treballa en aquest. Vaig escriure sobre aquest ambient aquí: Ràpid i fàcil: Creï el seu propi jQuery Sandbox per a SharePoint.

Per "garantir" una visió, Seguiu aquests passos:

  1. Crear una visualització que voleu protegir. Feia allò i el va anomenar "Assegurat vista".

    Això és què mira com quan això no és "protegit":

    image

  2. Afegir un element editor de continguts web a pàgina de la vista utilitzant el truc es descriu en l'article de sorrera (i. e. afegir "visites de pàgina = compartida&ToolPaneView = 2 "a l'URL).
  3. Esbrinar el seu SharePoint _spUserId seguint aquests passos boig, creure o no:
    1. Accedeixi al seu entorn del SharePoint.
    2. Al camp d'adreça del navegador web, tipus: "javascript:alerta(_spUserId").
    3. Registre el resultat (és "13" en el meu cas).

      image

  4. Afegir el javascript següent a la seva CEWP en la visualització del codi:

    <seqüència tipus ="text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </script>
    
    <tipus d'escriptura ="text/javascript">
      $(funció() {
    
        alerta(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = assegurat % 20View]');
    
        Si ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = assegurat % 20View]').pare().pare().pare().HTML("<tr bgcolor = vermell><TD>No vista per a vostè!</TD></tr>");
      });
    
    </script>
    

He inclòs que alerten(_spUserId) línia allà per demostrar com això no és realment un "assegurar" una visió, però simplement fent molt més difícil de veure. Més sobre això en un moment.

Bàsicament, jQuery està buscant un iFrame a la pàgina que té un atribut que conté "Assegurava % 20View" en el seu valor. Una vegada es troba, podem comprovar per veure si l'usuari actual és "13". Si és, vam caminar fins el DOM a un <TR> etiqueta (que he imaginat veient font i remuntant-lo) i llavors reemplaçar aquell cordó TR amb el meu missatge. Realment no sé com robusta això és (Jo sóc molt sospitós, de fet), però funcionava a meu sorrera. Si trobo una millor manera, Jo ' ll blog sobre això. Aquest és el resultat:

image

Faig clic al botó correcte i les dades se substitueix amb un gran missatge vermell:

image

Com vostè pot dir, el camí que he de posar en pràctica aquesta solució de "seguretat" és permetre que l'element web rendir-se. Després que acabi, Vaig sobreescriure el contingut amb el meu "No vista per a vostè!missatge".

Malgrat el fet que no és realment un "segur" "veure, és potencialment útil i amb una mica de treball intel ligent, Finalment pot ser securable en un sentit més formal. La qüestió fonamental és que el client està aconseguint totes les dades i després, només després que obté les dades, es destrueix el. Si el client és aconseguir les dades, un usuari intel ligent pot impedir la jQuery córrer en absolut i veure el que ell/ella vol veure.

Hi ha altres inconvenients. Aquest enfocament de "seguretat" es basa una _spUserId. Voldríem realment segurs basant-se en el model de seguretat de SharePoint plena, o almenys per nom d'usuari. Que esdevé progressivament més difícil, però veure algunes coses bones que han escrit sobre aquest tema, Així que espero que no hi ha una bona resposta a aquest problema.

La llista de visualitzacions de si mateixos han de ser retallats, Si és possible. No he intentat esbrinar que. Suposo que és possible, però realment no resoldre l'assumpte de seguretat fonamentals perquè algú podria encara només escrigui l'URL de la visualització del que volen (Si ho sabien). No obstant això, retallada té sentit. És una característica de bona usabilitat i ajuda a ocultar les coses. Si un usuari final no sap que existeix l'esdeveniment de vista, ells probablement no intentar utilitzar-lo. Vegades, que és prou bona.

Amb sort, Tindré més a escriure sobre aquest tema en el temps.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

Etiquetas de Technorati: ,,

Etiquetes de del.icio.us: ,,

Deixi una contestació

no es publicarà la seva adreça de correu electrònic. Els camps necessaris estan marcats *