2016-06-02 8 views
0

Ich habe einen Workflow, der E-Mails sendet. Wenn ein Benutzer die E-Mail erhält, gibt es einen Hyperlink namens Überprüfung. Wenn ein Benutzer auf Überprüfen klickt, wird der Wert der Spalte ReviewStatus in der Verbesserungsliste in Angefordert geändert. Ich habe ein Skript unten, dass Griffe diese auf einer Content-Editor-Webpart:Skript funktioniert nicht für Benutzer mit Leseberechtigungen

<script language="javascript" type="text/javascript"> 
_spBodyOnLoadFunctionNames.push("getSetListItem"); 
     var listItem; 
     var list; 
     var clientContext; 
     var siteUrl = "https://contoso.com/process/"; 
     function getSetListItem() { 
      this.clientContext = new SP.ClientContext(siteUrl); 
      if (this.clientContext != undefined && clientContext != null) { 
       var webSite = clientContext.get_web(); 
       var itemID = parseInt(GetUrlKeyValue('ID')); 
       this.list = webSite.get_lists().getByTitle("Improvement"); 
       this.listItem = list.getItemById(itemID); 
       clientContext.load(this.listItem); 
       this.clientContext.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess), 
Function.createDelegate(this, this.OnLoadFailed)); 
      } 
     } 
     function OnLoadSuccess(sender, args) { 
      var value = this.listItem.get_item("ReviewStatus"); 
      this.listItem.set_item("ReviewStatus", "Requested"); 
      this.listItem.update(); 
      this.clientContext.load(this.listItem); 
      this.clientContext.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess1), 
Function.createDelegate(this, this.OnLoadFailed)); 
     } 
     function OnLoadSuccess1(sender, args) { 
      alert(this.listItem.get_item("ReviewStatus")); 
     } 
     function OnLoadFailed(sender, args) { 
      alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
     } 

     </script> 

Die oben genannte Arbeiten für mich, aber ich habe Site-Col Admin-Berechtigungen. Wenn ein Benutzer mit Leseberechtigungen klickt auf den Hyperlink nimmt er sie auf die Seite, wo der CEWP ist und sie erhalten die folgende Meldung:

enter image description here

Ich weiß, es Berechtigungen ist aber was kann ich tun, um es für funktioniert Benutzer, die nicht über die Berechtigungen verfügen? Übrigens möchte der Client die Berechtigungen für Benutzer nur für Lesezugriff behalten, damit ich nichts dagegen tun kann.

Jede Hilfe wird geschätzt.

Antwort

0

JavaScript kann nicht mit erhöhten Rechten ausgeführt werden, da jeder Benutzer in heutigen Browsern nur JavaScript zum Bearbeiten hinzufügen kann (ich spreche über Browser-Entwickler-Tools).

Das ist natürlich sehr riskant für Ihr Projekt :)

Sie können eine Farmlösung schaffen würde, wenn Sie Code in erweiterten Rechten ausführen möchten, wenn Sie wirklich nicht wollen, Einstellungen, um die Erlaubnis zu ändern. Wenn Sie Ihr Skript beibehalten möchten, müssen Sie die Berechtigungen für die Benutzer ändern, die die Skripts ausführen

Verwandte Themen