Ein bestimmter Benutzer soll sein Konto nicht bearbeiten dürfen
am 09.02.2008 - 22:29 Uhr in
Hallo,
der Hintergrund ist folgender: Auf einer Schulhomepage sollen sich Schüler mit einem Standardpasswort anmelden dürfen und können bestimmte Inhalte einsehen, die für Gäste nicht sichtbar sind. Es gibt also nur einen Benutzer für alle Schüler. Nun ist dieser Benutzer zwar in einer eigenen Gruppe, die keinen Zugriff auf das user-Modul hat, das eigene Passwort kann aber trotzdem geändert werden.
Wie kann ich das verhindern?
Den Menüpunkt "Mein Konto" könnte ich zwar sehr aufwändig verschwinden lassen, dazu gibt es bereits Threads und ich kenne auch den http://drupal.org/node/38562. Den Navigations-Block kann ich auch verschwinden lassen, dann kann sich der Schüler aber nicht mehr abmelden. OK, den Menüpunkt "Abmelden" könnte man in einen eigenen Block packen, den nur die Schüler sehen, aber eigentlich ist das alles keine Lösung weil der URL http://site.de/?q=user/#/edit immer noch funktioniert. Der Spielmatz muss nur die Nutzer-ID's durchprobieren. (Und Schüler haben Zeit!)
Also das Bearbeiten der Kontoeinstellungen, vor allem des Passworts muss ich für einen Nutzer verbieten. Am besten ist es, wenn http://site.de/?q=user/#/edit für den betreffenden Nutzer zu einer Zugriffsverweigerung führt.
Vielleicht habe ich auch irgendwo eine Einstellung übersehen? Codeschnipsel wären auch hilfreich.
Danke schon mal im Voraus.
Jürgen
- Anmelden oder Registrieren um Kommentare zu schreiben
Wir benutzen im Drupal-Demo
am 11.02.2008 - 10:59 Uhr
Wir benutzen im "Drupal-Demo":http://demo.drupalcenter.de folgendes Mini-Modul, damit der Demo-User sein Passwort nicht ändern kann: http://www.drupalcenter.de/handbuch/8232
Evtl. hilft's Dir weiter.
--
bv - drupalcenter.de
RE: Wir benutzen im Drupal-Demo
am 12.02.2008 - 00:19 Uhr
Wir benutzen im "Drupal-Demo":http://demo.drupalcenter.de folgendes Mini-Modul, damit der Demo-User sein Passwort nicht ändern kann: http://www.drupalcenter.de/handbuch/8232
Evtl. hilft's Dir weiter.
Das Mini-Modul ließ sich zunächst installieren, aber nach dem Abmelden bekam ich nur noch eine leere (!) Startseite.
Aber es hat mich auf den richtigen Weg geführt. Vor meinem Drupal-Update hatte ich schon mal eine funktionierende Lösung, die aber durch das Update überschrieben wurde. Leider nicht dokumentiert, hatte aber die alte user.module noch. Lange Rede, gar kein Sinn, in der user.module,v 1.745.2.26 2008/01/07 folgendes ändern:
Zeile 1307:
function user_edit_form($uid, $edit, $register = FALSE) {
$admin = user_access('administer users');
// Account information:
$form['account'] = array('#type' => 'fieldset',
'#title' => t('Account information'),
);
-> // Aenderung: Nutzer, die ihren Namen nicht aendern duerfen, erhalten das Formular nicht
-> if (user_access('change own username') || $admin) {
-> // if (user_access('change own username') || $admin || $register) {
$form['account']['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#default_value' => $edit['name'],
'#maxlength' => USERNAME_MAX_LENGTH,
'#description' => t('Your preferred username; punctuation is not allowed except for periods, hyphens, and underscores.'),
'#required' => TRUE,
);
-> // }
$form['account']['mail'] = array('#type' => 'textfield',
'#title' => t('E-mail address'),
'#default_value' => $edit['mail'],
'#maxlength' => EMAIL_MAX_LENGTH,
...
}
-> }
return $form;
}
Das ist zwar keine elegante Lösung, weil mit dem nächsten Update wieder weg, aber es funzt.
Vielen Dank für den Geistesblitz!
Jürgen