Rollen auslesen

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
eische
Beiträge: 2
Registriert: 15. Mär 2007, 13:57
Kontaktdaten:

Rollen auslesen

Beitrag von eische »

Hallo,

besteht die Möglichkeit die Rollen auszulesen, bei welchen ein angemeldeter User gelistet ist?

Hintergrund ist folgender: Ich habe eine Rolle "Verwalter"
Diese dürfen u.a. Termineinträge und Ankündigungen machen, zusätzlich haben
diese Zugriff auf die Mitgliederlisten. Der Link zu den Mitgliederlisten ist separat
und soll nur angezeigt werden, wenn er Mitglied der Rolle Verwalter ist.

Im Moment habe ich das durch mehrere Wenn/dann-Abfragen auf die Benutzernamen gelöst, wenn jetzt aber ein neues Verwaltermitglied dazukommt oder wegfällt muss ich immer den Code anpassen.

Dass muss doch auch anders funktionieren, oder?
Benutzeravatar
fasse
Administrator
Beiträge: 6229
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo eische,

du könntest es folgendermaßen machen.

Zuerst die common.php in der betreffenden Datei includen, falls diese nicht sowieso schon dort vorhanden ist und dann haben wir eine Funktion die hasRole heißt, mit der kannst du dann prüfen, ob der angemeldete User Mitglied einer bestimmten Rolle ist.

Code: Alles auswählen

include("Pfad zu Admidio/adm_program/system/common.php");
...
if(hasRole("Verwalter"))
{
   ...
}
Gruß
Fasse
eische
Beiträge: 2
Registriert: 15. Mär 2007, 13:57
Kontaktdaten:

Vielen Dank

Beitrag von eische »

Hallo Fasse,

das war genau das was ich gesucht habe.

Vielen Dank!
kanu
Beiträge: 103
Registriert: 22. Okt 2009, 17:27
Wohnort: Dortmund

Beitrag von kanu »

Moin,
gibt es auch eine Funktion, mit der ich die Mitglieder einer Rolle auslesen kann? (am besten gleich die Mailadressen)

Konkret geht es darum, dass ich die Mitglieder dieser Rolle über Änderungen bei Profilen informieren will. Da es sowas ja nicht zu geben scheint, will ich mir das selber basteln. Die Datei lässt sich ganz gut in die profile_save.php einbinden, dass habe ich schon ausprobiert...
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hallo Eische,
Hast du nicht das Problem, dass wenn du als Gast eingeloggt bist, einen SQL Error erhältst?
Ich wollte, dass alle Benutzer in der Rolle "Leiter" die Adminitratoren-Links in der Linken Spalte sehen. Hab dafür bereits einmal ein Thema eröffnet.
Es funktioniert ahch, wenn ein Leiter eingeloggt ist, sieht er die gewünschten Punkte, nur erhalte ich einen SQL 1064 Error, wenn ich als Gast die Seite besuche.

Any Ideas?
Gruss
Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hat irgendwer eine Idee?
Kann auch ein Testlogin zur Verfügung stellen, um das Phänomen selbst zu sehen.
Dankeschön für eure Hilfe!

Gruss
Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Ich möchte mein weiterhin ungelöstes Problem nochmals auffassen.
Auf meiner Admidio Seite http://www.jsmoeriken.ch/newpage erscheint die SQL Fehlermeldung
S Q L - E R R O R

CODE: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND mem_begin <= "2009-11-19" AND mem_end > "2009-11-19" ' at line 4

B A C K T R A C E

FILE: adm_program/system/db/mysql.php
LINE: 193
CALL: DB->db_error()
.........
.........

Wenn man sich einloggt (User: Mitglied1 PW:testtest), verschwindet diese Fehlermeldung.
Diese existiert erst, seit ich eine Sicherheitsabfrage wie in viewtopic.php?t=2187 erklärt, hinzugefügt habe.

Könnte dieses Phänomen mal jemand auf meiner Webseite testen? Ich kann auf Anfrage auch den Code zukommen lassen.
Gruss
Ise
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Hallo,

seh ich das richtig, das Du die Abfrage in den overall_footer eingebaut hast? Dein Seitenende sollte in die datei my_body_bottom.php

Gruß Jochen
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hallo Jochen,
Ich hab dir die Files als TXT freigegeben.
http://www.jsmoeriken.ch/newpage/adm_th ... bottom.txt
http://www.jsmoeriken.ch/newpage/adm_th ... footer.txt

Wie du siehst, ist der overall_footer immer noch derselbe Quellcode.
Die Änderung, die das Problem im my_body_bottom verursacht ist auf Zeile 116. Dort hab ich die Abfrage hasRole("Leiter") hinzugefügt.

Danke für deine Hilfe!
Gruss
Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hallo Jochen,
Ich versuchs nochmals, zu einer Lösung zu kommen. Hattest du die Zeit dir die Dateien anzusehen?
Hast du irgendwelches Merkwürdiges entdeckt?

Gruss
Ise
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Beitrag von Jochen »

Hallo Ise,

die Funktion hasRole() funktioniert leider nur wenn der User eingeloggt ist.

Gruß Jochen
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hallo Jochen,
Danke für die Antwort. Gibt es einen Weg die SQL Fehlermeldung zu umgehen oder gibts dafür keine Lösung? Evtl würde eine weitere IF Schlaufe davor, die abfragt ob eingeloggt oder nicht, das Problem lösen können...

Gruss
Ise
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Hi Ise,

eine Abfrage vorher, ob der User eingeloggt ist, macht Sinn. WIe das funktioniert hatte ich neulich schon mal in einem anderen Beitrag beschrieben: http://forum.admidio.org/viewtopic.php?t=2309

Ich hoffe es hilft.

Gruss,
Matze
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Danke Matzman,
Werd das heute Abend testen. Wird euch Bescheid geben.
Danke für die Hilfe!
Gruss
Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hey Matzman,
Danke vielmals! Ist die Lösung für mein Problem. Vielen Dank nochmals!
Endlich konnte ich das Problem beheben.

Gruss
Ise
Antworten