[vorerst gelöst] Modul soll Berechtigungen bekommen
Eingetragen von ash0815@drupal.org (137)
am 07.11.2010 - 16:28 Uhr in
am 07.11.2010 - 16:28 Uhr in
Hallo,
ich möchte gerne wissen, wie man einen Eintrag in Berechtigungen rein bekommt.
Leider konnte ich darüber nichts finden. Ich habe ein Mini-Modul und in Berechtigungen bräuchte ich einen Eintrag da nicht jede Gruppe diese Funktion bekommen soll.
Vielen Dank.
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst in deinem Modul
am 07.11.2010 - 16:54 Uhr
Du kannst in deinem Modul über den hook_perm(), die Berechtigungen deines Moduls setzen, die Du dann im hook_menu() für die Menüeinträge verwenden kannst.
Diese findest Du dann auch in der Berechtigungsverwaltung im Admin Bereich.
Mit Hook_Perm
am 07.11.2010 - 16:58 Uhr
Mit Hook_Perm geht das.
Hier ein Video:http://blip.tv/file/208209
am 07.11.2010 - 19:01 Uhr
Ich danke euch. Werde später das mal testen.
am 08.11.2010 - 17:16 Uhr
So, habe es mal an getestet. Der Eintrag steht, werde den Rest später testen :-)
Also der Eintag (hier als Beispiel)
function hook_perm() {
return array('administer my module');
}
reicht der und muss ich sonst noch was wissen?
Habe immerhin noch drunter eine weitere Funktion form_alter und perm soll das Steuern, wer das Teil auf gebrummt bekommt.
Edit
Habe das Modul nun getestet, funktioniert soweit.
Du musst natürlich um Deine
am 08.11.2010 - 16:34 Uhr
Du musst natürlich um Deine Funktionalität folgendes setzen:
<?php
if(user_access('administer my module')) {
// Do sometime
}
?>
oder entsprechend im hook_menu():
<?php
function mymodule_menu() {
$items['mymodule'] = array(
'title' => 'My module',
'page callback' => 'mymodule_page',
'access arguments' => array('administer my module'),
);
return $items;
?>
am 08.11.2010 - 23:59 Uhr
Danke dir, habe inzwischen aus einem Modul was zusammengebastelt, hier mal das ganze Modul, aber ich verstehe noch nicht, warum die Seite nicht sauber weiter geleitet wird (weiße Seite) bzw. es kommt ein Header-Fehler, z.B. beim Einloggen.
Fehlermeldung:
* warning: Cannot modify header information - headers already sent by (output started at /var/www/virtual/<DOMÄNE>/htdocs/sites/all/modules/protect_user_email_address_from_edit_page/protect_user_email_address_from_edit_page.module:1) in /var/www/virtual/<DOMÄNE>/htdocs/includes/session.inc on line 99.
* warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /var/www/virtual/<DOMÄNE>/htdocs/includes/session.inc on line 102.
protect_user_email_address_from_edit_page.module
Wieder raus genommen
Ist deine .module Datei eine
am 08.11.2010 - 20:50 Uhr
Ist deine .module Datei eine UTF-8 Datei? Das hatte bei mir in der Vergangenheit öfter den Fehler erzeugt. Versuche es zur Not mal in ANSI zu konvertieren (z.B. mit Notepad ++)
am 09.11.2010 - 00:43 Uhr
Danke dir, daran hatte ich noch nicht gedacht. Notepad ++ ist eh mein Standard-Editor, habe es dementsprechend geändert. Warum klappt das denn nicht mit UTF-8? Liegt es daran dass Drupal in Ansi ist, oder habe ich was verpasst?
Komischerweise hatte ich was den Header betrifft, auch mit einem normalen Script gehabt, musste dies auch umstellen und dann ging es erst, also schließe ich darauf, dass es am Apachen liegen kann dass da was noch nicht konfiguriert ist?
Also funktioniert zumindest das Modul schon mal, da bin ich erst mal beruhigt, dann kann ich ja weiter stricken ;-)
Zeilenende ist irrelevant, funktioniert mit Windows/Unix/Macintosh, kann es wegen dem UTF-8-Problem auch daran liegen, dass alle Scripte etc. im Ansi sind?
Danke nochmal.
Frage
am 11.11.2010 - 03:11 Uhr
Kann mir bitte jemand sagen, wie man Namen und Werte sauber trennt?
Vielen Dank.
Mmmh, der längere Text, der
am 11.11.2010 - 03:13 Uhr
Mmmh, der längere Text, der vorher da stand, ist ja nun weg, aber weder aus deiner vorherigen Beschreibung noch aus der nun sichtbaren bin ich schlau geworden. Was genau willst du denn für Werte und Namen sauber trennen?
Oder suchst du die t-Funktion?
am 11.11.2010 - 19:08 Uhr
Huch, ja, der Text ist weg.
Hat sich ein wenig erledigt, die Texte werden auch ohne T-Funktion übersetzt :-) ging eigentlich noch um andere Dinge... Zum Beispiel die Checkbox-ID könnte einen eigenen Wert bekommen, da der Wert ansonsten vom array genommen wird und dieser sehr lang werden könnte wenn dieser lang wäre, usw.
Ansonsten gibt es ja noch dieses hier ;-)
Gefunden in der API:
D6 (bereits in Verwendung):
<?php
function hook_perm() {
return array('administer my module');
}
?>
Gibt anscheinend nicht so was wie bereits in D7?
D7:
<?php
function hook_permission() {
return array(
'administer my module' => array(
'title' => t('Administer my module'),
'description' => t('Perform administration tasks for my module.'),
),
);
}
?>