Benutzer kurzzeitig in andere Gruppe verschieben.

  • Hallo!
    Ich suche nach einer Möglichkeit die Gruppe zu der ein Benutzer gehört bei dessen Anmeldung zu verändern.


    Dadurch könnte ich das ACL zur Freischaltung von Seiten nutzen und müsste nicht alles nachprogrammieren.
    Meine Idee war es in dem Event onUserLogin meine Bedingung zu überprüfen und dann die Gruppe zu ändern.
    (In meinen Fall wäre das konkret: aktuelles Datum < DatumXYZ)
    Wenn ich das richtig gesehen habe geht das nur über die Datenbank. Das finde ich aber etwas gefährlich!


    Hat jemand eine bessere Idee?
    Grüße

  • Hallo,


    im Backend zu Benutzer - dann neue Gruppe anlegen.. parent group public. Zugriffsrechte neu - ebenfalls diese wie neue Gruppe benennen. dann oben rechts Optionen wählen und die Standard Gruppe bei Registrierung auf die anglegte Gruppe setzen..

  • Vielen Dank!
    Gäbe es auch eine Lösung ohne die Gruppe in der Datenbank zu ändern?
    Denn ich muss dann manuell sicherstellen, das die Gruppe auch automatisch zurück gestellt wird und das dabei keine Probleme auftretten.


    Ich spiele mit der Idee Ne Klasse anzulegen, welche von JUser erbt und die Mehtode authorise zu überschreiben.
    Grüße

  • Auch wenn der Thread jetzt fast einen Monat alt ist:


    Das müsste mit JUserHelper::setUserGroups($userid, array $usergroups); doch zu machen sein?

  • Trotzdem vielen Dank!
    Ich bin immer noch auf der Suche nach einer Lösung! :)
    Das setUserGroups habe ich jetzt als Workaround. Es verändert aber die Zuordnung in der Datenbank und nicht nur für die aktuelle Session.
    Letzteres ist das was ich eigentlich will.

  • Danke! Sind aber alles Lösungen die über die Datenbank gehen und nicht nur zur für die aktuelle Session!

  • Die Frage ist ja, was konkret umgesetzt werden soll - vielleicht gäbe es hier ja andere Ansätze.


    Oder anders gefragt: Wenn es um die Freischaltung von Inhalten geht, warum muss die Gruppenzugehörigkeit pro Session geändert werden?


    Soll hier eine bezahlte Mitgliedschaft o.ä. abgebildet werden? Wenn dem so wäre, dann würde ich einen anderen Weg wählen:

    • Benutzer bestellt Deine Leistung
    • Benutzer kommt in die entsprechende Gruppe
    • Wenn Nutzer nicht zahlt: Täglicher Lauf eines CLI-scripts entfernt den Nutzer wieder aus der Gruppe, wenn Zahlungszieldatum mehr als X Tage überschritten wurde. Das gleiche Script könnte auch prüfen, ob die Laufzeit der Mitgliedschaft ggf. schon überschritten wurde


    Aber ohne konkrete Informationen ist das natürlich auch nur ein "Schuss ins Blaue".