+ Antworten
Ergebnis 1 bis 8 von 8

Thema: JACL-Patch für JEvents

  1. #1
    War schon öfter hier
    Registriert seit
    28.10.2005
    Ort
    Nürnberg
    Beiträge
    234
    Bedankte sich
    40
    Erhielt 35 Danksagungen
    in 31 Beiträgen

    Standard JACL-Patch für JEvents

    Hallo,

    Das Problem: Wenn man mit JACL eine neue Usergruppe erstellt, wird diese in der Konfiguration von JEvents nicht berücksichtigt.
    Somit haben User der Neuen Usergruppe keine Rechte bei JEvents, sprich sie können keine neue Termine anlegen.

    Diese Anleitung gilt für JEvents 1.14 mit Verwendung von JACL Plus 1.0.12

    Im folgenden findet Ihr eine Anleitung, wie ihr JEvents mit neuen Usergruppen von JACL verwenden könnt.
    Allgemein muss "neueusergruppe" durch den Namen den neuen Usergruppe, welche die jeweiligen Rechte erhalten soll, ersetzt werden.
    Bevor Änderungen vorgenommen werden, sollte eine Sicherungskopie der Datei events.php (Ordner: /html/joomla/components/com_events/) erstellt werden.


    Folgende zwei Schritte sind bei Bedarf durchzuführen:
    1.) Neue Usergruppe soll Termine erstellen können
    2.) Neue Usergruppe soll Termine über das Frontend veröffentlichen können


    1.) Der neuen Usergruppe soll es möglich sein, neue Termine einzutragen, diese müssen jedoch erst von einem Admin im Backend freigeschaltet werden.

    - Datei /html/joomla/components/com_events/events.php öffnen
    - Folgende Stelle suchen( ca. Zeile 149):
    PHP-Code:
    } else {
            
    $is_event_editor = ( strtolower$my->usertype ) == 'author' || strtolower$my->usertype ) == 'publisher'
            
    || strtolower$my->usertype ) == 'editor' || strtolower$my->usertype ) == 'manager' || strtolower$my->usertype ) == 'administrator'
            
    || strtolower$my->usertype ) == 'super administrator' ); 
    - Wie folgt abändern:
    PHP-Code:
    } else {
        
    $is_event_editor = ( strtolower$my->usertype ) == 'author' 
        
    || strtolower$my->usertype ) == 'neueusergruppe'
        
    || strtolower$my->usertype ) == 'publisher'
        
    || strtolower$my->usertype ) == 'editor' || strtolower$my->usertype ) == 'manager' || strtolower$my->usertype ) == 'administrator'
        
    || strtolower$my->usertype ) == 'super administrator' ); 
    - "neueusergruppe" durch entsprechenden Namen ersetzen.

    Nun kann die neue Usergruppe Termine erstellen, vorausgesetzt in der Konfiguration von JEvents wurde im Reiter "Komponente"
    in der Zeile "Berechtigt" der Eintrag "Nur mit speziellen Rechten und Admins" ausgewählt.


    2.) Die neue Usergruppe soll Termine im Frontend eintragen können, ohne das ein Admin den Termin übers Backend freischalten muss.
    Dieser Schritt setzt Schritt 1 voraus!!

    - Datei /html/joomla/components/com_events/events.php öffnen
    - Folgende Stelle suchen( ca. Zeile 383):
    PHP-Code:
     $mapping = array(
            
    'registered'=>1,
            
    'author'         =>2,
            
    'editor'        =>3,
            
    'publisher'        =>4,
            
    'manager'        =>5,
            
    'administrator'=>6,
            
    'super administrator'=>7);
            
    $frontendPublish $cfg->get('com_frontendPublish');
            if (
    $frontendPublish==0$frontendPublish=7// to protect old config files
            
    if(array_key_existsstrtolower$my->usertype ),$mapping)){
                    
    $frontendPublish = ($frontendPublish <= $mapping[strtolower$my->usertype )]); 
    - Wie folgt abändern:
    PHP-Code:
    $mapping = array(
            
    'registered'=>1
            
    'author'     =>2
            
    'editor'    =>3,
        
    'neueusergruppe'    =>4,
            
    'publisher'    =>5,
            
    'manager'    =>6,
            
    'administrator'=>7,
            
    'super administrator'=>8);
        
    $frontendPublish $cfg->get('com_frontendPublish');
        if (
    $frontendPublish==0$frontendPublish=8// to protect old config files
        
    if(array_key_existsstrtolower$my->usertype ),$mapping)){
            
    $frontendPublish = ($frontendPublish <= $mapping[strtolower$my->usertype )]); 
    - "neueusergruppe" durch entsprechenden Namen ersetzen.
    - den Wert
    PHP-Code:
    $frontendPublish=
    abändern in
    PHP-Code:
    $frontendPublish=
    Nun kann die neue Usergruppe Termine erstellen, ohne die Veröffentlichung durch einen Admin.
    Voraussetzung ist, dass in der Konfiguration von JEvents im Reiter "Komponente"
    in der Zeile "Frontendveröffentlichungen" der Eintrag "Autoren oder höher" ausgewählt ist.
    Anmerkung: Es ist auch möglich die Neue Usergruppe an einer anderen Stelle einzufügen, z.B. nach "author" oder "publisher".
    Ausschlag geben hierfür sollte die Stellung innerhalb der jeweiligen Rechtestruktur sein.



    Grüße
    Daniel

  2. Erhielt Danksagungen von:


  3. #2
    War schon öfter hier
    Registriert seit
    03.04.2005
    Beiträge
    242
    Bedankte sich
    23
    Erhielt 5 Danksagungen
    in 5 Beiträgen

    Standard

    Spitze ! Super Antwort ! Werde ich direkt mal probieren. Schade, dass das alles nur so unflexibel möglich ist (z.B. Bezeichnung der Gruppe wird geändert, Komponente erfährt ein Update, etc.), aber immerhin ist es schonmal etwas.

    Vielen Dank !

  4. #3
    War schon öfter hier Avatar von Netto
    Registriert seit
    13.06.2007
    Ort
    Göttingen
    Beiträge
    142
    Bedankte sich
    22
    Erhielt 8 Danksagungen
    in 7 Beiträgen

    Standard es klappt nicht

    vielen Dank, einfallsreichtum. Ich war so glücklich, Deine Anleitung gefunden zu haben. Es hat ja eine Weile gedauert, bis ich das Zusammenspiel von Jacl und JEvents in den Verdacht gekriegt habe, warum die Rechte bei der Eventerstellung im Frontend nicht klappt. Davor hatte ich mich selber in Verdacht...

    Nun habe ich Deine Anleitung exakt befolgt - leider aber ohne Ergebnis. Er scheint meine Einträge zu ignorieren. Was mache ich blos falsch? Oder liegt es an der Version von JEvents? Ich benutze v1.4.1 - die events.php enthält allerdings genau die strings, die Du zitiert hast.

    Über Hilfe wäre ich außerordentlich dankbar!!

    Viele Grüße aus Göttingen

    Netto
    selbständiger Kulturmanager
    Meine Seite:
    www.kulturbuero-goettingen.de

  5. #4
    War schon öfter hier
    Registriert seit
    28.10.2005
    Ort
    Nürnberg
    Beiträge
    234
    Bedankte sich
    40
    Erhielt 35 Danksagungen
    in 31 Beiträgen

    Standard

    Hallo Netto,

    So pauschal ist es schwer zu sagen, woran dein Problem liegen könnte. In wie fern sich durch die neue Version 1.4.1 von JEvents sich was ändert weiß ich leider nicht.
    Hast du im Backend in der Konfiguration von JEvents im Reiter "Komponente"
    in der Zeile "Frontendveröffentlichungen" der Eintrag "Autoren oder höher" und in der Zeile "Berechtigt" der Eintrag "Nur mit speziellen Rechten und Admins"ausgewählt?

    Wenn du nicht weiter kommst, kannst du ja auch mal die entsprechenden Codestellen hier posten...

    Grüße
    Daniel

  6. #5
    War schon öfter hier Avatar von Netto
    Registriert seit
    13.06.2007
    Ort
    Göttingen
    Beiträge
    142
    Bedankte sich
    22
    Erhielt 8 Danksagungen
    in 7 Beiträgen

    Standard

    Hallo,

    die Einstellungen sind exakt so, wie von Dir beschrieben. Die Codestellen sehen so aus:

    // CHECK ACCESS
    global $agid, $gid,$is_event_editor; // Joomla1.5
    $gid = intval( $my->gid );
    $username = $my->username;
    $is_event_editor = 0;

    // override standard MOS ACLs with Events Config settings
    if (( $cfg->get('com_adminlevel') == 0 ) && ( strtolower( $my->usertype ) == 'registered')) {
    $is_event_editor = 1;
    } elseif ( $cfg->get('com_adminlevel') == 2) {
    $is_event_editor = 1;
    } else {
    $is_event_editor = ( strtolower( $my->usertype ) == 'author' || strtolower( $my->usertype ) == 'publisher' || strtolower( $my->usertype ) == 'Corinna'
    || strtolower( $my->usertype ) == 'editor' || strtolower( $my->usertype ) == 'manager' || strtolower( $my->usertype ) == 'administrator'
    || strtolower( $my->usertype ) == 'super administrator' );
    }
    // Dynamic Page Title
    // Joomla1.5
    global $mainframe;
    if (isset($menu->name) && isset($mainframe)) $mainframe->SetPageTitle( $menu->name );


    // Editor usertype check
    $access = new stdClass();
    $access->canEdit = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'all' );
    $access->canEditOwn = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'own' );
    $access->canPublish = $acl->acl_check( 'action', 'publish', 'users', $my->usertype, 'content', 'all' );

    // cache
    $now = date( 'Y-m-d H:i', time() + $mosConfig_offset * 60 * 60 );
    // cache activation
    $cache =& mosCache::getCache( 'com_events' );
    'Corinna' ist unter Jacl als Usergroup unterhalb von 'Author' angelegt.

    Edit am 13.7.2007: Fehler gefunden - der Username muss klein geschrieben werden, auch wenn er unter Jacl groß geschrieben ist:

    Findest Du irgendwas?

    Gruß, Netto
    selbständiger Kulturmanager
    Meine Seite:
    www.kulturbuero-goettingen.de

  7. #6
    Kompunetenking Avatar von MarkoMaster
    Registriert seit
    21.04.2005
    Ort
    Deutschland
    Alter
    33
    Beiträge
    1.012
    Bedankte sich
    71
    Erhielt 87 Danksagungen
    in 80 Beiträgen

    Standard

    Mal so als Tipp, jetzt gibt es für die Userverwaltung JUGA unter Joomla-Downloads.de


    Mfg Marko Master

  8. #7
    War schon öfter hier Avatar von Netto
    Registriert seit
    13.06.2007
    Ort
    Göttingen
    Beiträge
    142
    Bedankte sich
    22
    Erhielt 8 Danksagungen
    in 7 Beiträgen

    Standard

    JUGA habe ich getestet. Für mich ist Jacl eigentlich schon gut geeignet. Ich möchte halt nur gerne die definierten Benutzergruppen in JEvents einbauen.

    Einfallsreichtum - hast Du noch eine Idee?

    Danke und Gruß, Netto
    selbständiger Kulturmanager
    Meine Seite:
    www.kulturbuero-goettingen.de

  9. #8
    War schon öfter hier Avatar von Netto
    Registriert seit
    13.06.2007
    Ort
    Göttingen
    Beiträge
    142
    Bedankte sich
    22
    Erhielt 8 Danksagungen
    in 7 Beiträgen

    Standard

    Hallo Einfallsreichtum,

    ich kenne mich in der php-Syntax leider gar nicht aus. Ist es möglich, statt der else-Abfrage gleich == ein "like" zu setzen? Meine Gruppen mit Autorenrechten fangen alle mit author_ an. Vielleicht wäre das eine Lösung für mich.

    Danke für die Hilfe!

    Gruß, Netto
    selbständiger Kulturmanager
    Meine Seite:
    www.kulturbuero-goettingen.de

+ Antworten

Lesezeichen

Berechtigungen

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