Access zu 'Mein Konto'
Eingetragen von jefff (21)
am 04.03.2009 - 10:53 Uhr in
am 04.03.2009 - 10:53 Uhr in
Hi,
ich suche ein Modul, welches einem Benutzer oder einer Benutzerrolle den Zugriff auf 'Mein Konto' verbietet.
DIV
- Anmelden oder Registrieren um Kommentare zu schreiben
my account
am 06.03.2009 - 09:58 Uhr
Moin!
Nach meinem Kenntnisstand gibt es dafür kein Modul.
Du könntest Dir allerdings ein Minimodul schreiben, das den entsprechenden Menüeintrag überschreibt und Zugriffe auf "user/UID" unterbindet.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich habs mit einem Minimodul
am 06.03.2009 - 13:32 Uhr
Ich habs mit einem Minimodul probiert, irgendwie bekomme ich meine hook_perm nicht dazu beim Aufbau einer bestimmten Seite dazwischen zu funken und dem bestimmten User zu verbieten seinen Account zu bearbeiten.
Nungut, dazu fehlt mir wohl das noetige drupal Knowhow.
Ich habs nun ueber eine Aenderung im user.module gemacht.
Zeile 828
$items[] = array('path' => 'user/'. arg(1) .'/edit', 'title' => t('Edit'),
'callback' => 'drupal_get_form', 'callback arguments' => array('user_edit'),
'access' => $admin_access || ($user->uid == arg(1) && arg(1) != 5), 'type' => MENU_LOCAL_TASK);
Der Benutzer 5 sieht zwar den Menupunkt 'Mein Account' kann ihn dann aber nicht bearbeiten. Mehr wollte ich nicht.
Das ist nur eine gehackte Loesung, wenn jemand eine bessere Loesung hat bitte melden.
jefff schrieb Ich habs nun
am 06.03.2009 - 13:40 Uhr
Ich habs nun ueber eine Aenderung im user.module gemacht.
Ah, pfui.
Im Core wird nichts geändert!
Wenn Du unbedingt ein Core-Modul verändern musst, dann kopier das nach /sites/all/modules und mach die Änderungen da. Dann funktioniert die Änderung nämlich auch noch nach einem Update (allerdingens hast Du dann neuere Funktionen nicht mit drin, was unter Umständen auch wieder zu Fehlern führt).
Du müsstes den Eintrag hook_menu() verändern, nicht hook_perm(). Und dann schau mal in die Tabelle system und erhöhe den Wert in der Spalte "weight" für Dein Modul. Damit stellst Du sicher, dass es nach den anderen Modulen ausgeführt wird und Deine Regel greift.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Das Menu kann ja
am 06.03.2009 - 14:55 Uhr
Das Menu kann ja bleiden.
Was ich brauche waere ein drupal_deny_access(); wenn User 5 die Seite user/5/edit aufruft.
hook_menu
am 06.03.2009 - 14:30 Uhr
Naja, dann gib doch in hook_menu() beim 'access' des items einen Funktionsnamen an. In dieser Funktion schaust Du dann, ob das der Nutzer 5 ist und gibts
FALSE
zurück. Ansonsten verwendest Du die Regeln, die da schon standen.hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
*Threadausgrabung* Danke
am 18.05.2009 - 12:56 Uhr
*Threadausgrabung*
Danke fuer die Hinweise.
Das Modul klappt nun prima!
Auf api.drupal.org finde ich nirgendwo, welche globalen Variablen ($user z.B.) existieren und wie diese aussehen. Bin ich zu bloed die Definitionen zu finden?
Der Link heißt "Globals"
am 18.05.2009 - 13:22 Uhr
Der Link befindet sich auf der API Startseite unter dem Suchfeld und heißt "Globals".
------------------------
Quiptime Group
Da geht noch was.
Ne, das hatte ich eigentlich
am 18.05.2009 - 15:34 Uhr
Ne, das hatte ich eigentlich auch dort erwartet.
Bei Drupal 5 ist die Seite leer.
Bei Drupal 6 steht als Beschriebung fuer $user nur:
<?php
global $user;
?>
das ist bei d5 aber
am 21.05.2009 - 15:27 Uhr
das ist bei d5 aber genau
Für d5 gibts diese Doku noch nicht
Und aussehen ist relativ, sie können sich ja verändern, deshalb kannste ja auch einfach
<?php
global $user;
dsm($user);
?>
Testen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.
dsm
am 23.05.2009 - 16:07 Uhr
deshalb kannste ja auch einfach
<?php dsm($user); ?>
testenVorausgesetzt natürlich, das Modul devel ist installiert. Ansonsten geht das auch mit drupal_set_message.
hth,
Stefan
--
es soll ja wirklich schonmal jemand eine Lösung für ein Problem gefunden haben, indem er danach gesucht hat...
Tipp: Beachte die Verhaltensregeln des DrupalCenter.