+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Access Control Frontend

  1. #1
    Neu an Board
    Registriert seit
    07.06.2008
    Beiträge
    25
    Bedankte sich
    5
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Access Control Frontend

    Hallo zusammen,

    ich habe zum Thema Access Control im Frontend leider noch nichts gefunden.

    Ich wollte mal nachfragen, ob ihr ein Tutorial o.ä. kennt, in dem Beschrieben ist, wo bzw. wie ich die Abfrage mache.

    Ich habe das Problem, das ich eine Komponente schreibe, wo ich den Authoren die möglichkeit geben möchte, Änderungen im Frontend vorzunehmen. Ich habe also verschiedene Views, die einen dürfen von Registrierten Benutzern der Website gesehen werden, die anderen nur von Authoren und andere nur vom Admin. Wo prüfe ich also ob der Besucher die Berechtigung hat die Seite zu sehen? Im View selber? Oder bereits im Controller? Wenn ich es im Controller machen würde, kann man dann nicht durch direkte eingabe der URL trotzdem den View sehen?

    Vielen Dank!

    Grüße
    Mr.

  2. #2
    Gehört zum Inventar Avatar von Helrunar
    Registriert seit
    05.03.2006
    Ort
    /home/helrunar/Webdev
    Beiträge
    6.251
    Bedankte sich
    569
    Erhielt 1.547 Danksagungen
    in 1.399 Beiträgen

  3. #3
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    Entweder den aktuellen Benutzer auf die 'gid' pruefen, 18 = registered ... 23 = manager, 24 = administrator, 25 = super administrator
    PHP-Code:
    $gid JFactory::getUser()->get('gid'); 
    ... oder ...
    Einzelne Bereiche der View, deren Tasks ueber die Joomla! ACL verwalten http://wiki.joomla-nafu.de/joomla-do...Factory/getACL

    Ob nun bereits im Vorfeld der Aufruf der ganzen View unterbunden werden soll oder nur bestimmte Bereiche ausgeblendet und Tasks abgefangen werden sollen, ...
    musste halt schauen.

    Gernerell brauchste aber nicht fuer jede Benutzergruppe eine eigene View. Es reicht Bereiche oder Funktionen in der View zu deaktiveren.
    Ansonsten laesst sich "alles" weitestgehend in der Display Methode im Controller machen, oder im jeweiligen Tasks oder ... wo auch immer es fuer dich passt.
    Geändert von Matrikular (08.06.2010 um 19:35 Uhr)

  4. #4
    Neu an Board
    Registriert seit
    07.06.2008
    Beiträge
    25
    Bedankte sich
    5
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hi Matrikular,

    also wenn ich dich richtig verstehe, gibt es da, wie so oft keinen Königsweg.

    Naja anfangs hatte ich es so wie du es skizziert hast, ich habe im View auf die Gruppe geprüft und die Inhalte je nach Gruppe angezeigt. Das war mir aber irgendwie zu unübersichtlich, so dass ich mich dafür entschieden hatte, den "Authoring" Teil in eine seperate View mit seinen unterschiedlichen tmpl zu packen.(Ein Tmpl = ein Formular)

    Jetzt habe ich aber noch eine Frage, wo nutze ich die
    PHP-Code:
    $acl->addACL'com_example''edit''users''registered'); 
    im Controller??
    Dann brauche ich für jeden Task diese Funktion richtig?

    Vielen Dank!

  5. #5
    Hat hier eine Zweitwohnung
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    32
    Beiträge
    1.237
    Bedankte sich
    115
    Erhielt 471 Danksagungen
    in 368 Beiträgen

    Standard

    genau - man koennte das beispielsweise in die komponenten parameter einbauen. eine konfigurations/berechtigungs-tabelle, klasse - wie auch immer.
    im controller laedst du dann alle berechtigungen und fragst dann mit $user->authorize() .... dort ab wo es gebraucht wird.

    abhaengig davon wie oft bzw. wie viele funktionen du unterschiedlichen benutzern oder gruppen bereitstellen willst, kann / ist das echt ne frickellei - vielleicht reicht es hier in der display methode der view anhand der benutzergruppe ein entsprechend anderes layout laden zu lassen. wahlweise natuerlich auch in "jedem" anderen task (edit) ... aber, vielleicht meinstest du genau das.

    in der api doku dem docs oder nafu wiki sollten infos dazu zu finden sein. alternativ google: "site:joomlaportal.de $this->getView(" dort wird vermehrt auf models eingegangen, waere aber das gleiche prinzip, also - laden anderer templates ...

    viel erfolg

  6. Erhielt Danksagungen von:


+ Antworten

Lesezeichen

Berechtigungen

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