+ Antworten
Ergebnis 1 bis 2 von 2

Thema: ACL Überprüfung in eigener Komponente

  1. #1
    Neu an Board Avatar von Robbz
    Registriert seit
    14.07.2007
    Ort
    Nürnberg
    Alter
    31
    Beiträge
    25
    Bedankte sich
    1
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Frage ACL Überprüfung in eigener Komponente

    Hi

    Nach 4h langer Suche in Google und sämtlichen Foren und der Api komme ich mit der ACL in Joomla 1.5 irgendwie nicht weiter. Vielleicht überseh ich ja nur etwas.

    Es geht darum: Im Frontend-Controller der Komponente erweitere ich die ACL durch die Rechte "moderate" für die Komponente "com_example". Der Wert "contents" ist ja vermutlich egal, da könnte auch "kartoffelsalat" drin stehen, solange bei der Abfrage derselbe Wert abgefragt wird. Diese Rechte weise ich den verschiedenen Benutzergruppen zu (hier im Beispiel hardcoded).
    Code:
    Controller-Konstruktur:
    $this->auth 		=& JFactory::getACL();
    $this->user			=& JFactory::getUser();
    
    $this->auth->addACL("com_example", "moderate", "contents", "publisher");
    $this->auth->addACL("com_example", "moderate", "contents", "public backend");
    $this->auth->addACL("com_example", "moderate", "contents", "manager");
    $this->auth->addACL("com_example", "moderate", "contents", "administrator");
    $this->auth->addACL("com_example", "moderate", "contents", "super administrator");
    Wenn ich jetzt (auch im Controller einfach nur in dem entsprechenden Task) abfragen will, ob der eingeloggte Benutzer "moderate" darf, dann kriege ich als Ergebnis nie "true" zurück, obwohl der benutzer natürlich als Super-Admin eingeloggt ist.
    Code:
    if (!$this->user->authorize( 'com_example', 'moderate' , 'contents')) $this->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
    auch das hier klappt nicht:
    Code:
    if (!$this->user->authorize( 'com_example', 'moderate' )) $this->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
    Hab ich mich irgendwo vertippt, oder fehlt da was, oder funktioniert das im Controller der Komponente evt garnicht?

    ------------------
    btw: Warum ist die Api von J1.5 nur so unausführlich, bzw die Entwickler-Doku insgesamt :-( Kein Wunder, dass (fast) jede Erweiterung ihre eigenen Codes verwendet, statt das Framework zu benutzen.
    -----------------------

    Meine bisherigen Quellen:
    Die Suchfunktion dieses Forums natürlich ;-)
    http://docs.joomla.org/Accessing_the...nt_user_object
    http://api.joomla.org/Joomla-Framewo...orization.html
    http://www.google.de/search?q=joomla...ient=firefox-a
    http://wiki.joomla-nafu.de/joomla-do...actory/getUser
    http://wiki.joomla-nafu.de/joomla-do...Factory/getACL
    http://thielebein.net/trac/wiki/Joomla

  2. #2
    Neu an Board Avatar von Robbz
    Registriert seit
    14.07.2007
    Ort
    Nürnberg
    Alter
    31
    Beiträge
    25
    Bedankte sich
    1
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Ausrufezeichen

    Komisch, ich glaub ich hab's raus...

    Ursprünglich hatte ich ja das hier drinstehen:
    Code:
    $this->auth->addACL("com_example", "moderate", "contents", "super administrator");
    Ich hab es einfach mal spaßeshalber durch das hier ersetzt:
    Code:
    $this->auth->addACL("com_example", "moderate", "users", "super administrator");
    Und siehe da: Es klappt! Laut api.joomla.org ist der 3. Parameter:
    string $aro_section_value: The ARO section value
    In der Datenbank habe ich dazu in der Tabelle "jos_core_acl_aro" die Spalte "section_value" gefunden, die für jeden Eintrag auf "users" steht. Hat das wohl damit etwas zu tun?

    Jetzt kann ich es zwar nachvollziehen, aber verstehe trotzdem nicht, was das soll. Was bringt diese "ARO Section", wieso kann man da nichts anderes eintragen und überhaupt?
    Jemand ne Idee? Irgendwie fehlt da ne vernünftige Übersicht zu dieser ACL :-(

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein