Zugriffsrechte auf einzelne Felder
Eingetragen von benny1979 (119)
am 21.11.2009 - 01:21 Uhr in
am 21.11.2009 - 01:21 Uhr in
Hallo,
ich habe einen Inhaltstypen, der einige CCK-Felder enthält, die nicht jeder sofort sehen darf.
Gibt es eine Möglichkeit die Zugriffsrechte pro Feld pro Node pro User einzustellen? Ich habe bisher nur "field permissions" gefunden und da geht es nur pro Rolle. Ich kann aber nicht für jeden Datensatz eine Rolle anlegen und es ist nicht automatisch so, daß UserA, der alle Felder bei NodeX sehen darf, das auch bei NodyY darf.
Kennt dafür jemand eine Lösung?
VG,
Benny
- Anmelden oder Registrieren um Kommentare zu schreiben
Zugriff für einzelne Benutzer auf Felder/Nodes
am 23.11.2009 - 18:39 Uhr
Hallo Benny,
guck dir doch mal die Module Node Access User Reference und Content Access an, ob das was Passendes ist. (Dort lohnt auch immer ein Blick auf die "Related Modules".)
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren.
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Kannst du darauf noch näher
am 14.01.2010 - 22:03 Uhr
Kannst du darauf noch näher eingehen? Ich habe es noch nicht geschafft die Zugriffsrechte einzelner Felder mit Content Access zu regeln.
Kompliziert
am 14.01.2010 - 22:45 Uhr
Hört sich kompliziert an. Ich würde vermutlich unterschiedliche Inhaltytspen anlegen (Felder, die gleich genutzt werden, müssten jeweils andere Namen bekommen). Durch verschiedene Rollen und "Content Permissions" (unter CCK) kannst du dann alle Fälle abdecken. Auch wenn es recht unübersichtlich werden kann...
Kommt darauf an, wieviele unterschiedliche User, Nodes, Fälle bei dir vorkommen können.
--
textformer mediendesign | Webkrauts
So wie beschrieben habe ich
am 15.01.2010 - 21:43 Uhr
So wie beschrieben habe ich es nicht verstanden. Aber kann ich es nicht so ungefähr lösen:
<?php
if ( $user->uid ) { print : $field_email; }
?>
Für das Feld "email". Bei mir klappt es nicht, aber vielleicht ist der Ansatz richtig?!
@Lucidity
am 15.01.2010 - 22:30 Uhr
@Lucidity: Das so für alle Nodes, User und Felder zu programmieren, hört sich viel zu aufwändig an.
Und der Term müsste vermutlich eher
print $field_email[0]['view'];
lauten.--
textformer mediendesign | Webkrauts
Ich brauch es aber nur für
am 15.01.2010 - 22:19 Uhr
Ich brauch es aber nur für ein Node und 2 Felder. Ich probier den Code übermorgen aus.
Weder <?php print
am 16.01.2010 - 20:26 Uhr
Weder
<?php
print $field_email[0]['view'];
?>
noch
<?php
if ( $user->uid ) { print $field_email[0]['view']; }
?>
funktioniert
Korrekter Term
am 16.01.2010 - 20:55 Uhr
Ähm, ein Term wie
field_email
kann nur funktionieren, wenn eines deiner Felder so heißt. Schau mal bei den Feldern des Inhaltstypen nach, welche Bezeichnung deine Felder haben. Bei Textfeldern sollte die Syntax passen. Bei anderen Feldern mag die Syntax anders aussehen. Kannst du auch mitprint_r($node);
rausfinden.Und
$user->uid
alleine macht in der if-Abfrage nicht viel. Du müsstest es sinnvollerweise schon irgendwie vergleichen. Mit dem Code oben fragst du meines Wissens nur ab, ob der Wert existiert.--
textformer mediendesign | Webkrauts
Das Field Email hab ich
am 16.01.2010 - 23:44 Uhr
Das Field Email hab ich natürlich;)
wenn ich sowas wie if $user->uid Print 'hallo'; (ich hab jetzt gerade nicht auf korrekte Zeichensetzung geachtet) habe , wird "Hallo" nur ausgegeben wenn ich eingeloggt bin.
Natürlich
am 17.01.2010 - 01:01 Uhr
Ja, natürlich wird da nur was ausgegeben, wenn du eingeloggt bist. Nur in dem Fall ist nämlich
$user->uid
erfüllt. Du bist nicht wirklich fit in php, oder? Ich bin da auch kein Experte, aber wie ich geschrieben habe: Du musst$user->uid
mit irgendwas vergleichen, etwa$user->uid == 1
.Ich kann mir hier aber nicht vorstellen, dass das ein guter Weg ist. Du musst dann nämlich mit jeder Menge User-IDs jonglieren. Lass erst einmal die if-Abfrage weg und schau, dass das E-Mail-Feld richtig angezeigt wird.
Aber: Ich bin mir gar nicht sicher, was du überhaupt brauchst. Die ursprüngliche Frage kam von benny1979, aber was genau willst du (Lucidity) bewerkstelligen?
--
textformer mediendesign | Webkrauts
Bei mir können Gäste auch
am 17.01.2010 - 11:36 Uhr
Bei mir können Gäste auch Inhalte erstellen, müssen aber Name und e-Mail Adresse angeben und das soll natürlich nur ich als Admin (bzw user, da es keiner anderen user gibt) sehen.
Also
am 17.01.2010 - 15:47 Uhr
a) Mach es erst einmal ohne if-Anweisung. Wenn
print $field_email[0]['view'];
nicht klappt, nutzeprint_r($node);
um dir anzusehen, wie der Ausdruck für das E-Mail-Feld lauten muss.b) In der if-Abfrage kannst du so etwas wie
if ($user->uid == 1) {...}
nutzen. Unter der Voraussetzung, dass du jener User mit der ID=1 bist. Wenn du der einzige User bist, dürfte aber tatsächlichif ($user->uid) {...}
reichen.--
textformer mediendesign | Webkrauts
Hat jetzt alles wunderbar
am 18.01.2010 - 12:31 Uhr
Hat jetzt alles wunderbar geklappt. Vielen Dank.
Geht das gleiche auch für Tags? D.h. "print $tag_no1" oder sowas?