Zugriff verweigert für Administrator bei Konfigurations-Einstellungen von eigenem Modul
Eingetragen von soezkan (558)
am 12.01.2014 - 11:01 Uhr in
am 12.01.2014 - 11:01 Uhr in
Hallo Leute,
ich bin Anfänger in der Modul-Entwicklung. Ich habe mir in einem Tutorial ein Anfängermodul
gebastelt. Leider aber habe ich keinen Zugriff auf die Konfigurationsseite des Moduls, nicht mal
als Administrator:
<?php
/**
* Implements hook_permission()
*/
function mymodule_permission() {
return array(
'administer mymodule' => array(
'title' => t('Administer My Module'),
'description' => t('Perform administration tasks for My Module.'),
),
);
}
/**
* Implements hook_menu()
*/
function mymodule_menu() {
$items['admin/config/mymodule'] = array(
'title' => 'My Module Settings',
'type' => MENU_NORMAL_ITEM,
'page callback' => 'drupal_get_form',
'page arguments' => array('mymodule_admin_form'),
'access argument' => array('administer mymodule'),
);
return $items;
}
/**
* Implements form for My Module
*/
function mymodule_admin_form($form, &$form_state) {
$form['mymodule_enable'] = array(
'#type' => 'checkbox',
'#title' => t('Enable My Module.'),
'#default_value' => variable_get('mymodule_enable', 0),
);
return system_settings_form($form);
}
?>
Wenn ich admin/config/mymodule aufrufe, bekomme ich "Zugriff verweigert". Wie kann das sein?
Schließlich bin ich mit Administrator-Rolle angemeldet. Muss ich dem Administrator erst Berechtigungen einräumen, damit er auf admin/config/mymodule Zugriff hat? Wenn ich in den Berechtigungen für mein Modul nachsehe, dann ist das Häkchen für den Administrator gesetzt, trotzdem aber ist der Zugriff verweigert.
Danke für Hilfe!
Liebe Grüße
Soezkan
- Anmelden oder Registrieren um Kommentare zu schreiben
Nur User/1 hat per default alle Rechte
am 14.01.2014 - 00:06 Uhr
Schließlich bin ich mit Administrator-Rolle angemeldet. Muss ich dem Administrator erst Berechtigungen einräumen, damit er auf admin/config/mymodule Zugriff hat?
Ja, bei den Rechten dieser Rolle würde ich dann als erstes ansetzen.
Eine Administrator-Rolle ist gewissermaßen "künstlich" und bekommt automatisiert neue Rechte wenn das konfiguriert ist, aber das funktioniert nicht immer. Mit dem Recht "Administer permissions" kann ein User auch selbst neue Rechte einer Rolle inkl. der eigenen erteilen. Das hat aber insofern auch eine praktische Komponente, da mit vielen Rechten oft auch eine gewisse Unübersichtlichkeit in einigen Formularen einhergeht, die man auf diesem Weg reduzieren kann. Beim Reduzieren kann man sich allerdings auch "Aussperren" wie auch mit dem Selbst-Entzug einer Rolle.
Es gibt auch Sonderfälle, die ausschließlich mit User/1 zu handhaben sind z.B. der Import einer Views-Konfiguration. Der User/1 sollte nicht mit einer Person verknüpft sein und auch zugänglich sein für Personen, die gesamtverantwortlich ein System betreuen. Das muss ich häufiger meinen Kunden erklären, wenn ich ein Drupal-System übernehmen soll. Ein gemeinschaftlicher Zugang zum User/1 geht z.B. per Drush und mehreren SSH-Keys der Haupt-Admins oder ebenfalls Passwort-Frei über das Clientcert-Modul, das ich programmiert habe. Ein kollektiver Zugang zu einem Mail-Konto (für die Onetime Login-Links) oder das kollektive Benutzen eines Passworts ist meiner Ansicht nach zu vermeiden.
hi, vielleicht hilft es:
am 21.01.2014 - 19:16 Uhr
hi, vielleicht hilft es: access arguments => 'administer mymodule' muss exakt so geschrieben sein wie in der Permission.
Ja, danke für eure Antworten.
am 05.02.2014 - 16:42 Uhr
Ja, danke für eure Antworten. Da ich noch Anfänger bei der Modulentwicklung bin, musst ich erstmal verstehen, dass nicht nur der hook_menu über die Zugriffe "waltet" sonderns vorallem mit dem hook_permission Rollenrechte zugewiesen werden. Jetzt geht's.
Liebe Grüße
Soezkan