SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Berechtigung Standardanzeigeformular Feldeinträge

Unbeantwortet Dieser Beitrag hat 12 Antworten

Ohne Rang
32 Beiträge
Sabsko erstellt 18 Juli 2016 17:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ist es möglich in SharePoint einzelne Felder des Standardanzeigeformulars für bestimmte Personen zu berechtigen?

Z. B. sollen nicht alle Felder von bestimmten Personen bearbeitet werden können.

Über einen Tipp wäre ich sehr dankbar.

LG

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juli 2016 08:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Berechtigungen auf Felder gibt es nicht. Man kann sowas aber mit JavaScript im Formular realisieren und dadurch die Felder nicht jedem zugänglich machen. Dabei gibt es grundsätzlich zwei Möglichkeiten: das Formular nachträglich verändern z.B. mit SPServices oder bereits während dem Rendern (Stichwort JSLink / CSR client side rendering). Eine genaue Anleitung habe ich nicht...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 29 Juli 2016 13:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

nach langem rumbasteln und ausprobieren habe ich es endlich geschafft. Durch ein JavaScript konnte ich einige Felder im EditForm.aspx ausblenden und sogar ausgrauen, damit diese Felder nicht bearbeitet werden können.

Ich habe es auch geschafft, dass ich alle Felder nur für eine bestimmte Berechtigungsgruppe einblenden kann.

Ich habe folgenden Code verwendet:

<script type="text/javascript">   

$(document).ready(function () {

$("Select[title$='Field Name']").closest('tr').hide();

$("Select[title$='Field Name']").closest('tr').hide();

$("[title$='Field Name Required Field']").attr("disabled", "disabled");

$("[title$='Field Name]").attr("disabled", "disabled");

$("[title$='Field Name']").attr("disabled", "disabled");

$("#Field id").attr("disabled", "disabled");

$("Select[title$='Field Name]").attr("disabled", "disabled");

$('nobr:contains("Field Name")').closest('tr').hide();

$('nobr:contains("Field Name")').closest('tr').hide();

$('nobr:contains("Field Name")').closest('tr').hide();

$('nobr:contains("Field Name")').closest('tr').hide();

$("[title$='Field Name']").attr("disabled", "disabled");

$("[title$='Field Name']").closest('tr').hide();

$('input[title="Field Name"]').attr("disabled", "disabled");

$("[title$='Field Name']").closest('tr').hide();

 

  $().SPServices({

        operation: "GetGroupCollectionFromUser",

        userLoginName: $().SPServices.SPGetCurrentUser(),

        async: false,

        completefunc: function (xData, Status) {

if (($(xData.responseXML).find("Group[Name='Permission Group Name]").length==1))

{

 

$("Select[title$='Field Name']").closest('tr').show();

$("Select[title$='Field Name']").closest('tr').show();

$("[title$='Field Name Required Field']").attr("disabled", false);

$("[title$='Field Name']").attr("disabled", false);

$("#Field id").attr("disabled", false);

$("Select[title$='Field Name']").attr("disabled", false);

$('nobr:contains("Field Name")').closest('tr').show();

$('nobr:contains("Field Name")').closest('tr').show();

$('nobr:contains("Field Name")').closest('tr').show();

$('nobr:contains("Field Name")').closest('tr').show();

$("[title$='Field Name']").attr("disabled", false);

$("[title$='Field Name']").closest('tr').show();

$('input[title="Field Name"]').attr("disabled", false);

$("[title$='Field Name']").closest('tr').show();

$("[title$='Field Name']").attr("disabled", false);

            }

        }

    });

});

</script>

Das Script funktioniert prima, genau wie ich es haben wollte. :) Natürlich müssen die Feldnamen darin eingetragen werden und je nachdem was das Feld für einen Typ hat muss man dafür die bestimmten Tags nehmen.

Zu meinem kleinen Problem. Ich sollte nicht nur eine Berechtigungsgruppe in die if()-Bedingung eintragen sondern mehrere.

if (($(xData.responseXML).find("Group[Name='Permission Group Name]").length==1))

Leider hat dies nicht funktioniert. Kann man überhaupt darin mehrere Permission Groups angeben oder muss man diese Bedingung komplett verändern?

Hast du mir vielleicht einen Tipp bzw. einen Lösungshinweis wie ich in die if() noch eine zweite Gruppe hinzufügen kann?

Über eine Rückmeldung wäre ich sehr dankbar :)

Viele Grüße

sabsko

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 31 Juli 2016 10:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Funktion liefert Dir alle Gruppen, in denen der aktuelle Benutzer Mitglied ist. Um das abzufragen kopierst Du ddie gesamte Bedingung im if (...) und fügst die beiden Teile mit UND (&&) oder ODER (||) zusammen - je nachdem was für Deine Logik besser paßt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 1 Aug. 2016 18:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wäre die Syntax so korrekt:

if (($(xData.responseXML).find("Group[Name='Group A']").length==1) || ($(xData.responseXML).find("Group[Name='Group B']").length==1))
{

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Aug. 2016 07:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

J, das müßte passen. Aber versuche es doch einfach ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 2 Aug. 2016 09:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Irgendwie klappt das nicht :(

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Aug. 2016 10:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, aber da kann ich von außen nicht weiterhelfen. Das muß man sich direkt bei Dir im Debugger anschauen (im IE z.B. mit F12 erreichbar).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 2 Aug. 2016 10:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi Andi,

 

ich habe den Fehler entdeckt :)

Der Teufel steckt wohl im Detail. Danke für die Hinweise.

 

LG

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Aug. 2016 11:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Sabsko"]Der Teufel steckt wohl im Detail[/quote]

Sowas bringt mich immer wieder zum Lachen. Ein Kollege von mir heißt tatsächlich so :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 2 Aug. 2016 11:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Haha das habe ich leider nicht so ganz verstanden. :)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Aug. 2016 12:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe einen Kollegen, dessen Name "Teufel" ist und da werden immer gerne solche Scherzchen gemacht wie "der Teufel steckt im Detail" oder "in Teufels Küche".

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Sabsko Als Antwort am 2 Aug. 2016 12:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hahaha ach ok :) das ist echt sehr witzig....